; 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 ] ) Chunked-Body = *chunk last-chunk trailer-part CRLF Connection = *( "," OWS ) connection-token *( OWS "," [ OWS connection-token ] ) 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-Prot-Name = %x48.54.54.50 ; HTTP HTTP-Version = HTTP-Prot-Name "/" DIGIT "." DIGIT HTTP-date = rfc1123-date / obs-date HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] 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 Method = token OWS = *( [ obs-fold ] WSP ) Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS pragma-directive ] ) Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge ] ) Proxy-Authorization = credentials RWS = 1*( [ obs-fold ] WSP ) Range = byte-ranges-specifier / other-ranges-specifier Reason-Phrase = *( WSP / VCHAR / obs-text ) Referer = absolute-URI / partial-URI Request = Request-Line *( header-field CRLF ) CRLF [ message-body ] Request-Line = Method SP request-target SP HTTP-Version CRLF Response = Status-Line *( header-field CRLF ) CRLF [ message-body ] Retry-After = HTTP-date / delta-seconds Server = product *( RWS ( product / comment ) ) Status-Code = 3DIGIT Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 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 ) product *( OWS "," [ OWS product ] ) 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 = 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 attribute = token auth-param = token BWS "=" BWS ( token / quoted-string ) auth-scheme = token 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 = cache-request-directive / cache-response-directive cache-extension = token [ "=" ( token / quoted-string ) ] cache-request-directive = "no-cache" / "no-store" / ( "max-age=" delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / ( "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / cache-extension cache-response-directive = "public" / ( "private" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds ) / ( "s-maxage=" delta-seconds ) / cache-extension challenge = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] charset = token chunk = chunk-size *WSP [ chunk-ext ] CRLF chunk-data CRLF chunk-data = 1*OCTET chunk-ext = *( ";" *WSP chunk-ext-name [ "=" chunk-ext-val ] *WSP ) chunk-ext-name = token chunk-ext-val = token / quoted-str-nf chunk-size = 1*HEXDIG codings = ( content-coding / "*" ) comment = "(" *( ctext / quoted-cpair / comment ) ")" connection-token = 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 expect-params = ";" token [ "=" ( token / quoted-string ) ] expectation = "100-continue" / expectation-extension expectation-extension = token [ "=" ( token / quoted-string ) *expect-params ] extension-pragma = token [ "=" ( token / quoted-string ) ] field-content = *( WSP / VCHAR / obs-text ) field-name = token field-value = *( field-content / OWS ) first-byte-pos = 1*DIGIT header-field = field-name ":" OWS [ field-value ] OWS 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" *WSP [ chunk-ext ] CRLF mailbox = media-range = ( "*/*" / ( type "/*" ) / ( type "/" subtype ) ) *( OWS ";" OWS parameter ) media-type = type "/" subtype *( OWS ";" OWS parameter ) message-body = *OCTET 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 obs-text = %x80-FF opaque-tag = quoted-string 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-name = token protocol-version = token pseudonym = token qdtext = OWS / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text qdtext-nf = WSP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text query = quoted-cpair = "\" ( WSP / VCHAR / obs-text ) quoted-pair = "\" ( WSP / 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 realm = "realm" BWS "=" BWS realm-value realm-value = quoted-string received-by = ( uri-host [ ":" port ] ) / pseudonym received-protocol = [ protocol-name "/" ] protocol-version relative-part = request-target = "*" / absolute-URI / ( path-absolute [ "?" query ] ) / authority 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 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 ; Chunked-Body 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 ; Request defined but not used ; Response 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 ; http-URI defined but not used ; https-URI defined but not used ; realm defined but not used ; special defined but not used