HTTP Grammar

token chr(control | t‑special)+
comment lparen (ctext quoted‑pair | comment)* rparen
parameter attribute eq attr‑val
attribute token
attr‑val token | quoted‑string
hex digit | hx
chr digit | hx | alpha | ht | dq | cr | lf | ctl | sp | colon | semicolon | comma | dot | lparen | rparen | langle | rangle | lbracket | rbracket | lbrace | rbrace | slash | backslash | eq | ch
text octetcontrol
ctext text(lparen | rparen)
quoted‑string dq (qd‑text | quoted‑pair)* dq
qd‑text textdq
quoted‑pair backslash chr
control ht | cr | lf | ctl
t‑special lparen | rparen | langle | rangle | at | comma | semicolon | colon | backslash | dq | slash | lbracket | rbracket | quest | eq | lbrace | rbrace | sp | ht
octet chr | oct
lws ((cr | lf)? (sp | ht))+