Brian Smith ha scritto:
> My application correctly responds to HEAD requests as-is. However, it doesn't 
> work with middleware that sets headers based on the content of the response 
> body.
> 
> For example, a gateway or middleware that sets ETag based on an checksum, 
> Content-Encoding, Content-Length and/or Content-MD5 will all result in wrong 
> results by default. Right now, my applications assume that any such gateway 
> or the first such middleware will change environ["REQUEST_METHOD"] from 
> "HEAD" to "GET" before the application is invoked, and discard the response 
> body that the application generates. 
> 
> However, many gateways and middleware do not do this, and PEP 333 doesn't 
> have anything to say about it. As a result, a 100% WSGI 1.0-compliant 
> application is not portable between gateways.
> 
> I suggest that a revision of PEP 333 should require the following behavior:
> 
> 1. WSGI gateways must always set environ["REQUEST_METHOD"] to "GET" for HEAD 
> requests. Middleware and applications will not be able to detect the 
> difference between GET and HEAD requests.
> 

-1.

> 2. For a HEAD request, A WSGI gateway must not iterate through the response 
> iterable, but it must call the response iterable's close() method, if any. It 
> must not send any output that was written via start_response(...).write() 
> either. Consequently, WSGI applications must work correctly, and must not 
> leak resources, when their output is not iterated; an application should not 
> signal or log an error if the iterable's close() method is invoked without 
> any iteration taking place.
> 

This is done in the WSGI implementation for Nginx, as an example; and 
some time ago there was a discussion about this.

Moreover, if the response iterable is a generator, no iteration (and 
content generation) is done.

> Please add this issue to http://wsgi.org/wsgi/WSGI_2.0.
> 
> Regards,
> Brian
> 



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