response = status-line *(header CRLF) CRLF body
status-line = http-version SP status-code SP reason-phrase CRLF
http-version = "H" "T" "T" "P" "/" DIGIT "." DIGIT
status-code = 3*3DIGIT
reason-phrase = *( HTAB / SP / VCHAR )
header = field-name ":" *OWS field-content *OWS
field-name = token
field-content = VCHAR [ 1*WSP VCHAR ]

token = 1*tchar
tchar = DIGIT / ALPHA / "!" / "#" / "$" / "%" / "&" / "'" / "*"
        / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
body = *OCTET

OWS = *WSP
WSP = SP / HTAB
SP = " "
HTAB = "\t"
CRLF = CR LF
LF = "\n"
CR = "\r"
VCHAR = <"!" -> "}"> ; All printable ascii characters
ALPHA = ALPHA_LOW | ALPHA_UP
ALPHA_LOW = <"a" -> "z">
ALPHA_UP = <"A" -> "Z">
DIGIT = <"0" -> "9">
OCTET = <\x00 -> \xFF>

