rfc2616.abnf.txt   draft-lafon-rfc2616bis-latest.abnf.txt 
OCTET = <any 8-bit sequence of data> OCTET = <any 8-bit sequence of data>
CHAR = <any US-ASCII character (octets 0 - 127)> CHAR = <any US-ASCII character (octets 0 - 127)>
UPALPHA = <any US-ASCII uppercase letter "A".."Z"> UPALPHA = <any US-ASCII uppercase letter "A".."Z">
LOALPHA = <any US-ASCII lowercase letter "a".."z"> LOALPHA = <any US-ASCII lowercase letter "a".."z">
ALPHA = UPALPHA | LOALPHA ALPHA = UPALPHA | LOALPHA
DIGIT = <any US-ASCII digit "0".."9"> DIGIT = <any US-ASCII digit "0".."9">
CTL = <any US-ASCII control character CTL = %x00-1F | %x7F
(octets 0 - 31) and DEL (127)> ; (octets 0 - 31) and DEL (127)
CR = <US-ASCII CR, carriage return (13)> CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)> LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)> SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)> HT = <US-ASCII HT, horizontal-tab (9)>
<"> = <US-ASCII double-quote mark (34)> DQUOTE = <US-ASCII double-quote mark (34)>
CRLF = CR LF CRLF = CR LF
LWS = [CRLF] 1*( SP | HT ) LWS = [CRLF] 1*( SP | HT )
TEXT = <any OCTET except CTLs, TEXT = %x20-7E | %x80-FF | LWS
but including LWS> ; any OCTET except CTLs, but including LWS
HEX = "A" | "B" | "C" | "D" | "E" | "F" HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
token = 1*<any CHAR except CTLs or separators> separators = "(" | ")" | "<" | ">" | "@"
separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | DQUOTE
| "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "="
| "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT
| "{" | "}" | SP | HT
comment = "(" *( ctext | quoted-pair | comment ) ")" tchar = "!" | "#" | "$" | "%" | "&" | "'" | "*" | "+" | "-"
ctext = <any TEXT excluding "(" and ")"> | "." | "^" | "_" | "`" | "|" | "~" | DIGIT | ALPHA
; any CHAR except CTLs or separators
token = 1*tchar
quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) comment = "(" *( ctext | quoted-pair | comment ) ")"
qdtext = <any TEXT except <">> ctext = %x20-27 | %x2A-7E | %x80-FF | LWS
; any TEXT excluding "(" and ")"
quoted-pair = "\" CHAR quoted-string = ( DQUOTE *(qdtext | quoted-pair ) DQUOTE )
qdtext = %x20-21 | %x23-5B | %x5D-7E | %x80-FF | LWS
; any TEXT excluding DQUOTE and "\"
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT quoted-pair = "\" CHAR
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
HTTP-date = rfc1123-date | rfc850-date | asctime-date absoluteURI = <absoluteURI, defined in [RFC2396], Section 3>
rfc1123-date = wkday "," SP date1 SP time SP "GMT" authority = <authority, defined in [RFC2396], Section 3.2>
rfc850-date = weekday "," SP date2 SP time SP "GMT" path-absolute = <abs_path, defined in [RFC2396], Section 3>
asctime-date = wkday SP date3 SP time SP 4DIGIT port = <port, defined in [RFC2396], Section 3.2.2>
date1 = 2DIGIT SP month SP 4DIGIT query = <query, defined in [RFC2396], Section 3.4>
; day month year (e.g., 02 Jun 1982) relativeURI = <relativeURI, defined in [RFC2396], Section 5>
date2 = 2DIGIT "-" month "-" 2DIGIT uri-host = <host, defined in [RFC2396], Section 3.2.2>
; day-month-year (e.g., 02-Jun-82)
date3 = month SP ( 2DIGIT | ( SP 1DIGIT ))
; month day (e.g., Jun 2)
time = 2DIGIT ":" 2DIGIT ":" 2DIGIT
; 00:00:00 - 23:59:59
wkday = "Mon" | "Tue" | "Wed"
| "Thu" | "Fri" | "Sat" | "Sun"
weekday = "Monday" | "Tuesday" | "Wednesday"
| "Thursday" | "Friday" | "Saturday" | "Sunday"
month = "Jan" | "Feb" | "Mar" | "Apr"
| "May" | "Jun" | "Jul" | "Aug"
| "Sep" | "Oct" | "Nov" | "Dec"
delta-seconds = 1*DIGIT http-URL = "http:" "//" uri-host [ ":" port ] [ path-absolute [ "?" query ]]
charset = token HTTP-date = rfc1123-date ; for use in message producers
| obsolete-date ; only allowed in message parsing
obsolete-date = rfc850-date | asctime-date
rfc1123-date = wkday "," SP date1 SP time SP "GMT"
rfc850-date = weekday "," SP date2 SP time SP "GMT"
asctime-date = wkday SP date3 SP time SP 4DIGIT
date1 = 2DIGIT SP month SP 4DIGIT
; day month year (e.g., 02 Jun 1982)
date2 = 2DIGIT "-" month "-" 2DIGIT
; day-month-year (e.g., 02-Jun-82)
date3 = month SP ( 2DIGIT | ( SP 1DIGIT ))
; month day (e.g., Jun 2)
time = 2DIGIT ":" 2DIGIT ":" 2DIGIT
; 00:00:00 - 23:59:59
wkday = "Mon" | "Tue" | "Wed"
| "Thu" | "Fri" | "Sat" | "Sun"
weekday = "Monday" | "Tuesday" | "Wednesday"
| "Thursday" | "Friday" | "Saturday" | "Sunday"
month = "Jan" | "Feb" | "Mar" | "Apr"
| "May" | "Jun" | "Jul" | "Aug"
| "Sep" | "Oct" | "Nov" | "Dec"
content-coding = token delta-seconds = 1*DIGIT
transfer-coding = "chunked" | transfer-extension charset = token
transfer-extension = token *( ";" parameter )
parameter = attribute "=" value content-coding = token
attribute = token
value = token | quoted-string
Chunked-Body = *chunk transfer-coding = "chunked" | transfer-extension
last-chunk transfer-extension = token *( ";" parameter )
trailer
CRLF
chunk = chunk-size [ chunk-extension ] CRLF parameter = attribute "=" value
chunk-data CRLF attribute = token
chunk-size = 1*HEX value = token | quoted-string
last-chunk = 1*("0") [ chunk-extension ] CRLF
chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) Chunked-Body = *chunk
chunk-ext-name = token last-chunk
chunk-ext-val = token | quoted-string trailer-part
chunk-data = chunk-size(OCTET) CRLF
trailer = *(entity-header CRLF)
media-type = type "/" subtype *( ";" parameter ) chunk = chunk-size [ chunk-extension ] CRLF
type = token chunk-data CRLF
subtype = token chunk-size = 1*HEX
last-chunk = 1*("0") [ chunk-extension ] CRLF
product = token ["/" product-version] chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
product-version = token chunk-ext-name = token
chunk-ext-val = token | quoted-string
qvalue = ( "0" [ "." 0*3DIGIT ] ) chunk-data = 1*OCTET ; a sequence of chunk-size octets
| ( "1" [ "." 0*3("0") ] )
language-tag = primary-tag *( "-" subtag ) trailer-part = *(entity-header CRLF)
primary-tag = 1*8ALPHA
subtag = 1*8ALPHA
entity-tag = [ weak ] opaque-tag media-type = type "/" subtype *( ";" parameter )
weak = "W/" type = token
opaque-tag = quoted-string subtype = token
range-unit = bytes-unit | other-range-unit product = token ["/" product-version]
bytes-unit = "bytes" product-version = token
other-range-unit = token
HTTP-message = Request | Response ; HTTP/1.1 messages qvalue = ( "0" [ "." 0*3DIGIT ] )
| ( "1" [ "." 0*3("0") ] )
generic-message = start-line language-tag = primary-tag *( "-" subtag )
*(message-header CRLF) primary-tag = 1*8ALPHA
CRLF subtag = 1*8ALPHA
[ message-body ]
start-line = Request-Line | Status-Line
message-header = field-name ":" [ field-value ] Language-Tag = <defined in [RFC4646], Section 2.1>
field-name = token
field-value = *( field-content | LWS )
field-content = <the OCTETs making up the field-value
and consisting of either *TEXT or combinations
of token, separators, and quoted-string>
message-body = entity-body entity-tag = [ weak ] opaque-tag
| <entity-body encoded as per Transfer-Encoding> weak = "W/"
opaque-tag = quoted-string
general-header = Cache-Control ; Section 14.9 range-unit = bytes-unit | other-range-unit
| Connection ; Section 14.10 bytes-unit = "bytes"
| Date ; Section 14.18 other-range-unit = token
| Pragma ; Section 14.32
| Trailer ; Section 14.40
| Transfer-Encoding ; Section 14.41
| Upgrade ; Section 14.42
| Via ; Section 14.45
| Warning ; Section 14.46
Request = Request-Line ; Section 5.1 HTTP-message = Request | Response ; HTTP/1.1 messages
*(( general-header ; Section 4.5
| request-header ; Section 5.3
| entity-header ) CRLF) ; Section 7.1
CRLF
[ message-body ] ; Section 4.3
Request-Line = Method SP Request-URI SP HTTP-Version CRLF generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
start-line = Request-Line | Status-Line
Method = "OPTIONS" ; Section 9.2 message-header = field-name ":" [ field-value ]
| "GET" ; Section 9.3 field-name = token
| "HEAD" ; Section 9.4 field-value = *( field-content | LWS )
| "POST" ; Section 9.5 field-content = <field content>
| "PUT" ; Section 9.6 ; the OCTETs making up the field-value
| "DELETE" ; Section 9.7 ; and consisting of either *TEXT or combinations
| "TRACE" ; Section 9.8 ; of token, separators, and quoted-string
| "CONNECT" ; Section 9.9
| extension-method
extension-method = token
Request-URI = "*" | absoluteURI | abs_path | authority message-body = entity-body
| <entity-body encoded as per Transfer-Encoding>
request-header = Accept ; Section 14.1 general-header = Cache-Control ; Section 14.9
| Accept-Charset ; Section 14.2 | Connection ; Section 14.10
| Accept-Encoding ; Section 14.3 | Date ; Section 14.18
| Accept-Language ; Section 14.4 | Pragma ; Section 14.32
| Authorization ; Section 14.8 | Trailer ; Section 14.40
| Expect ; Section 14.20 | Transfer-Encoding ; Section 14.41
| From ; Section 14.22 | Upgrade ; Section 14.42
| Host ; Section 14.23 | Via ; Section 14.45
| If-Match ; Section 14.24 | Warning ; Section 14.46
| If-Modified-Since ; 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.35
| Referer ; Section 14.36
| TE ; Section 14.39
| User-Agent ; Section 14.43
Response = Status-Line ; Section 6.1 Request = Request-Line ; Section 5.1
*(( general-header ; Section 4.5 *(( general-header ; Section 4.5
| response-header ; Section 6.2 | request-header ; Section 5.3
| entity-header ) CRLF) ; Section 7.1 | entity-header ) CRLF) ; Section 7.1
CRLF CRLF
[ message-body ] ; Section 7.2 [ message-body ] ; Section 4.3
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Status-Code = Method = "OPTIONS" ; Section 9.2
"100" ; Section 10.1.1: Continue | "GET" ; Section 9.3
| "101" ; Section 10.1.2: Switching Protocols | "HEAD" ; Section 9.4
| "200" ; Section 10.2.1: OK | "POST" ; Section 9.5
| "201" ; Section 10.2.2: Created | "PUT" ; Section 9.6
| "202" ; Section 10.2.3: Accepted | "DELETE" ; Section 9.7
| "203" ; Section 10.2.4: Non-Authoritative Information | "TRACE" ; Section 9.8
| "204" ; Section 10.2.5: No Content | "CONNECT" ; Section 9.9
| "205" ; Section 10.2.6: Reset Content | extension-method
| "206" ; Section 10.2.7: Partial Content extension-method = token
| "300" ; Section 10.3.1: Multiple Choices
| "301" ; Section 10.3.2: Moved Permanently
| "302" ; Section 10.3.3: Found
| "303" ; Section 10.3.4: See Other
| "304" ; Section 10.3.5: Not Modified
| "305" ; Section 10.3.6: Use Proxy
| "307" ; Section 10.3.8: Temporary Redirect
| "400" ; Section 10.4.1: Bad Request
| "401" ; Section 10.4.2: Unauthorized
| "402" ; Section 10.4.3: Payment Required
| "403" ; Section 10.4.4: Forbidden
| "404" ; Section 10.4.5: Not Found
| "405" ; Section 10.4.6: Method Not Allowed
| "406" ; Section 10.4.7: Not Acceptable
| "407" ; Section 10.4.8: Proxy Authentication Required
| "408" ; Section 10.4.9: Request Time-out
| "409" ; Section 10.4.10: Conflict
| "410" ; Section 10.4.11: Gone
| "411" ; Section 10.4.12: Length Required
| "412" ; Section 10.4.13: Precondition Failed
| "413" ; Section 10.4.14: Request Entity Too Large
| "414" ; Section 10.4.15: Request-URI Too Large
| "415" ; Section 10.4.16: Unsupported Media Type
| "416" ; Section 10.4.17: Requested range not satisfiable
| "417" ; Section 10.4.18: Expectation Failed
| "500" ; Section 10.5.1: Internal Server Error
| "501" ; Section 10.5.2: Not Implemented
| "502" ; Section 10.5.3: Bad Gateway
| "503" ; Section 10.5.4: Service Unavailable
| "504" ; Section 10.5.5: Gateway Time-out
| "505" ; Section 10.5.6: HTTP Version not supported
| extension-code
extension-code = 3DIGIT Request-URI = "*"
Reason-Phrase = *<TEXT, excluding CR, LF> | absoluteURI
| path-absolute [ "?" query ]
| authority
response-header = Accept-Ranges ; Section 14.5 request-header = Accept ; Section 14.1
| Age ; Section 14.6 | Accept-Charset ; Section 14.2
| ETag ; Section 14.19 | Accept-Encoding ; Section 14.3
| Location ; Section 14.30 | Accept-Language ; Section 14.4
| Proxy-Authenticate ; Section 14.33 | Authorization ; Section 14.8
| Retry-After ; Section 14.37 | Expect ; Section 14.20
| Server ; Section 14.38 | From ; Section 14.22
| Vary ; Section 14.44 | Host ; Section 14.23
| WWW-Authenticate ; Section 14.47 | If-Match ; Section 14.24
| If-Modified-Since ; 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.35
| Referer ; Section 14.36
| TE ; Section 14.39
| User-Agent ; Section 14.43
entity-header = Allow ; Section 14.7 Response = Status-Line ; Section 6.1
| Content-Encoding ; Section 14.11 *(( general-header ; Section 4.5
| Content-Language ; Section 14.12 | response-header ; Section 6.2
| Content-Length ; Section 14.13 | entity-header ) CRLF) ; Section 7.1
| Content-Location ; Section 14.14 CRLF
| Content-MD5 ; Section 14.15 [ message-body ] ; Section 7.2
| Content-Range ; Section 14.16
| Content-Type ; Section 14.17
| Expires ; Section 14.21
| Last-Modified ; Section 14.29
| extension-header
extension-header = message-header Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
entity-body = *OCTET Status-Code =
"100" ; Section 10.1.1: Continue
| "101" ; Section 10.1.2: Switching Protocols
| "200" ; Section 10.2.1: OK
| "201" ; Section 10.2.2: Created
| "202" ; Section 10.2.3: Accepted
| "203" ; Section 10.2.4: Non-Authoritative Information
| "204" ; Section 10.2.5: No Content
| "205" ; Section 10.2.6: Reset Content
| "206" ; Section 10.2.7: Partial Content
| "300" ; Section 10.3.1: Multiple Choices
| "301" ; Section 10.3.2: Moved Permanently
| "302" ; Section 10.3.3: Found
| "303" ; Section 10.3.4: See Other
| "304" ; Section 10.3.5: Not Modified
| "305" ; Section 10.3.6: Use Proxy
| "307" ; Section 10.3.8: Temporary Redirect
| "400" ; Section 10.4.1: Bad Request
| "401" ; Section 10.4.2: Unauthorized
| "402" ; Section 10.4.3: Payment Required
| "403" ; Section 10.4.4: Forbidden
| "404" ; Section 10.4.5: Not Found
| "405" ; Section 10.4.6: Method Not Allowed
| "406" ; Section 10.4.7: Not Acceptable
| "407" ; Section 10.4.8: Proxy Authentication Required
| "408" ; Section 10.4.9: Request Time-out
| "409" ; Section 10.4.10: Conflict
| "410" ; Section 10.4.11: Gone
| "411" ; Section 10.4.12: Length Required
| "412" ; Section 10.4.13: Precondition Failed
| "413" ; Section 10.4.14: Request Entity Too Large
| "414" ; Section 10.4.15: Request-URI Too Large
| "415" ; Section 10.4.16: Unsupported Media Type
| "416" ; Section 10.4.17: Requested range not satisfiable
| "417" ; Section 10.4.18: Expectation Failed
| "500" ; Section 10.5.1: Internal Server Error
| "501" ; Section 10.5.2: Not Implemented
| "502" ; Section 10.5.3: Bad Gateway
| "503" ; Section 10.5.4: Service Unavailable
| "504" ; Section 10.5.5: Gateway Time-out
| "505" ; Section 10.5.6: HTTP Version not supported
| extension-code
Accept = "Accept" ":" extension-code = 3DIGIT
#( media-range [ accept-params ] ) Reason-Phrase = *( HT | %x20-7E | %x80-FF )
media-range = ( "*/*" response-header = Accept-Ranges ; Section 14.5
| ( type "/" "*" ) | Age ; Section 14.6
| ( type "/" subtype ) | ETag ; Section 14.19
) *( ";" parameter ) | Location ; Section 14.30
accept-params = ";" "q" "=" qvalue *( accept-extension ) | Proxy-Authenticate ; Section 14.33
accept-extension = ";" token [ "=" ( token | quoted-string ) ] | Retry-After ; Section 14.37
| Server ; Section 14.38
| Vary ; Section 14.44
| WWW-Authenticate ; Section 14.47
Accept-Charset = "Accept-Charset" ":" entity-header = Allow ; Section 14.7
1#( ( charset | "*" )[ ";" "q" "=" qvalue ] ) | Content-Encoding ; Section 14.11
| Content-Language ; Section 14.12
| Content-Length ; Section 14.13
| Content-Location ; Section 14.14
| Content-MD5 ; Section 14.15
| Content-Range ; Section 14.16
| Content-Type ; Section 14.17
| Expires ; Section 14.21
| Last-Modified ; Section 14.29
| extension-header
Accept-Encoding = "Accept-Encoding" ":" extension-header = message-header
1#( codings [ ";" "q" "=" qvalue ] )
codings = ( content-coding | "*" )
Accept-Language = "Accept-Language" ":" entity-body = *OCTET
1#( language-range [ ";" "q" "=" qvalue ] )
language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges Accept = "Accept" ":"
acceptable-ranges = 1#range-unit | "none" #( media-range [ accept-params ] )
Age = "Age" ":" age-value media-range = ( "*/*"
age-value = delta-seconds | ( type "/" "*" )
| ( type "/" subtype )
) *( ";" parameter )
accept-params = ";" "q" "=" qvalue *( accept-extension )
accept-extension = ";" token [ "=" ( token | quoted-string ) ]
Allow = "Allow" ":" #Method Accept-Charset = "Accept-Charset" ":"
1#( ( charset | "*" ) [ ";" "q" "=" qvalue ] )
Authorization = "Authorization" ":" credentials Accept-Encoding = "Accept-Encoding" ":"
#( codings [ ";" "q" "=" qvalue ] )
codings = ( content-coding | "*" )
Cache-Control = "Cache-Control" ":" 1#cache-directive Accept-Language = "Accept-Language" ":"
1#( language-range [ ";" "q" "=" qvalue ] )
language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
cache-directive = cache-request-directive Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges
| cache-response-directive acceptable-ranges = 1#range-unit | "none"
cache-request-directive = Age = "Age" ":" age-value
"no-cache" ; Section 14.9.1 age-value = delta-seconds
| "no-store" ; Section 14.9.2
| "max-age" "=" delta-seconds ; Section 14.9.3, 14.9.4
| "max-stale" [ "=" delta-seconds ] ; Section 14.9.3
| "min-fresh" "=" delta-seconds ; Section 14.9.3
| "no-transform" ; Section 14.9.5
| "only-if-cached" ; Section 14.9.4
| cache-extension ; Section 14.9.6
cache-response-directive = Allow = "Allow" ":" #Method
"public" ; Section 14.9.1
| "private" [ "=" <"> 1#field-name <"> ] ; Section 14.9.1
| "no-cache" [ "=" <"> 1#field-name <"> ]; Section 14.9.1
| "no-store" ; Section 14.9.2
| "no-transform" ; Section 14.9.5
| "must-revalidate" ; Section 14.9.4
| "proxy-revalidate" ; Section 14.9.4
| "max-age" "=" delta-seconds ; Section 14.9.3
| "s-maxage" "=" delta-seconds ; Section 14.9.3
| cache-extension ; Section 14.9.6
cache-extension = token [ "=" ( token | quoted-string ) ] Authorization = "Authorization" ":" credentials
Connection = "Connection" ":" 1#(connection-token) Cache-Control = "Cache-Control" ":" 1#cache-directive
connection-token = token
Content-Encoding = "Content-Encoding" ":" 1#content-coding cache-directive = cache-request-directive
| cache-response-directive
Content-Language = "Content-Language" ":" 1#language-tag cache-request-directive =
"no-cache" ; Section 14.9.1
| "no-store" ; Section 14.9.2
| "max-age" "=" delta-seconds ; Section 14.9.3, 14.9.4
| "max-stale" [ "=" delta-seconds ] ; Section 14.9.3
| "min-fresh" "=" delta-seconds ; Section 14.9.3
| "no-transform" ; Section 14.9.5
| "only-if-cached" ; Section 14.9.4
| cache-extension ; Section 14.9.6
Content-Length = "Content-Length" ":" 1*DIGIT cache-response-directive =
"public" ; Section 14.9.1
| "private" [ "=" DQUOTE 1#field-name DQUOTE ]
; Section 14.9.1
| "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ]
; Section 14.9.1
| "no-store" ; Section 14.9.2
| "no-transform" ; Section 14.9.5
| "must-revalidate" ; Section 14.9.4
| "proxy-revalidate" ; Section 14.9.4
| "max-age" "=" delta-seconds ; Section 14.9.3
| "s-maxage" "=" delta-seconds ; Section 14.9.3
| cache-extension ; Section 14.9.6
Content-Location = "Content-Location" ":" cache-extension = token [ "=" ( token | quoted-string ) ]
( absoluteURI | relativeURI )
Content-MD5 = "Content-MD5" ":" md5-digest Connection = "Connection" ":" 1#(connection-token)
md5-digest = <base64 of 128 bit MD5 digest as per RFC 1864> connection-token = token
Content-Range = "Content-Range" ":" content-range-spec Content-Encoding = "Content-Encoding" ":" 1#content-coding
content-range-spec = byte-content-range-spec Content-Language = "Content-Language" ":" 1#Language-Tag
byte-content-range-spec = bytes-unit SP
byte-range-resp-spec "/"
( instance-length | "*" )
byte-range-resp-spec = (first-byte-pos "-" last-byte-pos) Content-Length = "Content-Length" ":" 1*DIGIT
| "*"
instance-length = 1*DIGIT
Content-Type = "Content-Type" ":" media-type Content-Location = "Content-Location" ":"
( absoluteURI | relativeURI )
Date = "Date" ":" HTTP-date Content-MD5 = "Content-MD5" ":" md5-digest
md5-digest = <base64 of 128 bit MD5 digest as per [RFC1864]>
ETag = "ETag" ":" entity-tag Content-Range = "Content-Range" ":" content-range-spec
Expect = "Expect" ":" 1#expectation content-range-spec = byte-content-range-spec
byte-content-range-spec = bytes-unit SP
byte-range-resp-spec "/"
( instance-length | "*" )
expectation = "100-continue" | expectation-extension byte-range-resp-spec = (first-byte-pos "-" last-byte-pos)
expectation-extension = token [ "=" ( token | quoted-string ) | "*"
*expect-params ] instance-length = 1*DIGIT
expect-params = ";" token [ "=" ( token | quoted-string ) ]
Expires = "Expires" ":" HTTP-date Content-Type = "Content-Type" ":" media-type
From = "From" ":" mailbox Date = "Date" ":" HTTP-date
Host = "Host" ":" host [ ":" port ] ; Section 3.2.2 ETag = "ETag" ":" entity-tag
If-Match = "If-Match" ":" ( "*" | 1#entity-tag ) Expect = "Expect" ":" 1#expectation
If-Modified-Since = "If-Modified-Since" ":" HTTP-date expectation = "100-continue" | expectation-extension
expectation-extension = token [ "=" ( token | quoted-string )
*expect-params ]
expect-params = ";" token [ "=" ( token | quoted-string ) ]
If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag ) Expires = "Expires" ":" HTTP-date
If-Range = "If-Range" ":" ( entity-tag | HTTP-date ) From = "From" ":" mailbox
If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date Host = "Host" ":" uri-host [ ":" port ] ; Section 3.2.2
Last-Modified = "Last-Modified" ":" HTTP-date If-Match = "If-Match" ":" ( "*" | 1#entity-tag )
Location = "Location" ":" absoluteURI If-Modified-Since = "If-Modified-Since" ":" HTTP-date
Max-Forwards = "Max-Forwards" ":" 1*DIGIT If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )
Pragma = "Pragma" ":" 1#pragma-directive If-Range = "If-Range" ":" ( entity-tag | HTTP-date )
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token [ "=" ( token | quoted-string ) ]
Proxy-Authenticate = "Proxy-Authenticate" ":" 1#challenge If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date
Proxy-Authorization = "Proxy-Authorization" ":" credentials Last-Modified = "Last-Modified" ":" HTTP-date
ranges-specifier = byte-ranges-specifier Location = "Location" ":" absoluteURI [ "#" fragment ]
byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
byte-range-spec = first-byte-pos "-" [last-byte-pos]
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
suffix-byte-range-spec = "-" suffix-length Max-Forwards = "Max-Forwards" ":" 1*DIGIT
suffix-length = 1*DIGIT
Range = "Range" ":" ranges-specifier Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token [ "=" ( token | quoted-string ) ]
Referer = "Referer" ":" ( absoluteURI | relativeURI ) Proxy-Authenticate = "Proxy-Authenticate" ":" 1#challenge
Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds ) Proxy-Authorization = "Proxy-Authorization" ":" credentials
Server = "Server" ":" 1*( product | comment ) ranges-specifier = byte-ranges-specifier
byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
byte-range-spec = first-byte-pos "-" [last-byte-pos]
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
TE = "TE" ":" #( t-codings ) suffix-byte-range-spec = "-" suffix-length
t-codings = "trailers" | ( transfer-extension [ accept-params ] ) suffix-length = 1*DIGIT
Trailer = "Trailer" ":" 1#field-name Range = "Range" ":" ranges-specifier
Referer = "Referer" ":" ( absoluteURI | relativeURI )
Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds )
Server = "Server" ":" 1*( product | comment )
TE = "TE" ":" #( t-codings )
t-codings = "trailers" | ( transfer-extension [ accept-params ] )
Trailer = "Trailer" ":" 1#field-name
Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding
Upgrade = "Upgrade" ":" 1#product Upgrade = "Upgrade" ":" 1#product
User-Agent = "User-Agent" ":" 1*( product | comment ) User-Agent = "User-Agent" ":" 1*( product | comment )
Vary = "Vary" ":" ( "*" | 1#field-name ) Vary = "Vary" ":" ( "*" | 1#field-name )
Via = "Via" ":" 1#( received-protocol received-by [ comment ] ) Via = "Via" ":" 1#( received-protocol received-by [ comment ] )
received-protocol = [ protocol-name "/" ] protocol-version received-protocol = [ protocol-name "/" ] protocol-version
protocol-name = token protocol-name = token
protocol-version = token protocol-version = token
received-by = ( host [ ":" port ] ) | pseudonym received-by = ( uri-host [ ":" port ] ) | pseudonym
pseudonym = token pseudonym = token
Warning = "Warning" ":" 1#warning-value Warning = "Warning" ":" 1#warning-value
warning-value = warn-code SP warn-agent SP warn-text warning-value = warn-code SP warn-agent SP warn-text
[SP warn-date] [SP warn-date]
warn-code = 3DIGIT warn-code = 3DIGIT
warn-agent = ( host [ ":" port ] ) | pseudonym warn-agent = ( uri-host [ ":" port ] ) | pseudonym
; the name or pseudonym of the server adding ; the name or pseudonym of the server adding
; the Warning header, for use in debugging ; the Warning header, for use in debugging
warn-text = quoted-string warn-text = quoted-string
warn-date = <"> HTTP-date <"> warn-date = DQUOTE HTTP-date DQUOTE
WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge
MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
content-disposition = "Content-Disposition" ":" content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm ) disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension-parm disposition-parm = filename-parm | disp-extension-parm
filename-parm = "filename" "=" quoted-string filename-parm = "filename" "=" quoted-string
disp-extension-token = token disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string ) disp-extension-parm = token "=" ( token | quoted-string )
 End of changes. 104 change blocks. 
342 lines changed or deleted 368 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/