Graham Dumpleton ha scritto:
> [...]
>> The idea was to allow an application to change its mind about the
>> headers until it had committed to writing data.  That is, to allow
>> the application to do error handling for as long as possible before
>> the server has to do it.
> 
> But once you have called start_response() you cant call it a second
> time to change the values so how could the application change its
> mind? 

In my implementation of WSGI for nginx, start_response setups the 
headers on the request object, but calls ngx_http_send_header only when 
the first not empty string is yielded.

This means that if an error occurs, the "old" headers are kept in the 
response (and sent to the client); nginx will simply change the status 
code to '500 INTERNAL ERROR'.

A solution can be to copy the headers in a temporary request object, but 
I don't know if this is possible.

Another solution is to setup the headers and call send_headers at the 
same time, but in this way it is no more possible to raise an exception 
when the application calls start_response with incorrect headers.

If I'm right this is the solution used by Apache mod_wsgi.

[...]



Regards  Manlio Perillo
_______________________________________________
Web-SIG mailing list
Web-SIG@python.org
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: 
http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com

Reply via email to