i'm not the expert on these things, but i'll try to answer your
questions as best i can.  i'm sure if i say something that is blatantly
wrong, i will be corrected ;)  the information here is pretty much what
i've figured out for myself using tomcat over the last year or so...

> 
> I am using mod_jk right now and I am wondering why
> ajp12, ajp13, and mod_webapp protocols were originally
> introduced.
> 

i believe the original reason why mod_jserv and ajp were introduced was
for connecting the apache web server to the old JServ servlet
container.  when tomcat showed up, mod_jserv was used for it too.  i
think mod_jk, which added support for more web servers (i.e.
iis/netscape) was then introduced as a replacement for mod_jserv.  ajp13
is an evolution (revolution??) of ajp12.  it's faster.

> http protocol can be passed through most firewalls
> whereas ajp12 and ajp13 can not.  In some real world
> websites, there are lots of cases that there is an
> inner firewall between Web server and web container.
> 
> http protocol version 1.1's "keepalive" could be used
> for consistant connections.
> 
> Almost all the available web containers have at least
> one http listener while some of them do not support
> ajpxx protocols, such as the current Orion.
> 

i'm not sure what this has to do with mod_jk/ajp...

> I implemented an http worker in mod_jk by myself and
> it works fine for me.
> 
> So, my question is, what are the advantages of ajp12,
> ajp13, and mod_webapp protocols versus http protocol?
> 

i think you may have missed the point of ajp.  mod_jk and ajp are used
to connect web servers to tomcat.  essentially what they do is intercept
http requests in a web server and forward them to tomcat to be handled
there.  i'm not even sure if http could have been used to do this... it
would have been weird, i think, because you have to forward all
information about the request (headers, posted data, etc.) and if you
made another http request from the web server to tomcat, you'd have a
whole new set of headers and you'd have to have something to decode that
request on the tomcat side and ... well, i'm rambling.  i think ajp is
just a cleaner and more efficient approach.  also, i don't even know if
the original JServ handled http...

anyway, as i said, i'm not the expert on this subject, so hopefully
someone with a better history with mod_jserv/mod_jk/ajp will correct any
lies i may have told :)

also, you should take a look at the documentation, particularly the
mod_jk-howto and the ajp13 docs that come with tomcat 3.x (maybe only
3.3...).

Reply via email to