This HTML version of the ABNF from file <rfc2068.abnf> is automatically generated using the ABNF2HTML $Revision: 1.26 $ tool provided by Inet Technologies, Inc. written by Brian Bidulock.
This version of ABNF is for informational purposes only and is intended as a tool to help read the ABNF specification. Please see the Copyright and Disclaimers at the end of this document. For definitive syntax descriptions, please refer to the source IETF documents.
The protocol syntax is presented in ABNF according to RFC2234 with extensions from RFC822. This ABNF browser was generated from file <rfc2068.abnf> on Fri Aug 11 01:30:47 CDT 2000.
This document consists of:
The productions for the ABNF specification are provided below.
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> | |
Following is a cross-reference list for the ABNF. On the left are references to productions, on the right are links to the rules in which those productions are referenced.
This ABNF2HTML generated document is a derivative work of an Internet-Draft or RFC and is:
Copyright © The Internet Society (2000).
All Rights Reserved.This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into language other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or asigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THIS INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Although the conversion program which created this document has been tested vigorously, errors may have been introduced while translating from ABNF to HTML: neither the author nor Inet Technologies, Inc. offers any warranty of fitness for any purpose whatsoever regarding the information contained herein, and shall not be held responsible for any damages whatsoever (whether indirect or special) arising from the use of this document or the information contained herein. Inet Technologies, Inc. is under no obligation to provide any feature nor conform to any specification listed in this document.