>1. I know ajp protocol was originally introduced by
>by mod_jserv to communicate with JServ. But what I
>was wondering is, why at that time, a new protocol,
>ajpxx was introduced rather using the existing http
>protocol.
ajp is faster than http and use less bandwith (binary compression)
It's also a ligth protocol (compared to http 1.1 full proto)
>2. As I mentioned in my previous email, I have
>already implemented http worker (very similar to ajp12
>and ajp13 worker, with HTTP 1.0) in mod_jk. And it
>works with Tomcat, Orion, JServ without any problem.
>What it does is to simply forward the request to the
>web container's http listener (like a proxy). (Thanks
>for the great design of mod_jk!) When I compare the
>performance between mod_jk/http/Tomcat and
>mod_jk/ajp12/Tomcat, I can not see any difference.
Could you provide the code ?
Don't forget that ajp allow you to use a cluster of Tomcats...
>3. I am working on implementing http 1.1 in my http
>worker of mod_jk to take advantage of its persistant
>connection with "KeepAlive" option. Once I am done, I
>can compare the performance between
>mod_jk/http1.1/Tomcat with mod_jk/ajp13/Tomcat because
>ajp13 has persistant connection too.
Thanks again to forward the code.
>4. There seems to have no difference between http and
>ajpxx protocols on hooking up with other web servers,
>such as IIS, Netscape, ...
mod_jk support JNI :)
>5. Essentially, there is no difference between ajpxx
>and http protocol in terms of forwarding the request
>from the web server side to the web container side.
>The only difference is the protocol itself.
Yes
>6. So, my conclusion is, if there is no performance
>difference, with the advantage of that http can cross
>firewall and almost all web containers support have
>http listeners, why http is not used in either
>mod_jserv, mod_jk or mod_webapp? I must have missed
>some points. :-)
mod_jk with ajp12/ajp13 is a one way protocol, web-server
to servlet-engine. mod_jk/web-connector with ajp14 will
be 2 way protocol, ie the servlet engine will talk with
the web server (ie which context to handle, which URIs,
status....)
Stay tuned for more info.