; the ABNF below was extracted from the IETF HTTPbis WG Internet Drafts ; please see ; for copyright information. Accept = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ OWS ( media-range [ accept-params ] ) ] ) ] Accept-Charset = *( "," OWS ) ( ( charset / "*" ) [ OWS ";" OWS "q=" qvalue ] ) *( OWS "," [ OWS ( ( charset / "*" ) [ OWS ";" OWS "q=" qvalue ] ) ] ) Accept-Encoding = [ ( "," / ( codings [ OWS ";" OWS "q=" qvalue ] ) ) *( OWS "," [ OWS ( codings [ OWS ";" OWS "q=" qvalue ] ) ] ) ] Accept-Language = *( "," OWS ) ( language-range [ OWS ";" OWS "q=" qvalue ] ) *( OWS "," [ OWS ( language-range [ OWS ";" OWS "q=" qvalue ] ) ] ) Accept-Ranges = acceptable-ranges Age = delta-seconds Allow = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] Authorization = credentials BWS = OWS Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS cache-directive ] ) Connection = *( "," OWS ) connection-option *( OWS "," [ OWS connection-option ] ) Content-Encoding = *( "," OWS ) content-coding *( OWS "," [ OWS content-coding ] ) Content-Language = *( "," OWS ) language-tag *( OWS "," [ OWS language-tag ] ) Content-Length = 1*DIGIT Content-Location = absolute-URI / partial-URI Content-Range = byte-content-range-spec / other-content-range-spec Content-Type = media-type Date = HTTP-date ETag = entity-tag Expect = *( "," OWS ) expectation *( OWS "," [ OWS expectation ] ) Expires = HTTP-date From = mailbox GMT = %x47.4D.54 ; GMT HTTP-date = rfc1123-date / obs-date HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] HTTP-name = %x48.54.54.50 ; HTTP HTTP-version = HTTP-name "/" DIGIT "." DIGIT Host = uri-host [ ":" port ] If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS entity-tag ] ) ) If-Modified-Since = HTTP-date If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS entity-tag ] ) ) If-Range = entity-tag / HTTP-date If-Unmodified-Since = HTTP-date Last-Modified = HTTP-date Location = URI-reference MIME-Version = 1*DIGIT "." 1*DIGIT Max-Forwards = 1*DIGIT OWS = *( SP / HTAB ) Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS pragma-directive ] ) Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge ] ) Proxy-Authorization = credentials RWS = 1*( SP / HTAB ) Range = byte-ranges-specifier / other-ranges-specifier Referer = absolute-URI / partial-URI Retry-After = HTTP-date / delta-seconds Server = product *( RWS ( product / comment ) ) 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 = Upgrade = *( "," OWS ) protocol *( OWS "," [ OWS protocol ] ) User-Agent = product *( RWS ( product / comment ) ) Vary = "*" / ( *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) ) Via = *( "," OWS ) ( received-protocol RWS received-by [ RWS comment ] ) *( OWS "," [ OWS ( received-protocol RWS received-by [ RWS comment ] ) ] ) WWW-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge ] ) Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ] ) absolute-URI = absolute-form = absolute-URI accept-ext = OWS ";" OWS token [ "=" word ] accept-params = OWS ";" OWS "q=" qvalue *accept-ext acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS range-unit ] ) ) / "none" asctime-date = day-name SP date3 SP time-of-day SP year asterisk-form = "*" attribute = token auth-param = token BWS "=" BWS ( token / quoted-string ) auth-scheme = token authority = authority-form = authority b64token = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" byte-content-range-spec = bytes-unit SP byte-range-resp-spec "/" ( instance-length / "*" ) byte-range-resp-spec = ( first-byte-pos "-" last-byte-pos ) / "*" byte-range-set = *( "," OWS ) ( byte-range-spec / suffix-byte-range-spec ) *( OWS "," [ OWS ( byte-range-spec / suffix-byte-range-spec ) ] ) byte-range-spec = first-byte-pos "-" [ last-byte-pos ] byte-ranges-specifier = bytes-unit "=" byte-range-set bytes-unit = "bytes" cache-directive = token [ "=" ( token / quoted-string ) ] challenge = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] charset = token chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF chunk-data = 1*OCTET chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) chunk-ext-name = token chunk-ext-val = token / quoted-str-nf chunk-size = 1*HEXDIG chunked-body = *chunk last-chunk trailer-part CRLF codings = content-coding / "identity" / "*" comment = "(" *( ctext / quoted-cpair / comment ) ")" connection-option = token content-coding = token credentials = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] ctext = OWS / %x21-27 ; '!'-''' / %x2A-5B ; '*'-'[' / %x5D-7E ; ']'-'~' / obs-text date1 = day SP month SP year date2 = day "-" month "-" 2DIGIT date3 = month SP ( 2DIGIT / ( SP DIGIT ) ) day = 2DIGIT day-name = %x4D.6F.6E ; Mon / %x54.75.65 ; Tue / %x57.65.64 ; Wed / %x54.68.75 ; Thu / %x46.72.69 ; Fri / %x53.61.74 ; Sat / %x53.75.6E ; Sun day-name-l = %x4D.6F.6E.64.61.79 ; Monday / %x54.75.65.73.64.61.79 ; Tuesday / %x57.65.64.6E.65.73.64.61.79 ; Wednesday / %x54.68.75.72.73.64.61.79 ; Thursday / %x46.72.69.64.61.79 ; Friday / %x53.61.74.75.72.64.61.79 ; Saturday / %x53.75.6E.64.61.79 ; Sunday delta-seconds = 1*DIGIT entity-tag = [ weak ] opaque-tag etagc = "!" / %x23-7E ; '#'-'~' / obs-text expect-name = token expect-param = expect-name [ BWS "=" BWS expect-value ] expect-value = token / quoted-string expectation = expect-name [ BWS "=" BWS expect-value ] *( OWS ";" [ OWS expect-param ] ) extension-pragma = token [ "=" ( token / quoted-string ) ] field-content = *( HTAB / SP / VCHAR / obs-text ) field-name = token field-value = *( field-content / obs-fold ) first-byte-pos = 1*DIGIT header-field = field-name ":" OWS field-value BWS hour = 2DIGIT http-URI = "http://" authority path-abempty [ "?" query ] https-URI = "https://" authority path-abempty [ "?" query ] instance-length = 1*DIGIT language-range = language-tag = last-byte-pos = 1*DIGIT last-chunk = 1*"0" [ chunk-ext ] CRLF mailbox = media-range = ( "*/*" / ( type "/*" ) / ( type "/" subtype ) ) *( OWS ";" OWS parameter ) media-type = type "/" subtype *( OWS ";" OWS parameter ) message-body = *OCTET method = token minute = 2DIGIT month = %x4A.61.6E ; Jan / %x46.65.62 ; Feb / %x4D.61.72 ; Mar / %x41.70.72 ; Apr / %x4D.61.79 ; May / %x4A.75.6E ; Jun / %x4A.75.6C ; Jul / %x41.75.67 ; Aug / %x53.65.70 ; Sep / %x4F.63.74 ; Oct / %x4E.6F.76 ; Nov / %x44.65.63 ; Dec obs-date = rfc850-date / asctime-date obs-fold = CRLF ( SP / HTAB ) obs-text = %x80-FF opaque-tag = DQUOTE *etagc DQUOTE origin-form = path-absolute [ "?" query ] other-content-range-spec = other-range-unit SP other-range-resp-spec other-range-resp-spec = *CHAR other-range-set = 1*CHAR other-range-unit = token other-ranges-specifier = other-range-unit "=" other-range-set parameter = attribute "=" value partial-URI = relative-part [ "?" query ] path-abempty = path-absolute = port = pragma-directive = "no-cache" / extension-pragma product = token [ "/" product-version ] product-version = token protocol = protocol-name [ "/" protocol-version ] protocol-name = token protocol-version = token pseudonym = token qdtext = OWS / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text qdtext-nf = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text query = quoted-cpair = "\" ( HTAB / SP / VCHAR / obs-text ) quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) quoted-str-nf = DQUOTE *( qdtext-nf / quoted-pair ) DQUOTE quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE qvalue = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) range-unit = bytes-unit / other-range-unit reason-phrase = *( HTAB / SP / VCHAR / obs-text ) received-by = ( uri-host [ ":" port ] ) / pseudonym received-protocol = [ protocol-name "/" ] protocol-version relative-part = request-line = method SP request-target SP HTTP-version CRLF request-target = origin-form / absolute-form / authority-form / asterisk-form rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT second = 2DIGIT special = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" start-line = request-line / status-line status-code = 3DIGIT status-line = HTTP-version SP status-code SP reason-phrase CRLF subtype = token suffix-byte-range-spec = "-" suffix-length suffix-length = 1*DIGIT t-codings = "trailers" / ( transfer-extension [ te-params ] ) tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA te-ext = OWS ";" OWS token [ "=" word ] te-params = OWS ";" OWS "q=" qvalue *te-ext time-of-day = hour ":" minute ":" second token = 1*tchar trailer-part = *( header-field CRLF ) transfer-coding = "chunked" / "compress" / "deflate" / "gzip" / transfer-extension transfer-extension = token *( OWS ";" OWS transfer-parameter ) transfer-parameter = attribute BWS "=" BWS value type = token uri-host = value = word warn-agent = ( uri-host [ ":" port ] ) / pseudonym warn-code = 3DIGIT warn-date = DQUOTE HTTP-date DQUOTE warn-text = quoted-string warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date ] weak = %x57.2F ; W/ word = token / quoted-string year = 4DIGIT ; Accept defined but not used ; Accept-Charset defined but not used ; Accept-Encoding defined but not used ; Accept-Language defined but not used ; Accept-Ranges defined but not used ; Age defined but not used ; Allow defined but not used ; Authorization defined but not used ; Cache-Control defined but not used ; Connection defined but not used ; Content-Encoding defined but not used ; Content-Language defined but not used ; Content-Length defined but not used ; Content-Location defined but not used ; Content-Range defined but not used ; Content-Type defined but not used ; Date defined but not used ; ETag defined but not used ; Expect defined but not used ; Expires defined but not used ; From defined but not used ; HTTP-message defined but not used ; Host defined but not used ; If-Match defined but not used ; If-Modified-Since defined but not used ; If-None-Match defined but not used ; If-Range defined but not used ; If-Unmodified-Since defined but not used ; Last-Modified defined but not used ; Location defined but not used ; MIME-Version defined but not used ; Max-Forwards defined but not used ; Pragma defined but not used ; Proxy-Authenticate defined but not used ; Proxy-Authorization defined but not used ; Range defined but not used ; Referer defined but not used ; Retry-After defined but not used ; Server defined but not used ; TE defined but not used ; Trailer defined but not used ; Transfer-Encoding defined but not used ; Upgrade defined but not used ; User-Agent defined but not used ; Vary defined but not used ; Via defined but not used ; WWW-Authenticate defined but not used ; Warning defined but not used ; chunked-body defined but not used ; http-URI defined but not used ; https-URI defined but not used ; special defined but not used