1. BWS = OWS
    2. Connection = *( "," OWS ) connection-option *( OWS "," [ OWS connection-option ] )
    3. Content-Length = 1*DIGIT
    4. HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]
    5. HTTP-name = %x48.54.54.50 ; HTTP
    6. HTTP-version = HTTP-name "/" DIGIT "." DIGIT
    7. Host = uri-host [ ":" port ]
    8. OWS = *( SP / HTAB )
    9. RWS = 1*( SP / HTAB )
    10. TE = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ]
    11. Trailer = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] )
    12. Transfer-Encoding = *( "," OWS ) transfer-coding *( OWS "," [ OWS transfer-coding ] )
    13. URI-reference = <URI-reference, see [RFC3986], Section 4.1>
    14. Upgrade = *( "," OWS ) protocol *( OWS "," [ OWS protocol ] )
    15. Via = *( "," OWS ) ( received-protocol RWS received-by [ RWS comment ] ) *( OWS "," [ OWS ( received-protocol RWS received-by [ RWS comment ] ) ] )
    16. absolute-URI = <absolute-URI, see [RFC3986], Section 4.3>
    17. absolute-form = absolute-URI
    18. absolute-path = 1*( "/" segment )
    19. asterisk-form = "*"
    20. authority = <authority, see [RFC3986], Section 3.2>
    21. authority-form = authority
    22. chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF
    23. chunk-data = 1*OCTET
    24. chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    25. chunk-ext-name = token
    26. chunk-ext-val = token / quoted-string
    27. chunk-size = 1*HEXDIG
    28. chunked-body = *chunk last-chunk trailer-part CRLF
    29. comment = "(" *( ctext / quoted-pair / comment ) ")"
    30. connection-option = token
    31. ctext = HTAB / SP / %x21-27 ; '!'-''' / %x2A-5B ; '*'-'[' / %x5D-7E ; ']'-'~' / obs-text
    32. field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
    33. field-name = token
    34. field-value = *( field-content / obs-fold )
    35. field-vchar = VCHAR / obs-text
    36. fragment = <fragment, see [RFC3986], Section 3.5>
    37. header-field = field-name ":" OWS field-value OWS
    38. http-URI = "http://" authority path-abempty [ "?" query ] [ "#" fragment ]
    39. https-URI = "https://" authority path-abempty [ "?" query ] [ "#" fragment ]
    40. last-chunk = 1*"0" [ chunk-ext ] CRLF
    41. message-body = *OCTET
    42. method = token
    43. obs-fold = CRLF 1*( SP / HTAB )
    44. obs-text = %x80-FF
    45. origin-form = absolute-path [ "?" query ]
    46. partial-URI = relative-part [ "?" query ]
    47. path-abempty = <path-abempty, see [RFC3986], Section 3.3>
    48. port = <port, see [RFC3986], Section 3.2.3>
    49. protocol = protocol-name [ "/" protocol-version ]
    50. protocol-name = token
    51. protocol-version = token
    52. pseudonym = token
    53. qdtext = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text
    54. query = <query, see [RFC3986], Section 3.4>
    55. quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
    56. quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
    57. rank = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] )
    58. reason-phrase = *( HTAB / SP / VCHAR / obs-text )
    59. received-by = ( uri-host [ ":" port ] ) / pseudonym
    60. received-protocol = [ protocol-name "/" ] protocol-version
    61. relative-part = <relative-part, see [RFC3986], Section 4.2>
    62. request-line = method SP request-target SP HTTP-version CRLF
    63. request-target = origin-form / absolute-form / authority-form / asterisk-form
    64. scheme = <scheme, see [RFC3986], Section 3.1>
    65. segment = <segment, see [RFC3986], Section 3.3>
    66. start-line = request-line / status-line
    67. status-code = 3DIGIT
    68. status-line = HTTP-version SP status-code SP reason-phrase CRLF
    69. t-codings = "trailers" / ( transfer-coding [ t-ranking ] )
    70. t-ranking = OWS ";" OWS "q=" rank
    71. tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
    72. token = 1*tchar
    73. trailer-part = *( header-field CRLF )
    74. transfer-coding = "chunked" / "compress" / "deflate" / "gzip" / transfer-extension
    75. transfer-extension = token *( OWS ";" OWS transfer-parameter )
    76. transfer-parameter = token BWS "=" BWS ( token / quoted-string )
    77. uri-host = <host, see [RFC3986], Section 3.2.2>