[Web-SIG] Updated WSGIHTTPServer.py
Peter Hunt
floydophone at gmail.com
Thu Sep 23 21:36:04 CEST 2004
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