Apache Proxy HTTP Compliance Report

Tested against Co-advisor test suite (all non-cacheing testcases). Comments by niq on testcases that failed to pass cleanly on Apache 2.2.6 or on any other version tested subsequently.

Test Case: 2.2.6 forward proxy

Test Date: Wed, 26 Sep 2007 20:19:21 GMT

Successful testcases

TestCaseComment
basic HTTP connectivity test -
proxy MUST add Content-Length header to request containing chunked-encoded body with trailer -
proxy MUST add Content-Length header to request containing chunked-encoded body without trailer -
proxy MUST add missing Date header to response -
proxy MUST add required Via header to response -
proxy MUST add required Via header to request -
proxies MUST append Via response header to responses; using a single-valued matching header field -
proxies MUST append Via request header to requests; using a single-valued matching header field -
proxies MUST append Via response header to responses; using a 17-valued matching header field -
proxies MUST append Via request header to requests; using a 17-valued matching header field -
proxies MUST append Via response header to responses; using a 3-valued matching header field -
proxies MUST append Via request header to requests; using a 3-valued matching header field -
proxies MUST append Via request header to requests; using 17 single-valued matching header field -
proxies MUST append Via request header to requests; using 3 single-valued matching header field -
proxies MUST append Via request header to requests; using 5 4-valued matching header field -
DUT MUST NOT use bare LF within response control structures -
DUT MUST NOT use bare LF within request control structures -
DUT MUST handle "chunked" response with 0Bytes of content and a chunk-extension sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with zero-size content sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 100Byte chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with 1025 100Byte chunks sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 1Byte chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with two 100Byte chunks sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 65535Byte chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 65536Byte chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 65537Byte chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with bad Content-Length header sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with 3 zeros in last-chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with 65 zeros in last-chunk sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with leading zeros in chunk size sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with a chunk-extension token sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with a quoted-string in a chunk-extension sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with spaces in a chunk-extension sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with one 0Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.0 client that did not send TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.0 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.0 client that did not send TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 surprise header(s) in the trailer sent to an HTTP/1.0 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 surprise header(s) in the trailer sent to an HTTP/1.0 client that did not send TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 announced header(s) in the trailer sent to an HTTP/1.0 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 announced header(s) in the trailer sent to an HTTP/1.0 client that did not send TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 surprise header(s) in the trailer sent to an HTTP/1.0 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 surprise header(s) in the trailer sent to an HTTP/1.0 client that did not send TE: trailers -
DUT MUST handle "chunked" response with a valued chunk-extension sent to an HTTP/1.0 client -
DUT MUST handle "chunked" response with 0Bytes of content and a chunk-extension sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with 0Bytes of content and a chunk-extension -
DUT MUST handle "chunked" response with zero-size content sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with zero-size content -
DUT MUST handle "chunked" response with one 100Byte chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with one 100Byte chunk -
DUT MUST handle "chunked" response with 1025 100Byte chunks sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with 1025 100Byte chunks -
DUT MUST handle "chunked" response with one 1Byte chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with one 1Byte chunk -
DUT MUST handle "chunked" response with two 100Byte chunks sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with two 100Byte chunks -
DUT MUST handle "chunked" response with one 65535Byte chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with one 65535Byte chunk -
DUT MUST handle "chunked" response with one 65536Byte chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with one 65536Byte chunk -
DUT MUST handle "chunked" response with one 65537Byte chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with one 65537Byte chunk -
DUT MUST handle "chunked" response with bad Content-Length header sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with bad Content-Length header -
DUT MUST handle "chunked" response with 3 zeros in last-chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with 3 zeros in last-chunk -
DUT MUST handle "chunked" response with 65 zeros in last-chunk sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with 65 zeros in last-chunk -
DUT MUST handle "chunked" response with leading zeros in chunk size sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with leading zeros in chunk size -
DUT MUST handle "chunked" response with a chunk-extension token sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with a chunk-extension token -
DUT MUST handle "chunked" response with a quoted-string in a chunk-extension sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with a quoted-string in a chunk-extension -
DUT MUST handle "chunked" response with spaces in a chunk-extension sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with spaces in a chunk-extension -
DUT MUST handle "chunked" response with one 0Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.1 client that did not send TE: trailers -
DUT MUST handle "chunked" request with one 0Byte chunk and with 1 announced header(s) in the trailer -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.1 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 announced header(s) in the trailer sent to an HTTP/1.1 client that did not send TE: trailers -
DUT MUST handle "chunked" request with one 11Byte chunk and with 1 announced header(s) in the trailer -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 surprise header(s) in the trailer sent to an HTTP/1.1 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 1 surprise header(s) in the trailer sent to an HTTP/1.1 client that did not send TE: trailers -
DUT MUST handle "chunked" request with one 11Byte chunk and with 1 surprise header(s) in the trailer -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 announced header(s) in the trailer sent to an HTTP/1.1 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 announced header(s) in the trailer sent to an HTTP/1.1 client that did not send TE: trailers -
DUT MUST handle "chunked" request with one 11Byte chunk and with 17 announced header(s) in the trailer -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 surprise header(s) in the trailer sent to an HTTP/1.1 client that sent TE: trailers -
DUT MUST handle "chunked" response with one 11Byte chunk and with 17 surprise header(s) in the trailer sent to an HTTP/1.1 client that did not send TE: trailers -
DUT MUST handle "chunked" request with one 11Byte chunk and with 17 surprise header(s) in the trailer -
DUT MUST handle "chunked" response with a valued chunk-extension sent to an HTTP/1.1 client -
DUT MUST handle "chunked" request with a valued chunk-extension -
proxy MUST NOT forward response headers matching Connection tokens: 1 header, 1 token -
proxy MUST NOT forward request headers matching Connection tokens: 1 header, 1 token -
proxy MUST NOT forward response headers matching Connection tokens: N headers, 1 token -
proxy MUST NOT forward request headers matching Connection tokens: N headers, 1 token -
proxy MUST NOT forward response headers matching Connection tokens: many headers, one token list -
proxy MUST NOT forward request headers matching Connection tokens: many headers, one token list -
proxy MUST NOT forward request headers matching Connection tokens: many headers, many token lists -
proxy MUST NOT forward response headers matching Connection tokens: token case mismatch -
proxy MUST NOT forward request headers matching Connection tokens: token case mismatch -
proxy MUST NOT forward response headers matching Connection tokens: empty tokens -
proxy MUST NOT forward request headers matching Connection tokens: empty tokens -
proxy MUST forward single-valued Expect: 100-continue request header -
proxy MUST forward single-valued Server response header without comment field -
proxy MUST forward single-valued Server response header with a plain comment field -
proxy MUST forward single-valued plain warning without Date response header -
proxy MUST forward single-valued 17-line spaced response header -
proxy MUST forward single-valued 17-line spaced request header -
proxy MUST forward single-valued 17-line tabbed response header -
proxy MUST forward single-valued 17-line tabbed request header -
proxy MUST forward single-valued 2-line spaced response header -
proxy MUST forward single-valued 2-line spaced request header -
proxy MUST forward single-valued 2-line tabbed response header -
proxy MUST forward single-valued 2-line tabbed request header -
proxy MUST forward single-valued extension response header named dot -
proxy MUST forward single-valued extension request header named dot -
proxy MUST forward single-valued extension response header with long name -
proxy MUST forward single-valued extension request header with long name -
proxy MUST forward single-valued extension response header with long value -
proxy MUST forward single-valued extension request header with long value -
proxy MUST forward single-valued extension response header with absent value -
proxy MUST forward single-valued extension request header with absent value -
proxy MUST forward single-valued extension response header with plain value -
proxy MUST forward single-valued extension request header with plain value -
proxy MUST preserve field-value order when forwarding multi-valued Allow response header with 6 values -
proxy MUST preserve field-value order when forwarding multi-valued Cache-Control response header with 6 values -
proxy MUST preserve field-value order when forwarding multi-valued Cache-Control request header with 6 values -
proxy MUST preserve field-value order when forwarding multi-valued Content-Language response header with 6 values -
proxy MUST preserve field-value order when forwarding multi-valued Pragma response header with 7 values -
proxy MUST preserve field-value order when forwarding multi-valued Pragma request header with 7 values -
proxy MUST preserve field-value order when forwarding multi-valued Via response header with 6 values -
proxy MUST preserve field-value order when forwarding multi-valued Via request header with 6 values -
proxy MUST forward all values of a multi-valued Allow response header with 6 values -
proxy MUST forward all values of a multi-valued Cache-Control response header with 6 values -
proxy MUST forward all values of a multi-valued Cache-Control request header with 6 values -
proxy MUST forward all values of a multi-valued Content-Language response header with 6 values -
proxy MUST forward all values of a multi-valued Pragma response header with 7 values -
proxy MUST forward all values of a multi-valued Pragma request header with 7 values -
proxy MUST forward all values of a multi-valued Via response header with 6 values -
proxy MUST forward all values of a multi-valued Via request header with 6 values -
proxy server MUST NOT forward the trailer if TE header says chunked -
proxy server MUST NOT forward the trailer if TE header says trailer -
proxy server MUST NOT forward the trailer if TE header says xtrailers -
HTTP/1.1 device MUST NOT use 011.1 HTTP version in requests -
HTTP/1.1 device MUST NOT use 1.011 HTTP version in requests -
HTTP/1.1 device MUST NOT use 1.12 HTTP version in requests -
HTTP/1.1 device MUST NOT use 1.2 HTTP version in requests -
HTTP/1.1 device MUST NOT use 12.1 HTTP version in requests -
HTTP/1.1 device MUST NOT use 2.1 HTTP version in requests -
proxy MUST NOT forward Connection response header -
proxy MUST NOT forward Connection request header -
proxy MUST NOT forward Keep-Alive request header -
proxy MUST NOT forward TE request header -
proxy MUST NOT forward Trailer request header -
proxy MUST NOT forward Upgrade request header -
cache MUST handle misses with 101-digit age or transmit 2147483648 -
cache MUST handle misses with 1073741823 age or transmit 2147483648 -
cache MUST handle misses with 20-digit age or transmit 2147483648 -
cache MUST handle misses with 2147483647 age or transmit 2147483648 -
cache MUST handle misses with 2147483648 age -
cache MUST handle misses with 2147483649 age or transmit 2147483648 -
cache MUST handle misses with 31536001 age or transmit 2147483648 -
cache MUST handle misses with 50-digit age or transmit 2147483648 -
DUT should not forward leading 0s in major HTTP version of a response -
DUT should not forward leading 0s in major HTTP version of a request -
DUT should not forward leading 0s in minor HTTP version of a response -
DUT should not forward leading 0s in minor HTTP version of a request -
proxies MUST handle 1024byte-long URIs -
proxies MUST handle 65536byte-long URIs -
proxies MUST handle 8192byte-long URIs -
proxy MUST subtract one from Max-Forwards value of 012 prior to forwarding the OPTIONS request -
proxy MUST subtract one from Max-Forwards value of 1 prior to forwarding the OPTIONS request -
proxy MUST subtract one from Max-Forwards value of 10 prior to forwarding the OPTIONS request -
proxy MUST subtract one from Max-Forwards value of 940 prior to forwarding the OPTIONS request -
proxy MUST NOT forward OPTIONS request with Max-Forwards value of zero; using absolute Request-URI -
server MUST delimit the message using 1.0 methods when forwarding simple 2-part range to a 1.0 client -
proxy MUST ensure that 1.0 requests it forwards have Host header -
servers MUST respond with a 400 status code to 1.1 requests without Host header -
proxy MUST NOT add Content-Encoding field to response headers with no-transform cache-directive -
proxy MUST NOT add Content-Encoding field to request headers with no-transform cache-directive -
proxy MUST NOT add Content-Encoding field to request headers without no-transform cache-directive -
proxy MUST NOT add Content-Location field to response headers without no-transform cache-directive -
proxy MUST NOT add Content-Location field to request headers without no-transform cache-directive -
proxy MUST NOT add Content-MD5 field to response headers without no-transform cache-directive -
proxy MUST NOT add Content-MD5 field to request headers without no-transform cache-directive -
proxy MUST NOT add Content-Range field to response headers with no-transform cache-directive -
proxy MUST NOT add Content-Range field to request headers with no-transform cache-directive -
proxy MUST NOT add Content-Range field to request headers without no-transform cache-directive -
proxy MUST NOT add Content-Type field to request headers with no-transform cache-directive -
proxy MUST NOT add Content-Type field to request headers without no-transform cache-directive -
proxy MUST NOT add ETag field to response headers without no-transform cache-directive -
proxy MUST NOT add ETag field to request headers without no-transform cache-directive -
proxy MUST NOT add Last-Modified field to response headers without no-transform cache-directive -
proxy MUST NOT add Last-Modified field to request headers without no-transform cache-directive -
proxy MUST NOT modify 1 flat Content-Encoding header value(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify 1 flat Content-Encoding header value(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify 1 flat Content-Encoding header value(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify 17 flat Content-Encoding header value(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify 17 flat Content-Encoding header value(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify 17 flat Content-Encoding header value(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify 2 flat Content-Encoding header value(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify 2 flat Content-Encoding header value(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify 2 flat Content-Encoding header value(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify 17 Content-Encoding header fields in response headers with no-transform cache-directive -
proxy MUST NOT modify 17 Content-Encoding header fields in request headers with no-transform cache-directive -
proxy MUST NOT modify 17 Content-Encoding header fields in request headers without no-transform cache-directive -
proxy MUST NOT modify 2 Content-Encoding header fields in response headers with no-transform cache-directive -
proxy MUST NOT modify 2 Content-Encoding header fields in request headers with no-transform cache-directive -
proxy MUST NOT modify 2 Content-Encoding header fields in request headers without no-transform cache-directive -
proxy MUST NOT modify 17 multi-line Content-Encoding header value(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify 17 multi-line Content-Encoding header value(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify 17 multi-line Content-Encoding header value(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify 2 multi-line Content-Encoding header value(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify 2 multi-line Content-Encoding header value(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify 2 multi-line Content-Encoding header value(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify root Content-Location header in response headers without no-transform cache-directive -
proxy MUST NOT modify root Content-Location header in request headers without no-transform cache-directive -
proxy MUST NOT modify Content-MD5 header in response headers without no-transform cache-directive -
proxy MUST NOT modify Content-MD5 header in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-0/* content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/* content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/* content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-0/1 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/1 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/1 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-0/2147483647 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/2147483647 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-0/2147483647 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-100/* content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/* content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/* content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-100/101 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/101 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/101 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 0-100/2147483647 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/2147483647 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 0-100/2147483647 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 100-100/* content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/* content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/* content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 100-100/101 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/101 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/101 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 100-100/2147483647 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/2147483647 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 100-100/2147483647 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/* content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/* content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/* content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/2147483647 content-range-spec as Content-Range value in response headers with no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/2147483647 content-range-spec as Content-Range value in request headers with no-transform cache-directive -
proxy MUST NOT modify simple 2147483645-2147483646/2147483647 content-range-spec as Content-Range value in request headers without no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 0 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 0 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 0 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 1 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 1 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 1 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 2 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 2 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify flat Content-Type header with 2 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 0 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 0 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 0 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 1 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 1 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 1 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 2 media-type parameter(s) in response headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 2 media-type parameter(s) in request headers with no-transform cache-directive -
proxy MUST NOT modify multi-line Content-Type header with 2 media-type parameter(s) in request headers without no-transform cache-directive -
proxy MUST NOT modify ETag header in response headers without no-transform cache-directive -
proxy MUST NOT modify ETag header in request headers without no-transform cache-directive -
proxy MUST NOT modify future Expires header in response headers without no-transform cache-directive -
proxy MUST NOT modify future Expires header in request headers without no-transform cache-directive -
proxy MUST NOT modify past Expires header in response headers without no-transform cache-directive -
proxy MUST NOT modify past Expires header in request headers without no-transform cache-directive -
proxy MUST NOT modify Last-Modified header in response headers without no-transform cache-directive -
proxy MUST NOT modify Last-Modified header in request headers without no-transform cache-directive -
DUT MUST reject or implement GETX optional method -
DUT MUST reject or implement OPTIONS optional method -
DUT MUST reject or implement XGET optional method -
DUT MUST reject or implement XMETHOD optional method -
proxy MUST pass through Pragma responses with several tokens -
proxy MUST pass through Pragma requests with several tokens -
proxy MUST pass through Pragma responses with no-cache tokens -
proxy MUST pass through Pragma requests with no-cache tokens -
proxy MUST pass through Pragma responses with param=quoted-value tokens -
proxy MUST pass through Pragma requests with param=quoted-value tokens -
proxy MUST pass through Pragma responses with param=value tokens -
proxy MUST pass through Pragma requests with param=value tokens -
proxy MUST recognize loopback IP address as its server name -
proxy MUST recognize loopback name as its server name -
proxy MUST recognize primary address as its server name -
DUT MUST support the GET method -
DUT MUST support the HEAD method -
client MUST accept 17 4-header 100-status response(s) prior to a regular response -
client MUST accept 1 0-header 100-status response(s) prior to a regular response -
client MUST accept 1 4-header 100-status response(s) prior to a regular response -
client MUST accept 1 4-header 101-status response(s) prior to a regular response -
client MUST accept 1 4-header 199-status response(s) prior to a regular response -
proxy MUST NOT forward 17 4-header 100-status response(s) prior to a regular response to HTTP/1.0 client -
proxy MUST NOT forward 1 0-header 100-status response(s) prior to a regular response to HTTP/1.0 client -
proxy MUST NOT forward 1 4-header 100-status response(s) prior to a regular response to HTTP/1.0 client -
proxy MUST respond with 417 (Expectation Failed) if it cannot meet the "0100-continue" expectation -
proxy MUST respond with 417 (Expectation Failed) if it cannot meet the "100-continueing" expectation -
proxy MUST respond with 417 (Expectation Failed) if it cannot meet the "expect=params" expectation -
proxy MUST respond with 417 (Expectation Failed) if it cannot meet the "expect=" 100-continue="" expectation -

Protocol violations

TestCaseComment
proxies MUST append Via response header to responses; using 17 single-valued matching header field PR#19439
proxies MUST append Via response header to responses; using 3 single-valued matching header field PR#19439
proxies MUST append Via response header to responses; using 5 4-valued matching header field PR#19439
DUT MUST handle "chunked" response with a 16385Byte-long quoted chunk-ext-val sent to an HTTP/1.0 client probable bug, edge-case, believed irrelevant
DUT MUST handle "chunked" response with a 16385Byte-long chunk-ext-val sent to an HTTP/1.0 client probable bug, edge-case, believed irrelevant
DUT MUST handle "chunked" response with a 16385Byte-long quoted chunk-ext-val sent to an HTTP/1.1 client probable bug, edge-case, believed irrelevant
DUT MUST handle "chunked" request with a 16385Byte-long quoted chunk-ext-val probable bug, edge-case, believed irrelevant
DUT MUST handle "chunked" response with a 16385Byte-long chunk-ext-val sent to an HTTP/1.1 client probable bug, edge-case, believed irrelevant
DUT MUST handle "chunked" request with a 16385Byte-long chunk-ext-val probable bug, edge-case, believed irrelevant
proxy MUST NOT forward response headers matching Connection tokens: many headers, many token lists testbench implementation of this case believed buggy PR#43509
DUT MUST delete 1 warning-value(s) with future date while leaving 1 warning-value(s) with current date PR#16138
DUT MUST delete 1 warning-value(s) with old date while leaving 1 warning-value(s) with current date PR#16138
DUT MUST delete 2 warning-value(s) with old date and 2 warning-value(s) with future date while leaving 2 warning-value(s) with current date PR#16138
DUT MUST delete multiple old warning-values within one Warning header PR#16138
DUT MUST delete warning-value with old warn-date on the second line PR#16138
proxy MUST NOT add Max-Forwards header to request; using GET request method PR#16137
proxy MUST NOT add Max-Forwards header to request; using OPTIONS request method PR#16137
proxy MUST NOT forward epilogue in multipart/byteranges response Protocol violation in the server is not the responsibility of the proxy, but we might nevertheless enable fixing it
proxy MUST NOT forward epilogue in multipart/byteranges request Bogus testcase
proxy MUST NOT forward Keep-Alive response header PR#43455
proxy MUST NOT forward Proxy-Authenticate response header PR#43455
proxy MUST NOT forward Trailer response header PR#43455
proxy MUST NOT forward Upgrade response header PR#43455
proxy MUST subtract one from 21-digit Max-Forwards value prior to forwarding the OPTIONS request WONTFIX contrived/irrelevant edge case
proxy MUST NOT add Content-Type field to response headers with no-transform cache-directive PR#16139
DUT MUST reject or implement TRACE optional method Fixed in svn r576514
proxy MUST forward 17 4-header 100-status response(s) prior to a regular response PR#16158
proxy MUST forward 1 0-header 100-status response(s) prior to a regular response PR#16158
proxy MUST forward 1 4-header 100-status response(s) prior to a regular response PR#16158
proxy MUST forward 1 4-header 101-status response(s) prior to a regular response PR#16158
proxy MUST forward 1 4-header 199-status response(s) prior to a regular response PR#16158

Testcases not completed

TestCaseComment
proxy MUST add Content-Length header to request containing multipart/byteranges body Bogus testcase
the agent MUST accept response Date in asctime and Warning date in rfc1123 PR#16138 prevents test running
the agent MUST accept response Date in asctime and Warning date in rfc850 PR#16138 prevents test running
the agent MUST accept response Date in rfc1123 and Warning date in asctime PR#16138 prevents test running
the agent MUST accept response Date in rfc1123 and Warning date in rfc850 PR#16138 prevents test running
the agent MUST accept response Date in rfc850 and Warning date in asctime PR#16138 prevents test running
the agent MUST accept response Date in rfc850 and Warning date in rfc1123 PR#16138 prevents test running
DUT MUST delete Warning header without warning-values; using and 0 warning-value(s) with future date PR#16138 prevents test running
DUT MUST delete Warning header without warning-values; using 1 warning-value(s) with old date PR#16138 prevents test running
DUT MUST delete Warning header without warning-values; using 1 warning-value(s) with old date and 1 warning-value(s) with future date and 1 warning-value(s) with current date PR#16138 prevents test running
DUT MUST delete Warning header without warning-values; using 2 warning-value(s) with old date and 2 warning-value(s) with future date PR#16138 prevents test running
DUT MUST delete Warning header without warning-values; using warning-value with old warn-date on the second line PR#16138 prevents test running
proxy MUST subtract one from Max-Forwards value of 012 prior to forwarding the TRACE request Works with TraceEnable On
proxy MUST subtract one from Max-Forwards value of 1 prior to forwarding the TRACE request Works with TraceEnable On
proxy MUST subtract one from Max-Forwards value of 10 prior to forwarding the TRACE request Works with TraceEnable On
proxy MUST subtract one from 21-digit Max-Forwards value prior to forwarding the TRACE request WONTFIX contrived/irrelevant edge case
proxy MUST subtract one from Max-Forwards value of 940 prior to forwarding the TRACE request Works with TraceEnable On
proxy MUST NOT forward OPTIONS request with Max-Forwards value of zero; using asterisk Request-URI Bogus testcase
proxy MUST NOT forward TRACE request with Max-Forwards value of zero; using absolute Request-URI Works with TraceEnable On
proxy MUST NOT forward TRACE request with Max-Forwards value of zero; using asterisk Request-URI Bogus testcase
DUT MUST NOT automatically retry POST request Failed requests are returned to client, not retried by proxy
DUT MUST NOT automatically retry XTENSION request Failed requests are returned to client, not retried by proxy
proxy MUST NOT modify flat Content-Type header with 17 media-type parameter(s) in response headers with no-transform cache-directive Looks like a bug - needs investigation
proxy MUST NOT modify flat Content-Type header with 17 media-type parameter(s) in request headers with no-transform cache-directive Looks like a bug - needs investigation
proxy MUST NOT modify flat Content-Type header with 17 media-type parameter(s) in request headers without no-transform cache-directive Looks like a bug - needs investigation
proxy MUST NOT modify multi-line Content-Type header with 17 media-type parameter(s) in response headers with no-transform cache-directive Looks like a bug - needs investigation
proxy MUST NOT modify multi-line Content-Type header with 17 media-type parameter(s) in request headers with no-transform cache-directive Looks like a bug - needs investigation
proxy MUST NOT modify multi-line Content-Type header with 17 media-type parameter(s) in request headers without no-transform cache-directive Looks like a bug - needs investigation
server MUST pipeline responses in request order Feature not supported
client MUST retry if a pipeline fails Feature not supported
client MUST NOT immediately pipeline on a retry Feature not supported