[Web-SIG] Updated WSGIHTTPServer.py

Peter Hunt floydophone at gmail.com
Sun Sep 26 16:29:37 CEST 2004


I uploaded the fixed WSGIHTTPServer.py. I'm going to rework it pretty
substantially pretty soon (probably implemented using Medusa or
Twisted) and streamline it. It's pretty rough as it is right now, but
it works.


On Thu, 23 Sep 2004 15:36:04 -0400, Peter Hunt <floydophone at gmail.com> wrote:
> Thanks for taking a look. I very very quickly upgraded it by ripping
> out a lot of the spec's code, and my example app ran OK, so I put it
> up.
> 
> I'll make those fixes soon.
> 
> Also, I'm pretty sure that execfile _will_ reload application scripts,
> but I may be wrong.
> 
> 
> 
> On Wed, 22 Sep 2004 22:41:49 -0400, Phillip J. Eby
> <pje at telecommunity.com> wrote:
> > >I've updated WSGIHTTPServer.py and wsgicgi.py to reflect the latest
> > >PEP posted on python.org.
> > >
> > >http://st0rm.hopto.org/wsgi/
> >
> > FYI, there's an error in your WSGIHTTPServer implementation: it sends a
> > 'Status: XXX etc' header to the client, but the correct format for HTTP is
> > just the "XXX etc" part.  Looks like you might've copied that part from the
> > PEP's CGI example.  This error is probably being masked by the fact that
> > you're also sending the status to the client when start_response is
> > initially called, rather than delaying until the first write operation or
> > non-empty yielded string.  Also, 'start_response' doesn't actually re-raise
> > 'exc_info' as it should; it only prints the exception to stderr.
> >
> > You should also not use 'map()' to wrap the application result
> > iterator.  It's not illegal, but it's ill-advised since an application is
> > allowed to produce an unlimited number of empty strings in its output,
> > resulting in unbounded growth of the list that could use up arbitrarily
> > large amounts of memory.
> >
> > Finally, while this is not a violation of the spec in any way, I notice
> > that your approach to loading application scripts will recompile and reload
> > them on every hit.  I don't know if this was intentional or not.
> >
> > Oh, and one last thing...  you're checking for 'HTTPS=on' in the
> > environment, but that's not where it would be found, because your code is
> > the only code that could set it.  I don't know if the stdlib HTTP server
> > supports HTTPS, but if it does, you should check the appropriate attribute
> > or method instead.  Otherwise, it suffices to always set 'wsgi.url_scheme'
> > to "http".
> >
> >
>


More information about the Web-SIG mailing list