; http-res.tab ; ; This table lists the known response header fields. Here are some ; comments: ; ; Accept: ; ; Typo for Allow (Server: Commerce-Builder/2.10). ; ; Accept-Ranges: ; Allow-Ranges: ; Content-Range: ; ; We cannot implement content filtering with ranges as we do not ; see the context. For instance, "" could be split into ; two requests which could be separated by weeks. ; ; ; Content-Type: ; ; Duplicates are handled specially by hh_res_ct_type, therefore ; the H_MULTI flag is set here. ; ; Connection: ; Keep-Alive: ; ; For now, we support only one request per connection. ; ; Content-Encoding: ; ; The response is rejected if a Content-Encoding is given for ; HTML as filtering HTML would require uncompressing the body. ; We could run gunzip or uncompress. On the other hand, not ; allowing any content encoding ("Accept-Encoding:") is simpler. ; ; Content-Length: ; ; As filtering HTML changes the contents, we have to drop this ; header field. TODO: Only drop if actually filtering HTML. ; ; Content-MD5: ; ; As filtering HTML changes the contents, we have to drop this ; header field. TODO: Only drop if actually filtering HTML. ; ; Transfer-Encoding: ; ; Decoding a `chunked' message body may require too much memory ; or disk space. TODO: Decode it anyway. Not decoding it is a ; bad idea as it lets the server split, say, "" into two ; or more chunks. ; ; Content-Version: ; Derived-From: ; ; These are non-standard header fields; dropping these won't ; make a difference. I don't want to parse Derived-From. ; ; Link: ; Content-Style-Type: ; ; There are issues with style sheets and JavaScript. For now, ; we unconditionally drop these headers. ; ; Location: ; Content-Location: ; ; TODO: Why do we drop these? ; ; Set-Cookie: ; ; Either drop it or pass it, according to the configuration. ; ; URI: ; ; This should no longer be used, see also Location. ; ; X-Pad: avoid browser bug ; ; We remove this and reinsert it if required. age hh_keep 0 ; HTTP/1.1 response-header accept-ranges hh_drop_silent H_MULTI ; HTTP/1.1 response-header allow-ranges hh_drop_silent 0 ; typo for "accept-ranges"? alternates hh_keep 0 ; proposed response-header generator hh_keep 0 ; non-std response-header location hh_location 0 ; HTTP/1.0 response-header message-id hh_keep 0 ; non-std response-header pics-label hh_drop_silent H_MULTI ; non-std response-header proxy-authenticate hh_keep 0 ; HTTP/1.1 response-header public hh_keep H_MERGE ; HTTP/1.1 response-header refresh hh_refresh 0 ; non-std response-header reply-to hh_keep 0 ; non-std response-header retry-after hh_keep 0 ; HTTP/1.1 response-header server hh_keep H_MULTI ; HTTP/1.0 response-header set-cookie hh_set_cookie H_MULTI ; RFC 2109 response-header title hh_keep 0 ; non-std response-header uri hh_dangerous H_MERGE ; deprecated vary hh_keep 0 ; HTTP/1.1 response-header version hh_keep 0 ; non-std response-header warning hh_keep H_MERGE ; HTTP/1.1 response-header window-target hh_keep 0 ; non-std response-header www-authenticate hh_keep H_MERGE ; HTTP/1.0 response-header x-cache hh_keep H_MULTI ; non-std response-header x-cache-lookup hh_keep 0 ; non-std response-header x-pad hh_drop_silent H_MULTI ; Apache response-header cache-control hh_keep H_MERGE ; HTTP/1.1 general-header connection hh_drop_silent H_MERGE ; HTTP/1.1 general-header date hh_keep H_DUP ; HTTP/1.0 general-header keep-alive hh_drop_silent H_MERGE ; HTTP/1.1 mime-version hh_keep 0 ; HTTP/1.1 general-header pragma hh_pragma H_MERGE ; HTTP/1.0 general-header transfer-encoding hh_tf_encoding H_MERGE ; HTTP/1.1 general-header upgrade hh_keep H_MERGE ; HTTP/1.1 general-header via hh_keep H_MERGE ; HTTP/1.1 general-header accept hh_drop_silent H_MULTI ; Typo allow hh_keep H_MERGE ; HTTP/1.0 entity-header content-base hh_keep 0 ; HTTP/1.1 entity-header content-encoding hh_res_ct_enc H_MERGE ; HTTP/1.0 entity-header content-language hh_keep H_MERGE ; HTTP/1.0 entity-header content-length hh_res_ct_len 0 ; HTTP/1.0 entity-header content-location hh_dangerous 0 ; HTTP/1.1 entity-header content-md5 hh_drop_silent 0 ; HTTP/1.1 entity-header content-range hh_ct_range 0 ; HTTP/1.1 entity-header content-type hh_res_ct_type H_MULTI ; HTTP/1.0 entity-header content-version hh_drop_silent 0 ; non-std entity-header derived-from hh_drop_silent 0 ; non-std entity-header etag hh_keep 0 ; HTTP/1.1 entity-header expires hh_keep H_MULTI ; HTTP/1.0 entity-header last-modified hh_keep 0 ; HTTP/1.0 entity-header link hh_drop_silent H_MERGE ; HTML 4.0 (TODO) content-style-type hh_drop_silent H_MERGE ; HTML 4.0 (TODO) content-transfer-encoding hh_cte 0 ; MIME security-scheme hh_keep 0 ; HTTP/1.1 response-header proxy-connection hh_drop_silent H_MERGE ; Squid response-header x-squid-error hh_keep H_MERGE ; Squid response-header dav hh_keep 0 ; Subversion status-uri hh_keep 0 ; Subversion