Variations of server side chunked encoding

Various tests with invalid or uncommon forms of setting or not setting the Transfer-Encoding: chunked header:

VALID: basic tests

simple and valid chunking
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

content-length header, not chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

VALID: modification of chunk size

chunks size prefixed with 0
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunks size prefixed with 00
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

upper case size
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

upper case size prefix with 0
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

negative size for 32bit uint
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

negative size for 64bit uint
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by space
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by tab
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by <CR>
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by <LF>
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by char 'x'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by char ','
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by char \000
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by char \v
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by char \f
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size followed by space and char 'x'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by space
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by tab
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by cr
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by lf
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by "\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by "\r\n\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by "\r\nx\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char 'x'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char ','
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char ';'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char \000
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char \v
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char \f
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char 'x' and space
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by char '+'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

size prefixed by '0x'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk size "00"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk size "00000000000000000000"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk size "0x"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk size "Foo"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk just "0\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk just "0\r"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk just "0"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk "0\n\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk "0\n<space>\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk "0\n\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk "0\n\r\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

final chunk "0\r\nfoobar\r\n"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

VALID: (but uncommon) use of extensions in chunked header

chunked with some junk chunk extension
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked with some junk chunk extension looking like a chunk
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

VALID: combined with content-length

chunked first then content-length, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

content-length first then chunked, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunking and content-length header with double length, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunking and content-length header with half length, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunking and content-length header with huge length, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

content+junk, chunked, content-length header includes content only
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: chunking is only allowed with HTTP/1.1

Chunked Header and HTTP/1.0. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and Content-length and HTTP/1.0. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Content-length Header and Chunked and HTTP/1.0. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.0. Served chunked with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and Content-length and HTTP/1.0. Served chunked with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Content-length Header and Chunked and HTTP/1.0. Served chunked with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

VALID: chunked header should be ignored with HTTP/1.0

Chunked Header and HTTP/1.0. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and Content-length and HTTP/1.0. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Content-length Header and Chunked and HTTP/1.0. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.0. Not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and Content-length and HTTP/1.0. Not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Content-length Header and Chunked and HTTP/1.0. Not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: chunking with invalid HTTP versions

Chunked Header and HTTP/1.2. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.2. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/2.0. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/2.0. erved chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/2.1. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/2.1. erved chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/0.9. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/0.9. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.01. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.01. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.10. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/1.10. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and http/1.1. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and http/1.1. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and http/1.0. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and http/1.0. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/0.1. Served chunked and with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/0.1. Not served chunked but with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/01.1. Served chunked and with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/01.1. Not served chunked but with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/11.01. Served chunked and with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/11.01. Not served chunked but with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/11.10. Served chunked and with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/11.10. Not served chunked but with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/9.9. Served chunked and with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Chunked Header and HTTP/9.9. Not served chunked but with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

VALID: valid variations on "chunked" value

mixed case "chUnked", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header with continuation line, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header followed by empty with continuation line, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header with double continuation line, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header with double continuation line and continuation afterwareds, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

'Transfer-Encoding:<lots of space>chunked'
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: invalid variations on "chunked" value

"chu" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding: chunked;"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"xchunked" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"chunkedx" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"chunked x" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"x chunked" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"chunked x" not "chunked", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"x chunked" not "chunked", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"x-folding-chunked" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"chunked-folding-x" not "chunked"
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

rfc2047/base64 encoded "chunked", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

rfc2047/base64 encoded "chunked", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

rfc2047/base64 encoded "chunked" and content-length, not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header with continuation line. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header followed by empty continuation line. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunked header with double continuation line, not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:<CR>chunked. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:<CR>chunked. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:<CR><space>chunked. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:<CR><space>chunked. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:chunked<CR><space>. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding:chunked<CR><space>. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Content-encoding chunked instead of Transfer-encoding. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: hiding with another Transfer-Encoding header

double Transfer-Encoding: first junk, last chunked. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first junk, last chunked. Served chunked and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Served chunked and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

triple Transfer-Encoding: first junk, then chunked, then junk again. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

triple Transfer-Encoding: first junk, then chunked, then junk again. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first junk, last chunked. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Also Content-length header. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first junk, last chunked. Also Content-length header. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

triple Transfer-Encoding: first junk, then chunked, then junk again. Also Content-length header. Served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

triple Transfer-Encoding: first junk, then chunked, then junk again. Also Content-length header. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Also Content-length header. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last junk. Also Content-length header. Not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first junk, last chunked. Also Content-length header. Not served chunked.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first junk, last chunked. Also Content-length header. Not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunking and content-length, not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunking and content-length, not served chunked. Compressed with gzip.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first empty, last chunked. Served chunked and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first empty, last chunked. Served with content-length and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last empty. Served chunked and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

double Transfer-Encoding: first chunked, last empty. Served with content-length and gzipped.
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: hiding the Transfer-Encoding header

"Transfer-Encoding<space>:", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding<tab>:", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding<CR>:", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding<space>:", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding<tab>:", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding<CR>:", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding::", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

"Transfer-Encoding::", not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding with only <CR> as line delimiter before, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Only <CR> as line delimiter followed by "xTransfer-Encoding", served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding with only <CR> as line delimiter before, not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding with only <LF> as line delimiter before, served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

Transfer-Encoding with only <LF> as line delimiter before, not served chunked
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

INVALID: invalid chunks

chunk with LF as delimiter instead of CRLF
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunk with CR as delimiter instead of CRLF
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunk with CRCR as delimiter instead of CRLF
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunk with LFLF as delimiter instead of CRLF
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

chunk with LFCR as delimiter instead of CRLF
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

missing final chunk
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

eof inside some chunk
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

space before chunks start
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

<LF> before chunks start
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

<CR> before chunks start
IMAGE
SCRIPT
 load EICAR  load eicar.zip 

<CR><LF> before chunks start
IMAGE
SCRIPT
 load EICAR  load eicar.zip