Sébastien Arnaud
arnaudsj at mac.com
Mon Aug 9 00:30:16 EDT 2004
Thanks Jonathan for your response. I have done a little bit more investigation and I think that I managed a work around: First, I was wrong when I said mod_python was forcing the HTTP Header "Connection: Close", it is in fact responding to a client request http keep-alive, but it is missing an important part: the HTTP header "Content-Length: xxx"! Since it is the only way browsers can keep connections alive (to know how much bytes they need to expect back from the server), without it, most browsers will NOT keep the connection alive (maybe your version of Firefox is sensitive to this missing header and tries to wait for more content to come back from the server) For the record I got mistaken in my early tests because I used Lynx to get the HTTP headers back, and found out that Lynx did not send a valid HTTP 1.1 request with keep-alive (duh!), therefore it was ok to receive a "Connection: Close" back then. Anyway, I think it would be nice to have an explanation why mod_python is not setting by default the Content-Length HTTP header when it is already setting the "Connection: Keep-alive" HTTP header in response to a keep-alive request from the client. If you set it by hand in your python code like this though: ResultHTML = "Your output HTML to the client" req.headers_out['Content-Length']=str(len(ResultHTML)) req.write(ResultHTML) It works, and you can then start to enjoy the performance boost of "keep-alive" connections. Cheers, Sébastien On Aug 6, 2004, at 2:18 AM, Jonathan Hseu wrote: > On Thu, Aug 05, 2004 at 10:54:51PM -0500, S?bastien Arnaud wrote: >> Hi, >> >> I wonder if anybody else had been getting the same problem that I >> noticed with http keep alive request being not answered properly by >> mod_python. If you take the very simple mptest example, and use ab to >> benchmark/stress this trivial example, you may notice that even though >> you are requesting to use http-keep alive (-k option in ab), the >> resulting page (http://yourserver/test/mptest.py) is forcing the >> connection to close (inspect the HTTP headers and see Connection: >> Close). >> > > Well, I don't know if this is related, but I do experience an issue > with > keep-alive and mod_python (although, I just assumed it was firefox's > problem, even though I don't get that bug with anything but firefox). > Basically, on some keep-alive requests, firefox gives me the HTTP > headers and other stuff and renders that as text instead of the actual > page. Most likely, this is related to your keep-alive bug, since this > only happens _after_ the first request in a keep-alive request. > > Jonathan Hseu > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 155 bytes Desc: This is a digitally signed message part Url : http://modpython.org/pipermail/mod_python/attachments/20040808/b2018e69/PGP.bin
|