| RFC 2068 ABNF Productions |
|---|
| Rule Name | Production or Comment | |
|---|---|---|
| = | <any 8-bit sequence of data> | |
| = | <any US-ASCII character (octets 0 - 127)> | |
| = | <any US-ASCII uppercase letter "A".."Z"> | |
| = | <any US-ASCII lowercase letter "a".."z"> | |
| = | UPALPHA | LOALPHA | |
| = | <any US-ASCII digit "0".."9"> | |
| = | <any US-ASCII control character (octets 0 - 31) and DEL (127)> | |
| = | <US-ASCII CR, carriage return (13)> | |
| = | <US-ASCII LF, linefeed (10)> | |
| = | <US-ASCII SP, space (32)> | |
| = | <US-ASCII HT, horizontal-tab (9)> | |
| = | <US-ASCII double-quote mark (34)> | |
| = | CR LF | |
| = | [CRLF] 1*( SP | HT ) | |
| = | <any OCTET except CTLs, but including LWS> | |
| = | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT | |
| = | 1*<any CHAR except CTLs or tspecials> | |
| = | "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | DQUOTE | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT | |
| = | "(" *( ctext | comment ) ")" | |
| = | <any TEXT excluding "(" and ")"> | |
| = | ( DQUOTE *( qdtext ) DQUOTE ) | |
| = | <any TEXT except DQUOTE> | |
| = | "\" CHAR | |
| = | "HTTP" "/" 1*DIGIT "." 1*DIGIT | |
| = | ( absoluteURI | relativeURI ) ["#" fragment] | |
| = | scheme ":" *( uchar | reserved ) | |
| = | net_path | abs_path | rel_path | |
| = | "//" net_loc [abs_path] | |
| = | "/" rel_path | |
| = | [path] [";" params] ["?" query] | |
| = | fsegment *( "/" segment ) | |
| = | 1*pchar | |
| = | *pchar | |
| = | param *( ";" param ) | |
| = | *( pchar | "/" ) | |
| = | 1*( ALPHA | DIGIT | "+" | "-" | "." ) | |
| = | *( pchar | ";" | "?" ) | |
| = | *( uchar | reserved ) | |
| = | *( uchar | reserved ) | |
| = | uchar | ":" | "@" | "&" | "=" | "+" | |
| = | unreserved | escape | |
| = | ALPHA | DIGIT | safe | extra | national | |
| = | "%" HEX HEX | |
| = | ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | |
| = | "!" | "*" | "'" | "(" | ")" | "," | |
| = | "$" | "-" | "_" | "." | |
| = | CTL | SP | DQUOTE | "#" | "%" | "<" | ">" | |
| = | <any OCTET excluding ALPHA, DIGIT, reserved, extra, safe, and unsafe> | |
| = | "http:" "//" host [":" port] [abs_path] | |
| = | <A legal Internet host domain name or IP address (in dotted-decimal form), as defined by Section 2.1 of RFC 1123> | |
| = | *DIGIT | |
| = | rfc1123-date | rfc850-date | asctime-date | |
| = | wkday "," SP date1 SP time SP "GMT" | |
| = | weekday "," SP date2 SP time SP "GMT" | |
| = | wkday SP date3 SP time SP 4DIGIT | |
| = | 2DIGIT
SP month
SP 4DIGIT ; day month year (e.g., 02 Jun 1982) | |
| = | 2DIGIT
"-" month
"-" 2DIGIT ; day-month-year (e.g., 02-Jun-82) | |
| = | month
SP (
2DIGIT
| ( SP
1DIGIT
) ) ; month day (e.g., Jun 2)
| |
| = | 2DIGIT
":" 2DIGIT
":" 2DIGIT ; 00:00:00 - 23:59:59 | |
| = | "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" | |
| = | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday" | |
| = | "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec" | |
| = | 1*DIGIT | |
| = | token | |
| = | token | |
| = | "chunked" | transfer-extension | |
| = | token | |
| = | *chunk "0" CRLF footer CRLF | |
| = | chunk-size [chunk-ext] CRLF chunk-data CRLF | |
| = | <HEX excluding "0"> | |
| = | hex-no-zero *HEX | |
| = | *( ";" chunk-ext-name ["=" chunk-ext-value] ) | |
| = | token | |
| = | token | quoted-string | |
| = | chunk-size ( OCTET ) | |
| = | *entity-header | |
| = | type "/" subtype *( ";" parameter ) | |
| = | token | |
| = | token | |
| = | attribute "=" value | |
| = | token | |
| = | token | quoted-string | |
| = | token ["/" product-version] | |
| = | token | |
| = | ( "0" ["." 0*3DIGIT] ) | ( "1" ["." 0*3( "0" )] ) | |
| = | primary-tag *( "-" subtag ) | |
| = | 1*8ALPHA | |
| = | 1*8ALPHA | |
| = | [weak] opaque-tag | |
| = | "W/" | |
| = | quoted-string | |
| = | bytes-unit | other-range-unit | |
| = | "bytes" | |
| = | token | |
| = | Request
| Response ; HTTP/1.1 messages | |
| = | start-line *message-header CRLF [message-body] | |
| = | Request-Line | Status-Line | |
| = | field-name ":" [field-value] CRLF | |
| = | token | |
| = | *( field-content | LWS ) | |
| = | <the OCTETs making up the field-value and consisting of either *TEXT or combinations of token, tspecials, and quoted-string> | |
| = | entity-body | <entity-body encoded as per Transfer-Encoding> | |
| = | Cache-Control ; Section 14.9 | Connection ; Section 14.10 | Date ; Section 14.19 | Pragma ; Section 14.32 | Transfer-Encoding ; Section 14.40 | Upgrade ; Section 14.41 | Via ; Section 14.44 | |
| = | Request-Line
; Section 5.1 *( general-header ; Section 4.5 | request-header ; Section 5.3 | entity-header ) ; Section 7.1 CRLF [message-body] ; Section 7.2 | |
| = | Method SP Request-URI SP HTTP-Version CRLF | |
| = | "OPTIONS" ;
Section 9.2 | "GET" ; Section 9.3 | "HEAD" ; Section 9.4 | "POST" ; Section 9.5 | "PUT" ; Section 9.6 | "DELETE" ; Section 9.7 | "TRACE" ; Section 9.8 | extension-method | |
| = | token | |
| = | "*" | absoluteURI | abs_path | |
| = | Accept ; Section 14.1 | Accept-Charset ; Section 14.2 | Accept-Encoding ; Section 14.3 | Accept-Language ; Section 14.4 | Authorization ; Section 14.8 | From ; Section 14.22 | Host ; Section 14.23 | If-Modified-Since ; Section 14.24 | If-Match ; Section 14.25 | If-None-Match ; Section 14.26 | If-Range ; Section 14.27 | If-Unmodified-Since ; Section 14.28 | Max-Forwards ; Section 14.31 | Proxy-Authorization ; Section 14.34 | Range ; Section 14.36 | Referer ; Section 14.37 | User-Agent ; Section 14.42 | |
| = | Status-Line
; Section 6.1 *( general-header ; Section 4.5 | response-header ; Section 6.2 | entity-header ) ; Section 7.1 CRLF [message-body] ; Section 7.2 | |
| = | HTTP-Version SP Status-Code SP Reason-Phrase CRLF | |
| = | "100" ;
Continue | "101" ; Switching Protocols | "200" ; OK | "201" ; Created | "202" ; Accepted | "203" ; Non-Authoritative Information | "204" ; No Content | "205" ; Reset Content | "206" ; Partial Content | "300" ; Multiple Choices | "301" ; Moved Permanently | "302" ; Moved Temporarily | "303" ; See Other | "304" ; Not Modified | "305" ; Use Proxy | "400" ; Bad Request | "401" ; Unauthorized | "402" ; Payment Required | "403" ; Forbidden | "404" ; Not Found | "405" ; Method Not Allowed | "406" ; Not Acceptable | "407" ; Proxy Authentication Required | "408" ; Request Time-out | "409" ; Conflict | "410" ; Gone | "411" ; Length Required | "412" ; Precondition Failed | "413" ; Request Entity Too Large | "414" ; Request-URI Too Large | "415" ; Unsupported Media Type | "500" ; Internal Server Error | "501" ; Not Implemented | "502" ; Bad Gateway | "503" ; Service Unavailable | "504" ; Gateway Time-out | "505" ; HTTP Version not supported | extension-code | |
| = | 3DIGIT | |
| = | *<TEXT, excluding CR, LF> | |
| = | Age ; Section 14.6 | Location ; Section 14.30 | Proxy-Authenticate ; Section 14.33 | Public ; Section 14.35 | Retry-After ; Section 14.38 | Server ; Section 14.39 | Vary ; Section 14.43 | Warning ; Section 14.45 | WWW-Authenticate ; Section 14.46 | |
| = | Allow ; Section 14.7 | Content-Base ; Section 14.11 | Content-Encoding ; Section 14.12 | Content-Language ; Section 14.13 | Content-Length ; Section 14.14 | Content-Location ; Section 14.15 | Content-MD5 ; Section 14.16 | Content-Range ; Section 14.17 | Content-Type ; Section 14.18 | ETag ; Section 14.20 | Expires ; Section 14.21 | Last-Modified ; Section 14.29 | extension-header | |
| = | message-header | |
| = | *OCTET | |
| = | token | |
| = | token "=" quoted-string | |
| = | auth-scheme 1*SP realm *( "," auth-param ) | |
| = | "realm" "=" realm-value | |
| = | quoted-string | |
| = | basic-credentials | auth-scheme #auth-param | |
| = | "Basic" SP basic-cookie | |
| = | <base64 [7] encoding of> user-pass <except not limited to 76 char/line> | |
| = | userid ":" password | |
| = | *<TEXT excluding ":"> | |
| = | *TEXT | |
| = | "Accept" ":" #( media-range [accept-params] ) | |
| = | ( "*/*" | ( type "/" "*" ) | ( type "/" subtype ) ) *( ";" parameter ) | |
| = | ";" "q" "=" qvalue *( accept-extension ) | |
| = | ";" token ["=" ( token | quoted-string )] | |
| = | "Accept-Charset" ":" 1#( charset [";" "q" "=" qvalue] ) | |
| = | "Accept-Encoding" ":" #( content-coding ) | |
| = | "Accept-Language" ":" 1#( language-range [";" "q" "=" qvalue] ) | |
| = | ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) | |
| = | "Accept-Ranges" ":" acceptable-ranges | |
| = | 1#range-unit | "none" | |
| = | "Age" ":" age-value | |
| = | delta-seconds | |
| = | "Allow" ":" 1#method | |
| = | "Authorization" ":" credentials | |
| = | "Cache-Control" ":" 1#cache-directive | |
| = | cache-request-directive | cache-response-directive | |
| = | "no-cache" ["=" DQUOTE 1#field-name DQUOTE] | "no-store" | "max-age" "=" delta-seconds | "max-stale" ["=" delta-seconds] | "min-fresh" "=" delta-seconds | "only-if-cached" | cache-extension | |
| = | "public" | "private" ["=" DQUOTE 1#field-name DQUOTE] | "no-cache" ["=" DQUOTE 1#field-name DQUOTE] | "no-store" | "no-transform" | "must-revalidate" | "proxy-revalidate" | "max-age" "=" delta-seconds | cache-extension | |
| = | token ["=" ( token | quoted-string )] | |
| = | Connection-header ; added to remove orphan Connection-header | |
| = | "Connection" ":" 1#( connection-token ) | |
| = | token | |
| = | "Content-Base" ":" absoluteURI | |
| = | "Content-Encoding" ":" 1#content-coding | |
| = | "Content-Language" ":" 1#language-tag | |
| = | "Content-Length" ":" 1*DIGIT | |
| = | "Content-Location" ":" ( absoluteURI | relativeURI ) | |
| = | "Content-MD5" ":" md5-digest | |
| = | <base64 of 128 bit MD5 digest as per RFC 1864> | |
| = | "Content-Range" ":" content-range-spec | |
| = | byte-content-range-spec | |
| = | bytes-unit SP first-byte-pos "-" last-byte-pos "/" entity-length | |
| = | 1*DIGIT | |
| = | "Content-Type" ":" media-type | |
| = | "Date" ":" HTTP-date | |
| = | "ETag" ":" entity-tag | |
| = | "Expires" ":" HTTP-date | |
| = | "From" ":" mailbox | |
| = | <defined in RFC 822 (as updated by RFC 1123)> | |
| = | "Host" ":" host
[":" port] ; Section 3.2.2 | |
| = | "If-Modified-Since" ":" HTTP-date | |
| = | "If-Match" ":" ( "*" | 1#entity-tag ) | |
| = | "If-None-Match" ":" ( "*" | 1#entity-tag ) | |
| = | "If-Range" ":" ( entity-tag | HTTP-date ) | |
| = | "If-Unmodified-Since" ":" HTTP-date | |
| = | "Last-Modified" ":" HTTP-date | |
| = | "Location" ":" absoluteURI | |
| = | "Max-Forwards" ":" 1*DIGIT | |
| = | "Pragma" ":" 1#pragma-directive | |
| = | "no-cache" | extension-pragma | |
| = | token ["=" ( token | quoted-string )] | |
| = | "Proxy-Authenticate" ":" challenge | |
| = | "Proxy-Authorization" ":" credentials | |
| = | "Public" ":" 1#method | |
| = | byte-ranges-specifier | |
| = | bytes-unit "=" byte-range-set | |
| = | 1#( byte-range-spec | suffix-byte-range-spec ) | |
| = | first-byte-pos "-" [last-byte-pos] | |
| = | 1*DIGIT | |
| = | 1*DIGIT | |
| = | "-" suffix-length | |
| = | 1*DIGIT | |
| = | "Range" ":" ranges-specifier | |
| = | "Referer" ":" ( absoluteURI | relativeURI ) | |
| = | "Retry-After" ":" ( HTTP-date | delta-seconds ) | |
| = | "Server" ":" 1*( product | comment ) | |
| = | "Transfer-Encoding" ":" 1#transfer-coding | |
| = | "Upgrade" ":" 1#product | |
| = | "User-Agent" ":" 1*( product | comment ) | |
| = | "Vary" ":" ( "*" | 1#field-name ) | |
| = | "Via" ":" 1#( received-protocol received-by [comment] ) | |
| = | [protocol-name "/"] protocol-version | |
| = | token | |
| = | token | |
| = | ( host [":" port] ) | pseudonym | |
| = | token | |
| = | "Warning" ":" 1#warning-value | |
| = | warn-code SP warn-agent SP warn-text | |
| = | 2DIGIT | |
| = | ( host
[":" port] )
| pseudonym ; the name or pseudonym of the server adding
; the Warning header, for use in debugging | |
| = | quoted-string | |
| = | "WWW-Authenticate" ":" 1#challenge | |
| = | "MIME-Version" ":" 1*DIGIT "." 1*DIGIT | |
| = | "Content-Version" ":" quoted-string | |
| = | "Derived-From" ":" quoted-string | |
| = | "Link" ":" #( "<" URI ">" *( ";" link-param ) ) | |
| = | ( ( "rel" "=" relationship ) | ( "rev" "=" relationship ) | ( "title" "=" quoted-string ) | ( "anchor" "=" DQUOTE URI DQUOTE ) | ( link-extension ) ) | |
| = | token ["=" ( token | quoted-string )] | |
| = | sgml-name | ( DQUOTE sgml-name *( SP sgml-name ) DQUOTE ) | |
| = | ALPHA *( ALPHA | DIGIT | "." | "-" ) | |
| = | "URI" ":" 1#( "<" URI ">" ) | |
| = | "Keep-Alive" ":" 0#keepalive-param | |
| = | param-name "=" value | |
| = | <HTTP/1.1 does not define any paramters> | |
| Symbol Cross Reference List |
|---|