BWS = OWSConnection = *( "," OWS ) connection-option *( OWS "," [ OWS connection-option ] )Content-Length = 1*DIGITHTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]HTTP-name = %x48.54.54.50 ; HTTPHTTP-version = HTTP-name "/" DIGIT "." DIGITHost = uri-host [ ":" port ]OWS = *( SP / HTAB )RWS = 1*( SP / HTAB )TE = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ]Trailer = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] )Transfer-Encoding = *( "," OWS ) transfer-coding *( OWS "," [ OWS transfer-coding ] )URI-reference = <URI-reference, see [RFC3986], Section 4.1>Upgrade = *( "," OWS ) protocol *( OWS "," [ OWS protocol ] )Via = *( "," OWS ) ( received-protocol RWS received-by [ RWS comment ] ) *( OWS "," [ OWS ( received-protocol RWS received-by [ RWS comment ] ) ] )absolute-URI = <absolute-URI, see [RFC3986], Section 4.3>absolute-form = absolute-URIabsolute-path = 1*( "/" segment )asterisk-form = "*"authority = <authority, see [RFC3986], Section 3.2>authority-form = authoritychunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLFchunk-data = 1*OCTETchunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )chunk-ext-name = tokenchunk-ext-val = token / quoted-stringchunk-size = 1*HEXDIGchunked-body = *chunk last-chunk trailer-part CRLFcomment = "(" *( ctext / quoted-pair / comment ) ")"connection-option = tokenctext = HTAB / SP / %x21-27 ; '!'-''' / %x2A-5B ; '*'-'[' / %x5D-7E ; ']'-'~' / obs-textfield-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]field-name = tokenfield-value = *( field-content / obs-fold )field-vchar = VCHAR / obs-textfragment = <fragment, see [RFC3986], Section 3.5>header-field = field-name ":" OWS field-value OWShttp-URI = "http://" authority path-abempty [ "?" query ] [ "#" fragment ]https-URI = "https://" authority path-abempty [ "?" query ] [ "#" fragment ]last-chunk = 1*"0" [ chunk-ext ] CRLFmessage-body = *OCTETmethod = tokenobs-fold = CRLF 1*( SP / HTAB )obs-text = %x80-FForigin-form = absolute-path [ "?" query ]partial-URI = relative-part [ "?" query ]path-abempty = <path-abempty, see [RFC3986], Section 3.3>port = <port, see [RFC3986], Section 3.2.3>protocol = protocol-name [ "/" protocol-version ]protocol-name = tokenprotocol-version = tokenpseudonym = tokenqdtext = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-textquery = <query, see [RFC3986], Section 3.4>quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTErank = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] )reason-phrase = *( HTAB / SP / VCHAR / obs-text )received-by = ( uri-host [ ":" port ] ) / pseudonymreceived-protocol = [ protocol-name "/" ] protocol-versionrelative-part = <relative-part, see [RFC3986], Section 4.2>request-line = method SP request-target SP HTTP-version CRLFrequest-target = origin-form / absolute-form / authority-form / asterisk-formscheme = <scheme, see [RFC3986], Section 3.1>segment = <segment, see [RFC3986], Section 3.3>start-line = request-line / status-linestatus-code = 3DIGITstatus-line = HTTP-version SP status-code SP reason-phrase CRLFt-codings = "trailers" / ( transfer-coding [ t-ranking ] )t-ranking = OWS ";" OWS "q=" ranktchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHAtoken = 1*tchartrailer-part = *( header-field CRLF )transfer-coding = "chunked" / "compress" / "deflate" / "gzip" / transfer-extensiontransfer-extension = token *( OWS ";" OWS transfer-parameter )transfer-parameter = token BWS "=" BWS ( token / quoted-string )uri-host = <host, see [RFC3986], Section 3.2.2>
