• Kenton Varda's avatar
    Allow app to send arbitrary Content-Length/Transfer-Encoding in HEAD responses. · be9b18c5
    Kenton Varda authored
    Previously, the app could control Content-Length by passing `expectedBodySize`. This is great for enabling code that "just works" by handling GET and HEAD requests identically.
    
    However, in somewhat more-complicated situations -- especilaly in proxies -- you end up having to write special-case hacks for HEAD requests to deal with the fact that the body is actually empty, but has a non-zero "expected" size.
    
    We can make life easier for proxies by allowing the application to directly set the Content-Length and Transfer-Encoding headers in the case of HEAD responses, much like we allow applications to set WebSocket-related headers on non-WebSocket requests/responses.
    
    This change actually fixes a bug in Cloudflare Workers where Content-Length is not passed through correctly for HEAD responses. No changes are needed on the Workers side (except adding a test).
    be9b18c5
Name
Last commit
Last update
..
gtest.h Loading commit data...
gzip-test.c++ Loading commit data...
gzip.c++ Loading commit data...
gzip.h Loading commit data...
http-test.c++ Loading commit data...
http.c++ Loading commit data...
http.h Loading commit data...
make-test-certs.sh Loading commit data...
readiness-io-test.c++ Loading commit data...
readiness-io.c++ Loading commit data...
readiness-io.h Loading commit data...
tls-test.c++ Loading commit data...
tls.c++ Loading commit data...
tls.h Loading commit data...
url-test.c++ Loading commit data...
url.c++ Loading commit data...
url.h Loading commit data...