Changeset 229
- Timestamp:
- 02/03/08 17:21:57 (14 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r228 r229 930 930 </dl> 931 931 <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> <a id="basic.rules" href="#basic.rules">Basic Rules</a></h2> 932 <p id="rfc.section.2.2.p.1">The following rules are used throughout this specification to describe basic parsing constructs. The US-ASCII coded character 933 set is defined by ANSI X3.4-1986 <a href="#USASCII" id="rfc.xref.USASCII.1"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. 934 </p> 935 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span> OCTET = %x00-FF 932 <div id="core.rules"> 933 <p id="rfc.section.2.2.p.1"> The following rules are used throughout this specification to describe basic parsing constructs. The US-ASCII coded character 934 set is defined by ANSI X3.4-1986 <a href="#USASCII" id="rfc.xref.USASCII.1"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. 935 </p> 936 </div> 937 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span> <a href="#core.rules" class="smpl">OCTET</a> = %x00-FF 936 938 ; any 8-bit sequence of data 937 CHAR= %x01-7F939 <a href="#core.rules" class="smpl">CHAR</a> = %x01-7F 938 940 ; any US-ASCII character, excluding NUL 939 ALPHA= %x41-5A | %x61-7A941 <a href="#core.rules" class="smpl">ALPHA</a> = %x41-5A | %x61-7A 940 942 ; A-Z | a-z 941 DIGIT= %x30-39943 <a href="#core.rules" class="smpl">DIGIT</a> = %x30-39 942 944 ; any US-ASCII digit "0".."9" 943 CTL= %x00-1F | %x7F945 <a href="#core.rules" class="smpl">CTL</a> = %x00-1F | %x7F 944 946 ; (octets 0 - 31) and DEL (127) 945 CR= %x0D947 <a href="#core.rules" class="smpl">CR</a> = %x0D 946 948 ; US-ASCII CR, carriage return (13) 947 LF= %x0A949 <a href="#core.rules" class="smpl">LF</a> = %x0A 948 950 ; US-ASCII LF, linefeed (10) 949 SP= %x20951 <a href="#core.rules" class="smpl">SP</a> = %x20 950 952 ; US-ASCII SP, space (32) 951 HTAB= %x09953 <a href="#core.rules" class="smpl">HTAB</a> = %x09 952 954 ; US-ASCII HT, horizontal-tab (9) 953 DQUOTE= %x22955 <a href="#core.rules" class="smpl">DQUOTE</a> = %x22 954 956 ; US-ASCII double-quote mark (34) 955 </pre><p id="rfc.section.2.2.p.3">HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body (see <a href="#tolerant.applications" title="Tolerant Applications">Appendix B</a> for tolerant applications). The end-of-line marker within an entity-body is defined by its associated media type, as described 956 in <a href="p3-payload.html#media.types" title="Media Types">Section 3.3</a> of <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 957 </p> 958 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.12"></span> CRLF = CR LF 959 </pre><p id="rfc.section.2.2.p.5">HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal 960 tab. All linear white space, including folding, has the same semantics as SP. A recipient <em class="bcp14">MAY</em> replace any linear white space with a single SP before interpreting the field value or forwarding the message downstream. 961 </p> 962 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.13"></span> LWS = [CRLF] 1*( SP | HTAB ) 963 </pre><p id="rfc.section.2.2.p.7">The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message 964 parser. Words of *TEXT <em class="bcp14">MAY</em> contain characters from character sets other than ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> only when encoded according to the rules of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a>. 965 </p> 966 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.14"></span> TEXT = %x20-7E | %x80-FF | LWS 967 ; any OCTET except CTLs, but including LWS 957 </pre><div id="rule.CRLF"> 958 <p id="rfc.section.2.2.p.3"> HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body (see <a href="#tolerant.applications" title="Tolerant Applications">Appendix B</a> for tolerant applications). The end-of-line marker within an entity-body is defined by its associated media type, as described 959 in <a href="p3-payload.html#media.types" title="Media Types">Section 3.3</a> of <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 960 </p> 961 </div> 962 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.12"></span> <a href="#rule.CRLF" class="smpl">CRLF</a> = <a href="#core.rules" class="smpl">CR</a> LF 963 </pre><div id="rule.LWS"> 964 <p id="rfc.section.2.2.p.5"> HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal 965 tab. All linear white space, including folding, has the same semantics as SP. A recipient <em class="bcp14">MAY</em> replace any linear white space with a single SP before interpreting the field value or forwarding the message downstream. 966 </p> 967 </div> 968 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.13"></span> <a href="#rule.LWS" class="smpl">LWS</a> = [<a href="#rule.CRLF" class="smpl">CRLF</a>] 1*( <a href="#core.rules" class="smpl">SP</a> | <a href="#core.rules" class="smpl">HTAB</a> ) 969 </pre><div id="rule.TEXT"> 970 <p id="rfc.section.2.2.p.7"> The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message 971 parser. Words of *TEXT <em class="bcp14">MAY</em> contain characters from character sets other than ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> only when encoded according to the rules of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a>. 972 </p> 973 </div> 974 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.14"></span> <a href="#rule.TEXT" class="smpl">TEXT</a> = %x20-7E | %x80-FF | <a href="#rule.LWS" class="smpl">LWS</a> 975 ; any <a href="#core.rules" class="smpl">OCTET</a> except <a href="#core.rules" class="smpl">CTL</a>s, but including <a href="#rule.LWS" class="smpl">LWS</a> 968 976 </pre><p id="rfc.section.2.2.p.9">A CRLF is allowed in the definition of TEXT only as part of a header field continuation. It is expected that the folding LWS 969 977 will be replaced with a single SP before interpretation of the TEXT value. 970 978 </p> 971 <p id="rfc.section.2.2.p.10">Hexadecimal numeric characters are used in several protocol elements.</p> 972 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.15"></span> HEX = "A" | "B" | "C" | "D" | "E" | "F" 973 | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT 974 </pre><p id="rfc.section.2.2.p.12">Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 975 </p> 976 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span> separators = "(" | ")" | "<" | ">" | "@" 977 | "," | ";" | ":" | "\" | DQUOTE 979 <div id="rule.HEX"> 980 <p id="rfc.section.2.2.p.10"> Hexadecimal numeric characters are used in several protocol elements.</p> 981 </div> 982 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.15"></span> <a href="#rule.HEX" class="smpl">HEX</a> = "A" | "B" | "C" | "D" | "E" | "F" 983 | "a" | "b" | "c" | "d" | "e" | "f" | <a href="#core.rules" class="smpl">DIGIT</a> 984 </pre><div id="rule.token.separators"> 985 <p id="rfc.section.2.2.p.12"> Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 986 </p> 987 </div> 988 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span> <a href="#rule.token.separators" class="smpl">separators</a> = "(" | ")" | "<" | ">" | "@" 989 | "," | ";" | ":" | "\" | <a href="#core.rules" class="smpl">DQUOTE</a> 978 990 | "/" | "[" | "]" | "?" | "=" 979 | "{" | "}" | SP | HTAB991 | "{" | "}" | <a href="#core.rules" class="smpl">SP</a> | <a href="#core.rules" class="smpl">HTAB</a> 980 992 981 tchar= "!" | "#" | "$" | "%" | "&" | "'" | "*"993 <a href="#rule.token.separators" class="smpl">tchar</a> = "!" | "#" | "$" | "%" | "&" | "'" | "*" 982 994 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~" 983 | DIGIT | ALPHA984 ; any CHAR except CTLs or separators995 | <a href="#core.rules" class="smpl">DIGIT</a> | <a href="#core.rules" class="smpl">ALPHA</a> 996 ; any <a href="#core.rules" class="smpl">CHAR</a> except <a href="#core.rules" class="smpl">CTL</a>s or <a href="#rule.token.separators" class="smpl">separators</a> 985 997 986 token = 1*tchar 987 </pre><p id="rfc.section.2.2.p.14">Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 988 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 989 of the field value. 990 </p> 991 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span> comment = "(" *( ctext | quoted-pair | comment ) ")" 992 ctext = <any TEXT excluding "(" and ")"> 993 </pre><p id="rfc.section.2.2.p.16">A string of text is parsed as a single word if it is quoted using double-quote marks.</p> 994 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.21"></span><span id="rfc.iref.g.22"></span> quoted-string = ( DQUOTE *(qdtext | quoted-pair ) DQUOTE ) 995 qdtext = <any TEXT excluding DQUOTE and "\"> 996 </pre><p id="rfc.section.2.2.p.18">The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs. 997 </p> 998 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.23"></span> quoted-pair = "\" CHAR 998 <a href="#rule.token.separators" class="smpl">token</a> = 1*<a href="#rule.token.separators" class="smpl">tchar</a> 999 </pre><div id="rule.comment"> 1000 <p id="rfc.section.2.2.p.14"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 1001 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 1002 of the field value. 1003 </p> 1004 </div> 1005 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span> <a href="#rule.comment" class="smpl">comment</a> = "(" *( <a href="#rule.comment" class="smpl">ctext</a> | <a href="#rule.quoted-pair" class="smpl">quoted-pair</a> | <a href="#rule.comment" class="smpl">comment</a> ) ")" 1006 <a href="#rule.comment" class="smpl">ctext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding "(" and ")"> 1007 </pre><div id="rule.quoted-string"> 1008 <p id="rfc.section.2.2.p.16"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p> 1009 </div> 1010 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.21"></span><span id="rfc.iref.g.22"></span> <a href="#rule.quoted-string" class="smpl">quoted-string</a> = ( <a href="#core.rules" class="smpl">DQUOTE</a> *(<a href="#rule.quoted-string" class="smpl">qdtext</a> | <a href="#rule.quoted-pair" class="smpl">quoted-pair</a> ) <a href="#core.rules" class="smpl">DQUOTE</a> ) 1011 <a href="#rule.quoted-string" class="smpl">qdtext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding <a href="#core.rules" class="smpl">DQUOTE</a> and "\"> 1012 </pre><div id="rule.quoted-pair"> 1013 <p id="rfc.section.2.2.p.18"> The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs. 1014 </p> 1015 </div> 1016 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.23"></span> <a href="#rule.quoted-pair" class="smpl">quoted-pair</a> = "\" <a href="#core.rules" class="smpl">CHAR</a> 999 1017 </pre><h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> <a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h2> 1000 1018 <p id="rfc.section.2.3.p.1">The ABNF rules below are defined in other parts:</p> 1001 <div id="rfc.figure.u.13"></div><pre class="inline"> request-header =<request-header, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a>>1002 response-header= <response-header, defined in <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a>>1003 </pre><div id="rfc.figure.u.14"></div><pre class="inline"> accept-params= <accept-params, defined in <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>>1004 entity-body= <entity-body, defined in <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.body" title="Entity Body">Section 4.2</a>>1005 entity-header= <entity-header, defined in <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>>1006 </pre><div id="rfc.figure.u.15"></div><pre class="inline"> Cache-Control= <Cache-Control, defined in <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>>1007 Pragma= <Pragma, defined in <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>>1008 Warning= <Warning, defined in <a href="#Part6" id="rfc.xref.Part6.5"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>>1019 <div id="rfc.figure.u.13"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">request-header</a> = <request-header, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a>> 1020 <a href="#abnf.dependencies" class="smpl">response-header</a> = <response-header, defined in <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a>> 1021 </pre><div id="rfc.figure.u.14"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">accept-params</a> = <accept-params, defined in <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>> 1022 <a href="#abnf.dependencies" class="smpl">entity-body</a> = <entity-body, defined in <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.body" title="Entity Body">Section 4.2</a>> 1023 <a href="#abnf.dependencies" class="smpl">entity-header</a> = <entity-header, defined in <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>> 1024 </pre><div id="rfc.figure.u.15"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, defined in <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>> 1025 <a href="#abnf.dependencies" class="smpl">Pragma</a> = <Pragma, defined in <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>> 1026 <a href="#abnf.dependencies" class="smpl">Warning</a> = <Warning, defined in <a href="#Part6" id="rfc.xref.Part6.5"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>> 1009 1027 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 1010 1028 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="http.version" href="#http.version">HTTP Version</a></h2> … … 1018 1036 </p> 1019 1037 <p id="rfc.section.3.1.p.2">The version of an HTTP message is indicated by an HTTP-Version field in the first line of the message. HTTP-Version is case-sensitive.</p> 1020 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.24"></span> HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT1038 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.24"></span> <a href="#http.version" class="smpl">HTTP-Version</a> = "HTTP" "/" 1*<a href="#core.rules" class="smpl">DIGIT</a> "." 1*<a href="#core.rules" class="smpl">DIGIT</a> 1021 1039 </pre><p id="rfc.section.3.1.p.4">Note that the major and minor numbers <em class="bcp14">MUST</em> be treated as separate integers and that each <em class="bcp14">MAY</em> be incremented higher than a single digit. Thus, HTTP/2.4 is a lower version than HTTP/2.13, which in turn is lower than HTTP/12.3. 1022 1040 Leading zeros <em class="bcp14">MUST</em> be ignored by recipients and <em class="bcp14">MUST NOT</em> be sent. … … 1048 1066 "abs_path", "query", and "authority" from that specification: 1049 1067 </p> 1050 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.25"></span><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span><span id="rfc.iref.g.31"></span> absoluteURI= <absoluteURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.2"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>>1051 authority= <authority, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.3"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2">Section 3.2</a>>1052 fragment= <fragment, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.4"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-4.1">Section 4.1</a>>1053 path-absolute= <abs_path, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.5"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>>1054 port= <port, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.6"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2.2">Section 3.2.2</a>>1055 query= <query, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.7"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.4">Section 3.4</a>>1056 relativeURI= <relativeURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.8"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-5">Section 5</a>>1057 uri-host= <host, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.9"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2.2">Section 3.2.2</a>>1068 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.25"></span><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span><span id="rfc.iref.g.31"></span> <a href="#general.syntax" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.2"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>> 1069 <a href="#general.syntax" class="smpl">authority</a> = <authority, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.3"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2">Section 3.2</a>> 1070 <a href="#general.syntax" class="smpl">fragment</a> = <fragment, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.4"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-4.1">Section 4.1</a>> 1071 <a href="#general.syntax" class="smpl">path-absolute</a> = <abs_path, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.5"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>> 1072 <a href="#general.syntax" class="smpl">port</a> = <port, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.6"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2.2">Section 3.2.2</a>> 1073 <a href="#general.syntax" class="smpl">query</a> = <query, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.7"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.4">Section 3.4</a>> 1074 <a href="#general.syntax" class="smpl">relativeURI</a> = <relativeURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.8"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-5">Section 5</a>> 1075 <a href="#general.syntax" class="smpl">uri-host</a> = <host, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.9"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2.2">Section 3.2.2</a>> 1058 1076 </pre><p id="rfc.section.3.2.1.p.3">HTTP does not place any a priori limit on the length of a URI. Servers <em class="bcp14">MUST</em> be able to handle the URI of any resource they serve, and <em class="bcp14">SHOULD</em> be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server <em class="bcp14">SHOULD</em> return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see <a href="p2-semantics.html#status.414" title="414 Request-URI Too Long">Section 9.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1059 1077 </p> … … 1068 1086 and semantics for http URLs. 1069 1087 </p> 1070 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.32"></span> http-URL = "http:" "//" uri-host [ ":" port]1071 [ path-absolute [ "?" query]]1088 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#http.url" class="smpl">http-URL</a> = "http:" "//" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] 1089 [ <a href="#general.syntax" class="smpl">path-absolute</a> [ "?" <a href="#general.syntax" class="smpl">query</a> ]] 1072 1090 </pre><p id="rfc.section.3.2.2.p.3">If the port is empty or not given, port 80 is assumed. The semantics are that the identified resource is located at the server 1073 1091 listening for TCP connections on that port of that host, and the Request-URI for the resource is path-absolute (<a href="#request-uri" title="Request-URI">Section 5.1.2</a>). The use of IP addresses in URLs <em class="bcp14">SHOULD</em> be avoided whenever possible (see <a href="#RFC1900" id="rfc.xref.RFC1900.1"><cite title="Renumbering Needs Work">[RFC1900]</cite></a>). If the path-absolute is not present in the URL, it <em class="bcp14">MUST</em> be given as "/" when used as a Request-URI for a resource (<a href="#request-uri" title="Request-URI">Section 5.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name. … … 1108 1126 time zone, and <em class="bcp14">MUST</em> be assumed when reading the asctime format. HTTP-date is case sensitive and <em class="bcp14">MUST NOT</em> include additional LWS beyond that specifically included as SP in the grammar. 1109 1127 </p> 1110 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span><span id="rfc.iref.g.39"></span><span id="rfc.iref.g.40"></span><span id="rfc.iref.g.41"></span><span id="rfc.iref.g.42"></span><span id="rfc.iref.g.43"></span> HTTP-date = rfc1123-date | rfc850-date | asctime-date1111 rfc1123-date = wkday "," SP date1 SP time SP"GMT"1112 rfc850-date = weekday "," SP date2 SP time SP"GMT"1113 asctime-date = wkday SP date3 SP time SP 4DIGIT1114 date1 = 2DIGIT SP month SP 4DIGIT1128 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span><span id="rfc.iref.g.39"></span><span id="rfc.iref.g.40"></span><span id="rfc.iref.g.41"></span><span id="rfc.iref.g.42"></span><span id="rfc.iref.g.43"></span> <a href="#full.date" class="smpl">HTTP-date</a> = <a href="#full.date" class="smpl">rfc1123-date</a> | <a href="#full.date" class="smpl">rfc850-date</a> | <a href="#full.date" class="smpl">asctime-date</a> 1129 <a href="#full.date" class="smpl">rfc1123-date</a> = <a href="#full.date" class="smpl">wkday</a> "," <a href="#core.rules" class="smpl">SP</a> date1 <a href="#core.rules" class="smpl">SP</a> time <a href="#core.rules" class="smpl">SP</a> "GMT" 1130 <a href="#full.date" class="smpl">rfc850-date</a> = <a href="#full.date" class="smpl">weekday</a> "," <a href="#core.rules" class="smpl">SP</a> date2 <a href="#core.rules" class="smpl">SP</a> time <a href="#core.rules" class="smpl">SP</a> "GMT" 1131 <a href="#full.date" class="smpl">asctime-date</a> = <a href="#full.date" class="smpl">wkday</a> <a href="#core.rules" class="smpl">SP</a> <a href="#full.date" class="smpl">date3</a> <a href="#core.rules" class="smpl">SP</a> <a href="#full.date" class="smpl">time</a> <a href="#core.rules" class="smpl">SP</a> 4<a href="#core.rules" class="smpl">DIGIT</a> 1132 <a href="#full.date" class="smpl">date1</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> <a href="#core.rules" class="smpl">SP</a> <a href="#full.date" class="smpl">month</a> <a href="#core.rules" class="smpl">SP</a> 4<a href="#core.rules" class="smpl">DIGIT</a> 1115 1133 ; day month year (e.g., 02 Jun 1982) 1116 date2 = 2DIGIT "-" month "-" 2DIGIT1134 <a href="#full.date" class="smpl">date2</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> "-" <a href="#full.date" class="smpl">month</a> "-" 2<a href="#core.rules" class="smpl">DIGIT</a> 1117 1135 ; day-month-year (e.g., 02-Jun-82) 1118 date3 = month SP ( 2DIGIT | ( SP 1DIGIT))1136 <a href="#full.date" class="smpl">date3</a> = <a href="#full.date" class="smpl">month</a> <a href="#core.rules" class="smpl">SP</a> ( 2<a href="#core.rules" class="smpl">DIGIT</a> | ( <a href="#core.rules" class="smpl">SP</a> 1<a href="#core.rules" class="smpl">DIGIT</a> )) 1119 1137 ; month day (e.g., Jun 2) 1120 time = 2DIGIT ":" 2DIGIT ":" 2DIGIT1138 <a href="#full.date" class="smpl">time</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> ":" 2<a href="#core.rules" class="smpl">DIGIT</a> ":" 2<a href="#core.rules" class="smpl">DIGIT</a> 1121 1139 ; 00:00:00 - 23:59:59 1122 wkday= "Mon" | "Tue" | "Wed"1140 <a href="#full.date" class="smpl">wkday</a> = "Mon" | "Tue" | "Wed" 1123 1141 | "Thu" | "Fri" | "Sat" | "Sun" 1124 weekday= "Monday" | "Tuesday" | "Wednesday"1142 <a href="#full.date" class="smpl">weekday</a> = "Monday" | "Tuesday" | "Wednesday" 1125 1143 | "Thursday" | "Friday" | "Saturday" | "Sunday" 1126 month= "Jan" | "Feb" | "Mar" | "Apr"1144 <a href="#full.date" class="smpl">month</a> = "Jan" | "Feb" | "Mar" | "Apr" 1127 1145 | "May" | "Jun" | "Jul" | "Aug" 1128 1146 | "Sep" | "Oct" | "Nov" | "Dec" … … 1135 1153 is a property of the message, not of the original entity. 1136 1154 </p> 1137 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.44"></span><span id="rfc.iref.g.45"></span> transfer-coding = "chunked" | transfer-extension 1138 transfer-extension = token *( ";" parameter ) 1139 </pre><p id="rfc.section.3.4.p.3">Parameters are in the form of attribute/value pairs.</p> 1140 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span> parameter = attribute "=" value 1141 attribute = token 1142 value = token | quoted-string 1155 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.44"></span><span id="rfc.iref.g.45"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" | <a href="#transfer.codings" class="smpl">transfer-extension</a> 1156 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( ";" <a href="#transfer.codings" class="smpl">parameter</a> ) 1157 </pre><div id="rule.parameter"> 1158 <p id="rfc.section.3.4.p.3"> Parameters are in the form of attribute/value pairs.</p> 1159 </div> 1160 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span> <a href="#transfer.codings" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> "=" <a href="#rule.parameter" class="smpl">value</a> 1161 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1162 <a href="#rule.parameter" class="smpl">value</a> = <a href="#rule.token.separators" class="smpl">token</a> | <a href="#rule.quoted-string" class="smpl">quoted-string</a> 1143 1163 </pre><p id="rfc.section.3.4.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 8.5</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.1" title="Transfer-Encoding">Section 8.7</a>). 1144 1164 </p> … … 1163 1183 necessary for the recipient to verify that it has received the full message. 1164 1184 </p> 1165 <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.49"></span><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span><span id="rfc.iref.g.53"></span><span id="rfc.iref.g.54"></span><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span><span id="rfc.iref.g.57"></span> Chunked-Body = *chunk1166 last-chunk1167 trailer-part1168 CRLF1185 <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.49"></span><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span><span id="rfc.iref.g.53"></span><span id="rfc.iref.g.54"></span><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span><span id="rfc.iref.g.57"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a> 1186 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> 1187 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> 1188 <a href="#rule.CRLF" class="smpl">CRLF</a> 1169 1189 1170 chunk = chunk-size [ chunk-extension ] CRLF1171 chunk-data CRLF1172 chunk-size = 1*HEX1173 last-chunk = 1*("0") [ chunk-extension ] CRLF1190 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="#rule.CRLF" class="smpl">CRLF</a> 1191 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> <a href="#rule.CRLF" class="smpl">CRLF</a> 1192 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*<a href="#rule.HEX" class="smpl">HEX</a> 1193 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="#rule.CRLF" class="smpl">CRLF</a> 1174 1194 1175 chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val] )1176 chunk-ext-name = token1177 chunk-ext-val = token | quoted-string1178 chunk-data = 1*OCTET; a sequence of chunk-size octets1179 trailer-part = *(entity-header CRLF)1195 <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a>= *( ";" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> [ "=" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> ] ) 1196 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1197 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> = <a href="#rule.token.separators" class="smpl">token</a> | <a href="#rule.quoted-string" class="smpl">quoted-string</a> 1198 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> = 1*<a href="#core.rules" class="smpl">OCTET</a> ; a sequence of chunk-size octets 1199 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> = *(<a href="#abnf.dependencies" class="smpl">entity-header</a> <a href="#rule.CRLF" class="smpl">CRLF</a>) 1180 1200 </pre><p id="rfc.section.3.4.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended 1181 1201 by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line. … … 1222 1242 space. By convention, the products are listed in order of their significance for identifying the application. 1223 1243 </p> 1224 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span> product = token ["/" product-version]1225 product-version = token1244 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span> <a href="#product.tokens" class="smpl">product</a> = <a href="#rule.token.separators" class="smpl">token</a> ["/" <a href="#product.tokens" class="smpl">product-version</a>] 1245 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1226 1246 </pre><p id="rfc.section.3.5.p.3">Examples:</p> 1227 1247 <div id="rfc.figure.u.27"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 … … 1232 1252 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="message.types" href="#message.types">Message Types</a></h2> 1233 1253 <p id="rfc.section.4.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1234 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.60"></span> HTTP-message = Request | Response; HTTP/1.1 messages1254 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.60"></span> <a href="#message.types" class="smpl">HTTP-message</a> = <a href="#request" class="smpl">Request</a> | <a href="#response" class="smpl">Response</a> ; HTTP/1.1 messages 1235 1255 </pre><p id="rfc.section.4.1.p.3">Request (<a href="#request" title="Request">Section 5</a>) and Response (<a href="#response" title="Response">Section 6</a>) messages use the generic message format of <a href="#RFC2822" id="rfc.xref.RFC2822.2"><cite title="Internet Message Format">[RFC2822]</cite></a> for transferring entities (the payload of the message). Both types of message consist of a start-line, zero or more header 1236 1256 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1237 1257 fields, and possibly a message-body. 1238 1258 </p> 1239 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span> generic-message = start-line1240 *( message-header CRLF)1241 CRLF1242 [ message-body]1243 start-line = Request-Line | Status-Line1259 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1260 *(<a href="#message.headers" class="smpl">message-header</a> <a href="#rule.CRLF" class="smpl">CRLF</a>) 1261 <a href="#rule.CRLF" class="smpl">CRLF</a> 1262 [ <a href="#message.body" class="smpl">message-body</a> ] 1263 <a href="#message.types" class="smpl">start-line</a> = <a href="#request-line" class="smpl">Request-Line</a> | <a href="#status-line" class="smpl">Status-Line</a> 1244 1264 </pre><p id="rfc.section.4.1.p.5">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore any empty line(s) received where a Request-Line is expected. In other words, if the server is reading the protocol 1245 1265 stream at the beginning of a message and receives a CRLF first, it should ignore the CRLF. … … 1255 1275 forms. 1256 1276 </p> 1257 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span> message-header = field-name ":" [ field-value]1258 field-name = token1259 field-value = *( field-content | LWS)1260 field-content= <field content>1261 ; the OCTETs making up the field-value1262 ; and consisting of either * TEXTor combinations1263 ; of token, separators, and quoted-string1277 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span> <a href="#message.headers" class="smpl">message-header</a> = <a href="#message.headers" class="smpl">field-name</a> ":" [ <a href="#message.headers" class="smpl">field-value</a> ] 1278 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1279 <a href="#message.headers" class="smpl">field-value</a> = *( <a href="#message.headers" class="smpl">field-content</a> | <a href="#rule.LWS" class="smpl">LWS</a> ) 1280 <a href="#message.headers" class="smpl">field-content</a> = <field content> 1281 ; the <a href="#core.rules" class="smpl">OCTET</a>s making up the field-value 1282 ; and consisting of either *<a href="#rule.TEXT" class="smpl">TEXT</a> or combinations 1283 ; of <a href="#rule.token.separators" class="smpl">token</a>, <a href="#rule.token.separators" class="smpl">separators</a>, and <a href="#rule.quoted-string" class="smpl">quoted-string</a> 1264 1284 </pre><p id="rfc.section.4.2.p.3">The field-content does not include any leading or trailing LWS: linear white space occurring before the first non-whitespace 1265 1285 character of the field-value or after the last non-whitespace character of the field-value. Such leading or trailing LWS <em class="bcp14">MAY</em> be removed without changing the semantics of the field value. Any LWS that occurs between field-content <em class="bcp14">MAY</em> be replaced with a single SP before interpreting the field value or forwarding the message downstream. … … 1280 1300 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>). 1281 1301 </p> 1282 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.67"></span> message-body = entity-body1283 | <entity-body encoded as per Transfer-Encoding>1302 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.67"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1303 | <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1284 1304 </pre><p id="rfc.section.4.3.p.3">Transfer-Encoding <em class="bcp14">MUST</em> be used to indicate any transfer-codings applied by an application to ensure safe and proper transfer of the message. Transfer-Encoding 1285 1305 is a property of the message, not of the entity, and thus <em class="bcp14">MAY</em> be added or removed by any application along the request/response chain. (However, <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a> places restrictions on when certain transfer-codings may be used.) … … 1347 1367 to the entity being transferred. These header fields apply only to the message being transmitted. 1348 1368 </p> 1349 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.68"></span> general-header = Cache-Control; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 16.2</a>1350 | Connection; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a>1351 | Date; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a>1352 | Pragma; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>1353 | Trailer; <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 8.6</a>1354 | Transfer-Encoding; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 8.7</a>1355 | Upgrade; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 8.8</a>1356 | Via; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 8.9</a>1357 | Warning; <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>1369 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.68"></span> <a href="#general.header.fields" class="smpl">general-header</a> = <a href="#abnf.dependencies" class="smpl">Cache-Control</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 16.2</a> 1370 | <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1371 | <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a> 1372 | <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a> 1373 | <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 8.6</a> 1374 | <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 8.7</a> 1375 | <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 8.8</a> 1376 | <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 8.9</a> 1377 | <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a> 1358 1378 </pre><p id="rfc.section.4.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new 1359 1379 or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize … … 1364 1384 resource, the identifier of the resource, and the protocol version in use. 1365 1385 </p> 1366 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.69"></span> Request = Request-Line; <a href="#request-line" title="Request-Line">Section 5.1</a>1367 *(( general-header; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a>1368 | request-header; <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a>1369 | entity-header ) CRLF) ; <a href="#Part3" id="rfc.xref.Part3.12"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>1370 CRLF1371 [ message-body] ; <a href="#message.body" title="Message Body">Section 4.3</a>1386 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.69"></span> <a href="#request" class="smpl">Request</a> = <a href="#request-line" class="smpl">Request-Line</a> ; <a href="#request-line" title="Request-Line">Section 5.1</a> 1387 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1388 | <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a> 1389 | <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#rule.CRLF" class="smpl">CRLF</a>) ; <a href="#Part3" id="rfc.xref.Part3.12"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a> 1390 <a href="#rule.CRLF" class="smpl">CRLF</a> 1391 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1372 1392 </pre><h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="request-line" href="#request-line">Request-Line</a></h2> 1373 1393 <p id="rfc.section.5.1.p.1">The Request-Line begins with a method token, followed by the Request-URI and the protocol version, and ending with CRLF. The 1374 1394 elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1375 1395 </p> 1376 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.70"></span> Request-Line = Method SP Request-URI SP HTTP-Version CRLF1396 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.70"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-uri" class="smpl">Request-URI</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#rule.CRLF" class="smpl">CRLF</a> 1377 1397 </pre><h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a> <a id="method" href="#method">Method</a></h3> 1378 1398 <p id="rfc.section.5.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive.</p> 1379 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.71"></span><span id="rfc.iref.g.72"></span> Method = token1399 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.71"></span><span id="rfc.iref.g.72"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1380 1400 </pre><h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a> <a id="request-uri" href="#request-uri">Request-URI</a></h3> 1381 1401 <p id="rfc.section.5.1.2.p.1">The Request-URI is a Uniform Resource Identifier (<a href="#uri" title="Uniform Resource Identifiers">Section 3.2</a>) and identifies the resource upon which to apply the request. 1382 1402 </p> 1383 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.73"></span> Request-URI= "*"1384 | absoluteURI1385 | ( path-absolute [ "?" query] )1386 | authority1403 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.73"></span> <a href="#request-uri" class="smpl">Request-URI</a> = "*" 1404 | <a href="#general.syntax" class="smpl">absoluteURI</a> 1405 | ( <a href="#general.syntax" class="smpl">path-absolute</a> [ "?" <a href="#general.syntax" class="smpl">query</a> ] ) 1406 | <a href="#general.syntax" class="smpl">authority</a> 1387 1407 </pre><p id="rfc.section.5.1.2.p.3">The four options for Request-URI are dependent on the nature of the request. The asterisk "*" means that the request does 1388 1408 not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily … … 1442 1462 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="response" href="#response">Response</a></h1> 1443 1463 <p id="rfc.section.6.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1444 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.74"></span> Response = Status-Line; <a href="#status-line" title="Status-Line">Section 6.1</a>1445 *(( general-header; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a>1446 | response-header; <a href="#Part2" id="rfc.xref.Part2.9"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a>1447 | entity-header ) CRLF) ; <a href="#Part3" id="rfc.xref.Part3.13"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>1448 CRLF1449 [ message-body] ; <a href="#message.body" title="Message Body">Section 4.3</a>1464 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.74"></span> <a href="#response" class="smpl">Response</a> = <a href="#status-line" class="smpl">Status-Line</a> ; <a href="#status-line" title="Status-Line">Section 6.1</a> 1465 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1466 | <a href="#abnf.dependencies" class="smpl">response-header</a> ; <a href="#Part2" id="rfc.xref.Part2.9"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a> 1467 | <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#rule.CRLF" class="smpl">CRLF</a>) ; <a href="#Part3" id="rfc.xref.Part3.13"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a> 1468 <a href="#rule.CRLF" class="smpl">CRLF</a> 1469 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1450 1470 </pre><h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="status-line" href="#status-line">Status-Line</a></h2> 1451 1471 <p id="rfc.section.6.1.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version followed by a numeric status code … … 1453 1473 CRLF sequence. 1454 1474 </p> 1455 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.75"></span> Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF1475 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.75"></span> <a href="#status-line" class="smpl">Status-Line</a> = <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> <a href="#rule.CRLF" class="smpl">CRLF</a> 1456 1476 </pre><h3 id="rfc.section.6.1.1"><a href="#rfc.section.6.1.1">6.1.1</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h3> 1457 1477 <p id="rfc.section.6.1.1.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. These codes … … 1470 1490 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1471 1491 </ul> 1472 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.76"></span><span id="rfc.iref.g.77"></span><span id="rfc.iref.g.78"></span> Status-Code = 3DIGIT1473 Reason-Phrase = *<TEXT, excluding CR, LF>1492 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.76"></span><span id="rfc.iref.g.77"></span><span id="rfc.iref.g.78"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1493 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *<<a href="#rule.TEXT" class="smpl">TEXT</a>, excluding <a href="#core.rules" class="smpl">CR</a>, <a href="#core.rules" class="smpl">LF</a>> 1474 1494 </pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> 1475 1495 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h2> … … 1661 1681 </p> 1662 1682 <p id="rfc.section.8.1.p.2">The Connection header has the following grammar:</p> 1663 <div id="rfc.figure.u.43"></div><pre class="inline"><span id="rfc.iref.g.79"></span><span id="rfc.iref.g.80"></span> Connection = "Connection" ":" 1#(connection-token)1664 connection-token = token1683 <div id="rfc.figure.u.43"></div><pre class="inline"><span id="rfc.iref.g.79"></span><span id="rfc.iref.g.80"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" 1#(<a href="#header.connection" class="smpl">connection-token</a>) 1684 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 1665 1685 </pre><p id="rfc.section.8.1.p.4">HTTP/1.1 proxies <em class="bcp14">MUST</em> parse the Connection header field before a message is forwarded and, for each connection-token in this field, remove any header 1666 1686 field(s) from the message with the same name as the connection-token. Connection options are signaled by the presence of a … … 1689 1709 or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET. 1690 1710 </p> 1691 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.81"></span> Content-Length = "Content-Length" ":" 1*DIGIT1711 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.81"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" 1*<a href="#core.rules" class="smpl">DIGIT</a> 1692 1712 </pre><p id="rfc.section.8.2.p.3">An example is</p> 1693 1713 <div id="rfc.figure.u.46"></div><pre class="text"> Content-Length: 3495 … … 1706 1726 as orig-date in <a href="http://tools.ietf.org/html/rfc2822#section-3.6.1">Section 3.6.1</a> of <a href="#RFC2822" id="rfc.xref.RFC2822.4"><cite title="Internet Message Format">[RFC2822]</cite></a>. The field value is an HTTP-date, as described in <a href="#full.date" title="Full Date">Section 3.3.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1707 1727 </p> 1708 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.82"></span> Date = "Date" ":" HTTP-date1728 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.82"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#full.date" class="smpl">HTTP-date</a> 1709 1729 </pre><p id="rfc.section.8.3.p.3">An example is</p> 1710 1730 <div id="rfc.figure.u.48"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT … … 1744 1764 a single IP address. 1745 1765 </p> 1746 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.83"></span> Host = "Host" ":" uri-host [ ":" port] ; <a href="#http.url" title="http URL">Section 3.2.2</a>1766 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.83"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] ; <a href="#http.url" title="http URL">Section 3.2.2</a> 1747 1767 </pre><p id="rfc.section.8.4.p.3">A "host" without any trailing port information implies the default port for the service requested (e.g., "80" for an HTTP 1748 1768 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: … … 1763 1783 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 1764 1784 </p> 1765 <div id="rfc.figure.u.51"></div><pre class="inline"><span id="rfc.iref.g.84"></span><span id="rfc.iref.g.85"></span> TE = "TE" ":" #( t-codings)1766 t-codings = "trailers" | ( transfer-extension [ accept-params] )1785 <div id="rfc.figure.u.51"></div><pre class="inline"><span id="rfc.iref.g.84"></span><span id="rfc.iref.g.85"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" #( <a href="#header.te" class="smpl">t-codings</a> ) 1786 <a href="#header.te" class="smpl">t-codings</a> = "trailers" | ( <a href="#transfer.codings" class="smpl">transfer-extension</a> [ <a href="#abnf.dependencies" class="smpl">accept-params</a> ] ) 1767 1787 </pre><p id="rfc.section.8.5.p.3">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, 1768 1788 as defined in <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.4.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding. … … 1806 1826 with chunked transfer-coding. 1807 1827 </p> 1808 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.86"></span> Trailer = "Trailer" ":" 1#field-name1828 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.86"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" 1#<a href="#message.headers" class="smpl">field-name</a> 1809 1829 </pre><p id="rfc.section.8.6.p.3">An HTTP/1.1 message <em class="bcp14">SHOULD</em> include a Trailer header field in a message using chunked transfer-coding with a non-empty trailer. Doing so allows the recipient 1810 1830 to know which header fields to expect in the trailer. … … 1826 1846 transfer-coding is a property of the message, not of the entity. 1827 1847 </p> 1828 <div id="rfc.figure.u.54"></div><pre class="inline"><span id="rfc.iref.g.87"></span> Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding1848 <div id="rfc.figure.u.54"></div><pre class="inline"><span id="rfc.iref.g.87"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1829 1849 </pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>. An example is: 1830 1850 </p> … … 1839 1859 to use if the server finds it appropriate to switch protocols. The server <em class="bcp14">MUST</em> use the Upgrade header field within a 101 (Switching Protocols) response to indicate which protocol(s) are being switched. 1840 1860 </p> 1841 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.88"></span> Upgrade = "Upgrade" ":" 1#product1861 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.88"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" 1#<a href="#product.tokens" class="smpl">product</a> 1842 1862 </pre><p id="rfc.section.8.8.p.3">For example,</p> 1843 1863 <div id="rfc.figure.u.57"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 … … 1870 1890 of all senders along the request/response chain. 1871 1891 </p> 1872 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.89"></span><span id="rfc.iref.g.90"></span><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span> Via = "Via" ":" 1#( received-protocol received-by [ comment] )1873 received-protocol = [ protocol-name "/" ] protocol-version1874 protocol-name = token1875 protocol-version = token1876 received-by = ( uri-host [ ":" port ] ) | pseudonym1877 pseudonym = token1892 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.89"></span><span id="rfc.iref.g.90"></span><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span> <a href="#header.via" class="smpl">Via</a> = "Via" ":" 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#header.via" class="smpl">received-by</a> [ <a href="#rule.comment" class="smpl">comment</a> ] ) 1893 <a href="#header.via" class="smpl">received-protocol</a> = [ <a href="#header.via" class="smpl">protocol-name</a> "/" ] <a href="#header.via" class="smpl">protocol-version</a> 1894 <a href="#header.via" class="smpl">protocol-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1895 <a href="#header.via" class="smpl">protocol-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1896 <a href="#header.via" class="smpl">received-by</a> = ( <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] ) | <a href="#header.via" class="smpl">pseudonym</a> 1897 <a href="#header.via" class="smpl">pseudonym</a> = <a href="#rule.token.separators" class="smpl">token</a> 1878 1898 </pre><p id="rfc.section.8.9.p.3">The received-protocol indicates the protocol version of the message received by the server or client along each segment of 1879 1899 the request/response chain. The received-protocol version is appended to the Via field value when the message is forwarded -
draft-ietf-httpbis/latest/p1-messaging.xml
r228 r229 813 813 814 814 <section title="Basic Rules" anchor="basic.rules"> 815 <x:anchor-alias value="OCTET"/> 816 <x:anchor-alias value="CHAR"/> 817 <x:anchor-alias value="ALPHA"/> 818 <x:anchor-alias value="DIGIT"/> 819 <x:anchor-alias value="CTL"/> 820 <x:anchor-alias value="CR"/> 821 <x:anchor-alias value="LF"/> 822 <x:anchor-alias value="SP"/> 823 <x:anchor-alias value="HTAB"/> 824 <x:anchor-alias value="CRLF"/> 825 <x:anchor-alias value="LWS"/> 826 <x:anchor-alias value="TEXT"/> 827 <x:anchor-alias value="HEX"/> 828 <x:anchor-alias value="token"/> 829 <x:anchor-alias value="separators"/> 830 <x:anchor-alias value="comment"/> 831 <x:anchor-alias value="ctext"/> 832 <x:anchor-alias value="quoted-string"/> 833 <x:anchor-alias value="qdtext"/> 834 <x:anchor-alias value="quoted-pair"/> 835 <t> 815 <t anchor="core.rules"> 816 <x:anchor-alias value="OCTET"/> 817 <x:anchor-alias value="CHAR"/> 818 <x:anchor-alias value="ALPHA"/> 819 <x:anchor-alias value="DIGIT"/> 820 <x:anchor-alias value="CTL"/> 821 <x:anchor-alias value="CR"/> 822 <x:anchor-alias value="LF"/> 823 <x:anchor-alias value="SP"/> 824 <x:anchor-alias value="HTAB"/> 825 <x:anchor-alias value="DQUOTE"/> 836 826 The following rules are used throughout this specification to 837 827 describe basic parsing constructs. The US-ASCII coded character set … … 839 829 </t> 840 830 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR"/><iref primary="true" item="Grammar" subitem="ALPHA"/><iref primary="true" item="Grammar" subitem="DIGIT"/><iref primary="true" item="Grammar" subitem="CTL"/><iref primary="true" item="Grammar" subitem="CR"/><iref primary="true" item="Grammar" subitem="LF"/><iref primary="true" item="Grammar" subitem="SP"/><iref primary="true" item="Grammar" subitem="HTAB"/><iref primary="true" item="Grammar" subitem="DQUOTE"/> 841 OCTET= %x00-FF831 <x:ref>OCTET</x:ref> = %x00-FF 842 832 ; any 8-bit sequence of data 843 CHAR= %x01-7F833 <x:ref>CHAR</x:ref> = %x01-7F 844 834 ; any US-ASCII character, excluding NUL 845 ALPHA= %x41-5A | %x61-7A835 <x:ref>ALPHA</x:ref> = %x41-5A | %x61-7A 846 836 ; A-Z | a-z 847 DIGIT= %x30-39837 <x:ref>DIGIT</x:ref> = %x30-39 848 838 ; any US-ASCII digit "0".."9" 849 CTL= %x00-1F | %x7F839 <x:ref>CTL</x:ref> = %x00-1F | %x7F 850 840 ; (octets 0 - 31) and DEL (127) 851 CR= %x0D841 <x:ref>CR</x:ref> = %x0D 852 842 ; US-ASCII CR, carriage return (13) 853 LF= %x0A843 <x:ref>LF</x:ref> = %x0A 854 844 ; US-ASCII LF, linefeed (10) 855 SP= %x20845 <x:ref>SP</x:ref> = %x20 856 846 ; US-ASCII SP, space (32) 857 HTAB= %x09847 <x:ref>HTAB</x:ref> = %x09 858 848 ; US-ASCII HT, horizontal-tab (9) 859 DQUOTE= %x22849 <x:ref>DQUOTE</x:ref> = %x22 860 850 ; US-ASCII double-quote mark (34) 861 851 </artwork></figure> 862 <t> 852 <t anchor="rule.CRLF"> 853 <x:anchor-alias value="CRLF"/> 863 854 HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all 864 855 protocol elements except the entity-body (see <xref target="tolerant.applications"/> for … … 867 858 </t> 868 859 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF"/> 869 CRLF = CR LF 870 </artwork></figure> 871 <t> 860 <x:ref>CRLF</x:ref> = <x:ref>CR</x:ref> LF 861 </artwork></figure> 862 <t anchor="rule.LWS"> 863 <x:anchor-alias value="LWS"/> 872 864 HTTP/1.1 header field values can be folded onto multiple lines if the 873 865 continuation line begins with a space or horizontal tab. All linear … … 877 869 </t> 878 870 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS"/> 879 LWS = [CRLF] 1*( SP | HTAB ) 880 </artwork></figure> 881 <t> 871 <x:ref>LWS</x:ref> = [<x:ref>CRLF</x:ref>] 1*( <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref> ) 872 </artwork></figure> 873 <t anchor="rule.TEXT"> 874 <x:anchor-alias value="TEXT"/> 882 875 The TEXT rule is only used for descriptive field contents and values 883 876 that are not intended to be interpreted by the message parser. Words … … 887 880 </t> 888 881 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/> 889 TEXT = %x20-7E | %x80-FF | LWS890 ; any OCTET except CTLs, but including LWS882 <x:ref>TEXT</x:ref> = %x20-7E | %x80-FF | <x:ref>LWS</x:ref> 883 ; any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s, but including <x:ref>LWS</x:ref> 891 884 </artwork></figure> 892 885 <t> … … 895 888 replaced with a single SP before interpretation of the TEXT value. 896 889 </t> 897 <t> 890 <t anchor="rule.HEX"> 891 <x:anchor-alias value="HEX"/> 898 892 Hexadecimal numeric characters are used in several protocol elements. 899 893 </t> 900 894 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEX"/> 901 HEX = "A" | "B" | "C" | "D" | "E" | "F" 902 | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT 903 </artwork></figure> 904 <t> 895 <x:ref>HEX</x:ref> = "A" | "B" | "C" | "D" | "E" | "F" 896 | "a" | "b" | "c" | "d" | "e" | "f" | <x:ref>DIGIT</x:ref> 897 </artwork></figure> 898 <t anchor="rule.token.separators"> 899 <x:anchor-alias value="tchar"/> 900 <x:anchor-alias value="token"/> 901 <x:anchor-alias value="separators"/> 905 902 Many HTTP/1.1 header field values consist of words separated by LWS 906 903 or special characters. These special characters &MUST; be in a quoted … … 909 906 </t> 910 907 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token"/><iref primary="true" item="Grammar" subitem="tchar"/><iref primary="true" item="Grammar" subitem="separators"/> 911 separators= "(" | ")" | "<" | ">" | "@"912 | "," | ";" | ":" | "\" | DQUOTE908 <x:ref>separators</x:ref> = "(" | ")" | "<" | ">" | "@" 909 | "," | ";" | ":" | "\" | <x:ref>DQUOTE</x:ref> 913 910 | "/" | "[" | "]" | "?" | "=" 914 | "{" | "}" | SP | HTAB911 | "{" | "}" | <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref> 915 912 916 tchar= "!" | "#" | "$" | "%" | "&" | "'" | "*"913 <x:ref>tchar</x:ref> = "!" | "#" | "$" | "%" | "&" | "'" | "*" 917 914 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~" 918 | DIGIT | ALPHA919 ; any CHAR except CTLs or separators915 | <x:ref>DIGIT</x:ref> | <x:ref>ALPHA</x:ref> 916 ; any <x:ref>CHAR</x:ref> except <x:ref>CTL</x:ref>s or <x:ref>separators</x:ref> 920 917 921 token = 1*tchar 922 </artwork></figure> 923 <t> 918 <x:ref>token</x:ref> = 1*<x:ref>tchar</x:ref> 919 </artwork></figure> 920 <t anchor="rule.comment"> 921 <x:anchor-alias value="comment"/> 922 <x:anchor-alias value="ctext"/> 924 923 Comments can be included in some HTTP header fields by surrounding 925 924 the comment text with parentheses. Comments are only allowed in … … 929 928 </t> 930 929 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/> 931 comment = "(" *( ctext | quoted-pair | comment ) ")" 932 ctext = <any TEXT excluding "(" and ")"> 933 </artwork></figure> 934 <t> 930 <x:ref>comment</x:ref> = "(" *( <x:ref>ctext</x:ref> | <x:ref>quoted-pair</x:ref> | <x:ref>comment</x:ref> ) ")" 931 <x:ref>ctext</x:ref> = <any <x:ref>TEXT</x:ref> excluding "(" and ")"> 932 </artwork></figure> 933 <t anchor="rule.quoted-string"> 934 <x:anchor-alias value="quoted-string"/> 935 <x:anchor-alias value="qdtext"/> 935 936 A string of text is parsed as a single word if it is quoted using 936 937 double-quote marks. 937 938 </t> 938 939 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/> 939 quoted-string = ( DQUOTE *(qdtext | quoted-pair ) DQUOTE ) 940 qdtext = <any TEXT excluding DQUOTE and "\"> 941 </artwork></figure> 942 <t> 940 <x:ref>quoted-string</x:ref> = ( <x:ref>DQUOTE</x:ref> *(<x:ref>qdtext</x:ref> | <x:ref>quoted-pair</x:ref> ) <x:ref>DQUOTE</x:ref> ) 941 <x:ref>qdtext</x:ref> = <any <x:ref>TEXT</x:ref> excluding <x:ref>DQUOTE</x:ref> and "\"> 942 </artwork></figure> 943 <t anchor="rule.quoted-pair"> 944 <x:anchor-alias value="quoted-pair"/> 943 945 The backslash character ("\") &MAY; be used as a single-character 944 946 quoting mechanism only within quoted-string and comment constructs. 945 947 </t> 946 948 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/> 947 quoted-pair = "\" CHAR949 <x:ref>quoted-pair</x:ref> = "\" <x:ref>CHAR</x:ref> 948 950 </artwork></figure> 949 951 </section> 950 952 951 953 <section title="ABNF Rules defined in other Parts of the Specification" anchor="abnf.dependencies"> 954 <x:anchor-alias value="request-header"/> 955 <x:anchor-alias value="response-header"/> 956 <x:anchor-alias value="accept-params"/> 957 <x:anchor-alias value="entity-body"/> 958 <x:anchor-alias value="entity-header"/> 959 <x:anchor-alias value="Cache-Control"/> 960 <x:anchor-alias value="Pragma"/> 961 <x:anchor-alias value="Warning"/> 952 962 <t> 953 963 The ABNF rules below are defined in other parts: 954 964 </t> 955 965 <figure><!-- Part2--><artwork type="abnf2616"> 956 request-header =<request-header, defined in &request-header-fields;>957 response-header= <response-header, defined in &response-header-fields;>966 <x:ref>request-header</x:ref> = <request-header, defined in &request-header-fields;> 967 <x:ref>response-header</x:ref> = <response-header, defined in &response-header-fields;> 958 968 </artwork></figure> 959 969 <figure><!-- Part3--><artwork type="abnf2616"> 960 accept-params= <accept-params, defined in &header-accept;>961 entity-body= <entity-body, defined in &entity-body;>962 entity-header= <entity-header, defined in &entity-header-fields;>970 <x:ref>accept-params</x:ref> = <accept-params, defined in &header-accept;> 971 <x:ref>entity-body</x:ref> = <entity-body, defined in &entity-body;> 972 <x:ref>entity-header</x:ref> = <entity-header, defined in &entity-header-fields;> 963 973 </artwork></figure> 964 974 <figure><!-- Part6--><artwork type="abnf2616"> 965 Cache-Control= <Cache-Control, defined in &header-pragma;>966 Pragma= <Pragma, defined in &header-pragma;>967 Warning= <Warning, defined in &header-warning;>975 <x:ref>Cache-Control</x:ref> = <Cache-Control, defined in &header-pragma;> 976 <x:ref>Pragma</x:ref> = <Pragma, defined in &header-pragma;> 977 <x:ref>Warning</x:ref> = <Warning, defined in &header-warning;> 968 978 </artwork></figure> 969 979 </section> … … 974 984 975 985 <section title="HTTP Version" anchor="http.version"> 986 <x:anchor-alias value="HTTP-Version"/> 976 987 <t> 977 988 HTTP uses a "<major>.<minor>" numbering scheme to indicate versions … … 994 1005 </t> 995 1006 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version"/> 996 HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT1007 <x:ref>HTTP-Version</x:ref> = "HTTP" "/" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref> 997 1008 </artwork></figure> 998 1009 <t> … … 1054 1065 1055 1066 <section title="General Syntax" anchor="general.syntax"> 1067 <x:anchor-alias value="absoluteURI"/> 1068 <x:anchor-alias value="authority"/> 1069 <x:anchor-alias value="fragment"/> 1070 <x:anchor-alias value="path-absolute"/> 1071 <x:anchor-alias value="port"/> 1072 <x:anchor-alias value="query"/> 1073 <x:anchor-alias value="relativeURI"/> 1074 <x:anchor-alias value="uri-host"/> 1056 1075 <t> 1057 1076 URIs in HTTP can be represented in absolute form or relative to some … … 1066 1085 </t> 1067 1086 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="absoluteURI"/><iref primary="true" item="Grammar" subitem="authority"/><iref primary="true" item="Grammar" subitem="path-absolute"/><iref primary="true" item="Grammar" subitem="port"/><iref primary="true" item="Grammar" subitem="query"/><iref primary="true" item="Grammar" subitem="relativeURI"/><iref primary="true" item="Grammar" subitem="uri-host"/> 1068 absoluteURI= <absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>1069 authority= <authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>1070 fragment= <fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>1071 path-absolute= <abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>1072 port= <port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>1073 query= <query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>1074 relativeURI= <relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>1075 uri-host= <host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>1087 <x:ref>absoluteURI</x:ref> = <absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>> 1088 <x:ref>authority</x:ref> = <authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>> 1089 <x:ref>fragment</x:ref> = <fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>> 1090 <x:ref>path-absolute</x:ref> = <abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>> 1091 <x:ref>port</x:ref> = <port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>> 1092 <x:ref>query</x:ref> = <query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>> 1093 <x:ref>relativeURI</x:ref> = <relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>> 1094 <x:ref>uri-host</x:ref> = <host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>> 1076 1095 </artwork></figure> 1077 1096 <t> … … 1095 1114 1096 1115 <section title="http URL" anchor="http.url"> 1116 <x:anchor-alias value="http-URL"/> 1097 1117 <t> 1098 1118 The "http" scheme is used to locate network resources via the HTTP … … 1101 1121 </t> 1102 1122 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http-URL"/> 1103 http-URL = "http:" "//" uri-host [ ":" port]1104 [ path-absolute [ "?" query]]1123 <x:ref>http-URL</x:ref> = "http:" "//" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] 1124 [ <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ]] 1105 1125 </artwork></figure> 1106 1126 <t> … … 1149 1169 <section title="Date/Time Formats" anchor="date.time.formats"> 1150 1170 <section title="Full Date" anchor="full.date"> 1171 <x:anchor-alias value="HTTP-date"/> 1172 <x:anchor-alias value="rfc1123-date"/> 1173 <x:anchor-alias value="rfc850-date"/> 1174 <x:anchor-alias value="asctime-date"/> 1175 <x:anchor-alias value="date1"/> 1176 <x:anchor-alias value="date2"/> 1177 <x:anchor-alias value="date3"/> 1178 <x:anchor-alias value="rfc1123-date"/> 1179 <x:anchor-alias value="time"/> 1180 <x:anchor-alias value="wkday"/> 1181 <x:anchor-alias value="weekday"/> 1182 <x:anchor-alias value="month"/> 1151 1183 <t> 1152 1184 HTTP applications have historically allowed three different formats … … 1185 1217 </t> 1186 1218 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-date"/><iref primary="true" item="Grammar" subitem="rfc1123-date"/><iref primary="true" item="Grammar" subitem="rfc850-date"/><iref primary="true" item="Grammar" subitem="asctime-date"/><iref primary="true" item="Grammar" subitem="date1"/><iref primary="true" item="Grammar" subitem="date2"/><iref primary="true" item="Grammar" subitem="date3"/><iref primary="true" item="Grammar" subitem="time"/><iref primary="true" item="Grammar" subitem="wkday"/><iref primary="true" item="Grammar" subitem="weekday"/><iref primary="true" item="Grammar" subitem="month"/> 1187 HTTP-date = rfc1123-date | rfc850-date | asctime-date1188 rfc1123-date = wkday "," SP date1 SP time SP"GMT"1189 rfc850-date = weekday "," SP date2 SP time SP"GMT"1190 asctime-date = wkday SP date3 SP time SP 4DIGIT1191 date1 = 2DIGIT SP month SP 4DIGIT1219 <x:ref>HTTP-date</x:ref> = <x:ref>rfc1123-date</x:ref> | <x:ref>rfc850-date</x:ref> | <x:ref>asctime-date</x:ref> 1220 <x:ref>rfc1123-date</x:ref> = <x:ref>wkday</x:ref> "," <x:ref>SP</x:ref> date1 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT" 1221 <x:ref>rfc850-date</x:ref> = <x:ref>weekday</x:ref> "," <x:ref>SP</x:ref> date2 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT" 1222 <x:ref>asctime-date</x:ref> = <x:ref>wkday</x:ref> <x:ref>SP</x:ref> <x:ref>date3</x:ref> <x:ref>SP</x:ref> <x:ref>time</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref> 1223 <x:ref>date1</x:ref> = 2<x:ref>DIGIT</x:ref> <x:ref>SP</x:ref> <x:ref>month</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref> 1192 1224 ; day month year (e.g., 02 Jun 1982) 1193 date2 = 2DIGIT "-" month "-" 2DIGIT1225 <x:ref>date2</x:ref> = 2<x:ref>DIGIT</x:ref> "-" <x:ref>month</x:ref> "-" 2<x:ref>DIGIT</x:ref> 1194 1226 ; day-month-year (e.g., 02-Jun-82) 1195 date3 = month SP ( 2DIGIT | ( SP 1DIGIT))1227 <x:ref>date3</x:ref> = <x:ref>month</x:ref> <x:ref>SP</x:ref> ( 2<x:ref>DIGIT</x:ref> | ( <x:ref>SP</x:ref> 1<x:ref>DIGIT</x:ref> )) 1196 1228 ; month day (e.g., Jun 2) 1197 time = 2DIGIT ":" 2DIGIT ":" 2DIGIT1229 <x:ref>time</x:ref> = 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> 1198 1230 ; 00:00:00 - 23:59:59 1199 wkday= "Mon" | "Tue" | "Wed"1231 <x:ref>wkday</x:ref> = "Mon" | "Tue" | "Wed" 1200 1232 | "Thu" | "Fri" | "Sat" | "Sun" 1201 weekday= "Monday" | "Tuesday" | "Wednesday"1233 <x:ref>weekday</x:ref> = "Monday" | "Tuesday" | "Wednesday" 1202 1234 | "Thursday" | "Friday" | "Saturday" | "Sunday" 1203 month= "Jan" | "Feb" | "Mar" | "Apr"1235 <x:ref>month</x:ref> = "Jan" | "Feb" | "Mar" | "Apr" 1204 1236 | "May" | "Jun" | "Jul" | "Aug" 1205 1237 | "Sep" | "Oct" | "Nov" | "Dec" … … 1215 1247 1216 1248 <section title="Transfer Codings" anchor="transfer.codings"> 1249 <x:anchor-alias value="parameter"/> 1250 <x:anchor-alias value="transfer-coding"/> 1251 <x:anchor-alias value="transfer-extension"/> 1217 1252 <t> 1218 1253 Transfer-coding values are used to indicate an encoding … … 1223 1258 </t> 1224 1259 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/> 1225 transfer-coding = "chunked" | transfer-extension 1226 transfer-extension = token *( ";" parameter ) 1227 </artwork></figure> 1228 <t> 1260 <x:ref>transfer-coding</x:ref> = "chunked" | <x:ref>transfer-extension</x:ref> 1261 <x:ref>transfer-extension</x:ref> = <x:ref>token</x:ref> *( ";" <x:ref>parameter</x:ref> ) 1262 </artwork></figure> 1263 <t anchor="rule.parameter"> 1264 <x:anchor-alias value="attribute"/> 1265 <x:anchor-alias value="parameter"/> 1266 <x:anchor-alias value="value"/> 1229 1267 Parameters are in the form of attribute/value pairs. 1230 1268 </t> 1231 1269 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/> 1232 parameter = attribute "=" value1233 attribute = token1234 value = token | quoted-string1270 <x:ref>parameter</x:ref> = <x:ref>attribute</x:ref> "=" <x:ref>value</x:ref> 1271 <x:ref>attribute</x:ref> = <x:ref>token</x:ref> 1272 <x:ref>value</x:ref> = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> 1235 1273 </artwork></figure> 1236 1274 <t> … … 1275 1313 1276 1314 <section title="Chunked Transfer Coding" anchor="chunked.transfer.encoding"> 1315 <x:anchor-alias value="chunk"/> 1316 <x:anchor-alias value="Chunked-Body"/> 1317 <x:anchor-alias value="chunk-data"/> 1318 <x:anchor-alias value="chunk-extension"/> 1319 <x:anchor-alias value="chunk-ext-name"/> 1320 <x:anchor-alias value="chunk-ext-val"/> 1321 <x:anchor-alias value="chunk-size"/> 1322 <x:anchor-alias value="last-chunk"/> 1323 <x:anchor-alias value="trailer-part"/> 1277 1324 <t> 1278 1325 The chunked encoding modifies the body of a message in order to … … 1284 1331 </t> 1285 1332 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-extension"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/> 1286 Chunked-Body = *chunk1287 last-chunk1288 trailer-part1289 CRLF1333 <x:ref>Chunked-Body</x:ref> = *<x:ref>chunk</x:ref> 1334 <x:ref>last-chunk</x:ref> 1335 <x:ref>trailer-part</x:ref> 1336 <x:ref>CRLF</x:ref> 1290 1337 1291 chunk = chunk-size [ chunk-extension ] CRLF1292 chunk-data CRLF1293 chunk-size = 1*HEX1294 last-chunk = 1*("0") [ chunk-extension ] CRLF1338 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref> 1339 <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref> 1340 <x:ref>chunk-size</x:ref> = 1*<x:ref>HEX</x:ref> 1341 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref> 1295 1342 1296 chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val] )1297 chunk-ext-name = token1298 chunk-ext-val = token | quoted-string1299 chunk-data = 1*OCTET; a sequence of chunk-size octets1300 trailer-part = *(entity-header CRLF)1343 <x:ref>chunk-extension</x:ref>= *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 1344 <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref> 1345 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> 1346 <x:ref>chunk-data</x:ref> = 1*<x:ref>OCTET</x:ref> ; a sequence of chunk-size octets 1347 <x:ref>trailer-part</x:ref> = *(<x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref>) 1301 1348 </artwork></figure> 1302 1349 <t> … … 1365 1412 1366 1413 <section title="Product Tokens" anchor="product.tokens"> 1414 <x:anchor-alias value="product"/> 1415 <x:anchor-alias value="product-version"/> 1367 1416 <t> 1368 1417 Product tokens are used to allow communicating applications to … … 1374 1423 </t> 1375 1424 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="product"/><iref primary="true" item="Grammar" subitem="product-version"/> 1376 product = token ["/" product-version]1377 product-version = token1425 <x:ref>product</x:ref> = <x:ref>token</x:ref> ["/" <x:ref>product-version</x:ref>] 1426 <x:ref>product-version</x:ref> = <x:ref>token</x:ref> 1378 1427 </artwork></figure> 1379 1428 <t> … … 1399 1448 1400 1449 <section title="Message Types" anchor="message.types"> 1450 <x:anchor-alias value="generic-message"/> 1451 <x:anchor-alias value="HTTP-message"/> 1452 <x:anchor-alias value="start-line"/> 1401 1453 <t> 1402 1454 HTTP messages consist of requests from client to server and responses … … 1404 1456 </t> 1405 1457 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/> 1406 HTTP-message = Request | Response; HTTP/1.1 messages1458 <x:ref>HTTP-message</x:ref> = <x:ref>Request</x:ref> | <x:ref>Response</x:ref> ; HTTP/1.1 messages 1407 1459 </artwork></figure> 1408 1460 <t> … … 1415 1467 </t> 1416 1468 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/> 1417 generic-message = start-line1418 *( message-header CRLF)1419 CRLF1420 [ message-body]1421 start-line = Request-Line | Status-Line1469 <x:ref>generic-message</x:ref> = <x:ref>start-line</x:ref> 1470 *(<x:ref>message-header</x:ref> <x:ref>CRLF</x:ref>) 1471 <x:ref>CRLF</x:ref> 1472 [ <x:ref>message-body</x:ref> ] 1473 <x:ref>start-line</x:ref> = <x:ref>Request-Line</x:ref> | <x:ref>Status-Line</x:ref> 1422 1474 </artwork></figure> 1423 1475 <t> … … 1436 1488 1437 1489 <section title="Message Headers" anchor="message.headers"> 1490 <x:anchor-alias value="field-content"/> 1491 <x:anchor-alias value="field-name"/> 1492 <x:anchor-alias value="field-value"/> 1493 <x:anchor-alias value="message-header"/> 1438 1494 <t> 1439 1495 HTTP header fields, which include general-header (<xref target="general.header.fields"/>), … … 1451 1507 </t> 1452 1508 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-header"/><iref primary="true" item="Grammar" subitem="field-name"/><iref primary="true" item="Grammar" subitem="field-value"/><iref primary="true" item="Grammar" subitem="field-content"/> 1453 message-header = field-name ":" [ field-value]1454 field-name = token1455 field-value = *( field-content | LWS)1456 field-content= <field content>1457 ; the OCTETs making up the field-value1458 ; and consisting of either * TEXTor combinations1459 ; of token, separators, and quoted-string1509 <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ <x:ref>field-value</x:ref> ] 1510 <x:ref>field-name</x:ref> = <x:ref>token</x:ref> 1511 <x:ref>field-value</x:ref> = *( <x:ref>field-content</x:ref> | <x:ref>LWS</x:ref> ) 1512 <x:ref>field-content</x:ref> = <field content> 1513 ; the <x:ref>OCTET</x:ref>s making up the field-value 1514 ; and consisting of either *<x:ref>TEXT</x:ref> or combinations 1515 ; of <x:ref>token</x:ref>, <x:ref>separators</x:ref>, and <x:ref>quoted-string</x:ref> 1460 1516 </artwork></figure> 1461 1517 <t> … … 1490 1546 1491 1547 <section title="Message Body" anchor="message.body"> 1548 <x:anchor-alias value="message-body"/> 1492 1549 <t> 1493 1550 The message-body (if any) of an HTTP message is used to carry the … … 1497 1554 </t> 1498 1555 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-body"/> 1499 message-body = entity-body1500 | <entity-body encoded as per Transfer-Encoding>1556 <x:ref>message-body</x:ref> = <x:ref>entity-body</x:ref> 1557 | <entity-body encoded as per <x:ref>Transfer-Encoding</x:ref>> 1501 1558 </artwork></figure> 1502 1559 <t> … … 1621 1678 1622 1679 <section title="General Header Fields" anchor="general.header.fields"> 1680 <x:anchor-alias value="general-header"/> 1623 1681 <t> 1624 1682 There are a few header fields which have general applicability for … … 1628 1686 </t> 1629 1687 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="general-header"/> 1630 general-header = Cache-Control; &header-cache-control;1631 | Connection; <xref target="header.connection"/>1632 | Date; <xref target="header.date"/>1633 | Pragma; &header-pragma;1634 | Trailer; <xref target="header.trailer"/>1635 | Transfer-Encoding; <xref target="header.transfer-encoding"/>1636 | Upgrade; <xref target="header.upgrade"/>1637 | Via; <xref target="header.via"/>1638 | Warning; &header-warning;1688 <x:ref>general-header</x:ref> = <x:ref>Cache-Control</x:ref> ; &header-cache-control; 1689 | <x:ref>Connection</x:ref> ; <xref target="header.connection"/> 1690 | <x:ref>Date</x:ref> ; <xref target="header.date"/> 1691 | <x:ref>Pragma</x:ref> ; &header-pragma; 1692 | <x:ref>Trailer</x:ref> ; <xref target="header.trailer"/> 1693 | <x:ref>Transfer-Encoding</x:ref> ; <xref target="header.transfer-encoding"/> 1694 | <x:ref>Upgrade</x:ref> ; <xref target="header.upgrade"/> 1695 | <x:ref>Via</x:ref> ; <xref target="header.via"/> 1696 | <x:ref>Warning</x:ref> ; &header-warning; 1639 1697 </artwork></figure> 1640 1698 <t> … … 1650 1708 1651 1709 <section title="Request" anchor="request"> 1710 <x:anchor-alias value="Request"/> 1652 1711 <t> 1653 1712 A request message from a client to a server includes, within the … … 1657 1716 <!-- Host ; should be moved here eventually --> 1658 1717 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request"/> 1659 Request = Request-Line; <xref target="request-line"/>1660 *(( general-header; <xref target="general.header.fields"/>1661 | request-header; &request-header-fields;1662 | entity-header ) CRLF) ; &entity-header-fields;1663 CRLF1664 [ message-body] ; <xref target="message.body"/>1718 <x:ref>Request</x:ref> = <x:ref>Request-Line</x:ref> ; <xref target="request-line"/> 1719 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1720 | <x:ref>request-header</x:ref> ; &request-header-fields; 1721 | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>) ; &entity-header-fields; 1722 <x:ref>CRLF</x:ref> 1723 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> 1665 1724 </artwork></figure> 1666 1725 1667 1726 <section title="Request-Line" anchor="request-line"> 1727 <x:anchor-alias value="Request-Line"/> 1668 1728 <t> 1669 1729 The Request-Line begins with a method token, followed by the … … 1673 1733 </t> 1674 1734 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/> 1675 Request-Line = Method SP Request-URI SP HTTP-Version CRLF1735 <x:ref>Request-Line</x:ref> = <x:ref>Method</x:ref> <x:ref>SP</x:ref> <x:ref>Request-URI</x:ref> <x:ref>SP</x:ref> <x:ref>HTTP-Version</x:ref> <x:ref>CRLF</x:ref> 1676 1736 </artwork></figure> 1677 1737 1678 1738 <section title="Method" anchor="method"> 1739 <x:anchor-alias value="Method"/> 1679 1740 <t> 1680 1741 The Method token indicates the method to be performed on the … … 1682 1743 </t> 1683 1744 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/> 1684 Method = token1745 <x:ref>Method</x:ref> = <x:ref>token</x:ref> 1685 1746 </artwork></figure> 1686 1747 </section> 1687 1748 1688 1749 <section title="Request-URI" anchor="request-uri"> 1750 <x:anchor-alias value="Request-URI"/> 1689 1751 <t> 1690 1752 The Request-URI is a Uniform Resource Identifier (<xref target="uri"/>) and … … 1692 1754 </t> 1693 1755 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-URI"/> 1694 Request-URI= "*"1695 | absoluteURI1696 | ( path-absolute [ "?" query] )1697 | authority1756 <x:ref>Request-URI</x:ref> = "*" 1757 | <x:ref>absoluteURI</x:ref> 1758 | ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] ) 1759 | <x:ref>authority</x:ref> 1698 1760 </artwork></figure> 1699 1761 <t> … … 1812 1874 1813 1875 <section title="Response" anchor="response"> 1876 <x:anchor-alias value="Response"/> 1814 1877 <t> 1815 1878 After receiving and interpreting a request message, a server responds … … 1817 1880 </t> 1818 1881 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Response"/> 1819 Response = Status-Line; <xref target="status-line"/>1820 *(( general-header; <xref target="general.header.fields"/>1821 | response-header; &response-header-fields;1822 | entity-header ) CRLF) ; &entity-header-fields;1823 CRLF1824 [ message-body] ; <xref target="message.body"/>1882 <x:ref>Response</x:ref> = <x:ref>Status-Line</x:ref> ; <xref target="status-line"/> 1883 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1884 | <x:ref>response-header</x:ref> ; &response-header-fields; 1885 | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>) ; &entity-header-fields; 1886 <x:ref>CRLF</x:ref> 1887 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> 1825 1888 </artwork></figure> 1826 1889 1827 1890 <section title="Status-Line" anchor="status-line"> 1891 <x:anchor-alias value="Status-Line"/> 1828 1892 <t> 1829 1893 The first line of a Response message is the Status-Line, consisting … … 1833 1897 </t> 1834 1898 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/> 1835 Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF1899 <x:ref>Status-Line</x:ref> = <x:ref>HTTP-Version</x:ref> <x:ref>SP</x:ref> <x:ref>Status-Code</x:ref> <x:ref>SP</x:ref> <x:ref>Reason-Phrase</x:ref> <x:ref>CRLF</x:ref> 1836 1900 </artwork></figure> 1837 1901 1838 1902 <section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase"> 1903 <x:anchor-alias value="Reason-Phrase"/> 1904 <x:anchor-alias value="Status-Code"/> 1839 1905 <t> 1840 1906 The Status-Code element is a 3-digit integer result code of the … … 1873 1939 </t> 1874 1940 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/> 1875 Status-Code = 3DIGIT1876 Reason-Phrase = *<TEXT, excluding CR, LF>1941 <x:ref>Status-Code</x:ref> = 3<x:ref>DIGIT</x:ref> 1942 <x:ref>Reason-Phrase</x:ref> = *<<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>> 1877 1943 </artwork></figure> 1878 1944 </section> … … 2294 2360 <iref primary="true" item="Connection header" x:for-anchor=""/> 2295 2361 <iref primary="true" item="Headers" subitem="Connection" x:for-anchor=""/> 2362 <x:anchor-alias value="Connection"/> 2363 <x:anchor-alias value="connection-token"/> 2296 2364 <t> 2297 2365 The Connection general-header field allows the sender to specify … … 2303 2371 </t> 2304 2372 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/> 2305 Connection = "Connection" ":" 1#(connection-token)2306 connection-token = token2373 <x:ref>Connection</x:ref> = "Connection" ":" 1#(<x:ref>connection-token</x:ref>) 2374 <x:ref>connection-token</x:ref> = <x:ref>token</x:ref> 2307 2375 </artwork></figure> 2308 2376 <t> … … 2354 2422 <iref primary="true" item="Content-Length header" x:for-anchor=""/> 2355 2423 <iref primary="true" item="Headers" subitem="Content-Length" x:for-anchor=""/> 2424 <x:anchor-alias value="Content-Length"/> 2356 2425 <t> 2357 2426 The Content-Length entity-header field indicates the size of the … … 2361 2430 </t> 2362 2431 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/> 2363 Content-Length = "Content-Length" ":" 1*DIGIT2432 <x:ref>Content-Length</x:ref> = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref> 2364 2433 </artwork></figure> 2365 2434 <t> … … 2391 2460 <iref primary="true" item="Date header" x:for-anchor=""/> 2392 2461 <iref primary="true" item="Headers" subitem="Date" x:for-anchor=""/> 2462 <x:anchor-alias value="Date"/> 2393 2463 <t> 2394 2464 The Date general-header field represents the date and time at which … … 2398 2468 </t> 2399 2469 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/> 2400 Date = "Date" ":" HTTP-date2470 <x:ref>Date</x:ref> = "Date" ":" <x:ref>HTTP-date</x:ref> 2401 2471 </artwork></figure> 2402 2472 <t> … … 2467 2537 <iref primary="true" item="Host header" x:for-anchor=""/> 2468 2538 <iref primary="true" item="Headers" subitem="Host" x:for-anchor=""/> 2539 <x:anchor-alias value="Host"/> 2469 2540 <t> 2470 2541 The Host request-header field specifies the Internet host and port … … 2478 2549 </t> 2479 2550 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/> 2480 Host = "Host" ":" uri-host [ ":" port] ; <xref target="http.url"/>2551 <x:ref>Host</x:ref> = "Host" ":" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ; <xref target="http.url"/> 2481 2552 </artwork></figure> 2482 2553 <t> … … 2511 2582 <iref primary="true" item="TE header" x:for-anchor=""/> 2512 2583 <iref primary="true" item="Headers" subitem="TE" x:for-anchor=""/> 2584 <x:anchor-alias value="TE"/> 2585 <x:anchor-alias value="t-codings"/> 2513 2586 <t> 2514 2587 The TE request-header field indicates what extension transfer-codings … … 2520 2593 </t> 2521 2594 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/> 2522 TE = "TE" ":" #( t-codings)2523 t-codings = "trailers" | ( transfer-extension [ accept-params] )2595 <x:ref>TE</x:ref> = "TE" ":" #( <x:ref>t-codings</x:ref> ) 2596 <x:ref>t-codings</x:ref> = "trailers" | ( <x:ref>transfer-extension</x:ref> [ <x:ref>accept-params</x:ref> ] ) 2524 2597 </artwork></figure> 2525 2598 <t> … … 2585 2658 <iref primary="true" item="Trailer header" x:for-anchor=""/> 2586 2659 <iref primary="true" item="Headers" subitem="Trailer" x:for-anchor=""/> 2660 <x:anchor-alias value="Trailer"/> 2587 2661 <t> 2588 2662 The Trailer general field value indicates that the given set of … … 2591 2665 </t> 2592 2666 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/> 2593 Trailer = "Trailer" ":" 1#field-name2667 <x:ref>Trailer</x:ref> = "Trailer" ":" 1#<x:ref>field-name</x:ref> 2594 2668 </artwork></figure> 2595 2669 <t> … … 2618 2692 <iref primary="true" item="Transfer-Encoding header" x:for-anchor=""/> 2619 2693 <iref primary="true" item="Headers" subitem="Transfer-Encoding" x:for-anchor=""/> 2694 <x:anchor-alias value="Transfer-Encoding"/> 2620 2695 <t> 2621 2696 The Transfer-Encoding general-header field indicates what (if any) … … 2626 2701 </t> 2627 2702 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/> 2628 Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding2703 <x:ref>Transfer-Encoding</x:ref> = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref> 2629 2704 </artwork></figure> 2630 2705 <t> … … 2649 2724 <iref primary="true" item="Upgrade header" x:for-anchor=""/> 2650 2725 <iref primary="true" item="Headers" subitem="Upgrade" x:for-anchor=""/> 2726 <x:anchor-alias value="Upgrade"/> 2651 2727 <t> 2652 2728 The Upgrade general-header allows the client to specify what … … 2657 2733 </t> 2658 2734 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/> 2659 Upgrade = "Upgrade" ":" 1#product2735 <x:ref>Upgrade</x:ref> = "Upgrade" ":" 1#<x:ref>product</x:ref> 2660 2736 </artwork></figure> 2661 2737 <t> … … 2712 2788 <iref primary="true" item="Via header" x:for-anchor=""/> 2713 2789 <iref primary="true" item="Headers" subitem="Via" x:for-anchor=""/> 2790 <x:anchor-alias value="protocol-name"/> 2791 <x:anchor-alias value="protocol-version"/> 2792 <x:anchor-alias value="pseudonym"/> 2793 <x:anchor-alias value="received-by"/> 2794 <x:anchor-alias value="received-protocol"/> 2795 <x:anchor-alias value="Via"/> 2714 2796 <t> 2715 2797 The Via general-header field &MUST; be used by gateways and proxies to … … 2722 2804 </t> 2723 2805 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Via"/><iref primary="true" item="Grammar" subitem="received-protocol"/><iref primary="true" item="Grammar" subitem="protocol-name"/><iref primary="true" item="Grammar" subitem="protocol-version"/><iref primary="true" item="Grammar" subitem="received-by"/><iref primary="true" item="Grammar" subitem="pseudonym"/> 2724 Via = "Via" ":" 1#( received-protocol received-by [ comment] )2725 received-protocol = [ protocol-name "/" ] protocol-version2726 protocol-name = token2727 protocol-version = token2728 received-by = ( uri-host [ ":" port ] ) | pseudonym2729 pseudonym = token2806 <x:ref>Via</x:ref> = "Via" ":" 1#( <x:ref>received-protocol</x:ref> <x:ref>received-by</x:ref> [ <x:ref>comment</x:ref> ] ) 2807 <x:ref>received-protocol</x:ref> = [ <x:ref>protocol-name</x:ref> "/" ] <x:ref>protocol-version</x:ref> 2808 <x:ref>protocol-name</x:ref> = <x:ref>token</x:ref> 2809 <x:ref>protocol-version</x:ref> = <x:ref>token</x:ref> 2810 <x:ref>received-by</x:ref> = ( <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ) | <x:ref>pseudonym</x:ref> 2811 <x:ref>pseudonym</x:ref> = <x:ref>token</x:ref> 2730 2812 </artwork></figure> 2731 2813 <t> -
draft-ietf-httpbis/latest/p2-semantics.html
r228 r229 633 633 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="Augmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 634 634 </p> 635 <div id="rfc.figure.u.1"></div><pre class="inline"> DIGIT = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 636 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> comment = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 637 quoted-string = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 638 token = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 635 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 636 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> 637 <a href="#notation" class="smpl">comment</a> = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 638 <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 639 <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 639 640 </pre><div id="abnf.dependencies"> 640 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p>641 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 641 642 </div> 642 <div id="rfc.figure.u.3"></div><pre class="inline"> absoluteURI= <absoluteURI, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>643 fragment= <fragment, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>644 Host= <Host, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a>>645 HTTP-date= <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>>646 product= <product, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#product.tokens" title="Product Tokens">Section 3.5</a>>647 relativeURI= <relativeURI, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>648 TE= <TE, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>>649 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> Accept= <Accept, defined in <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>>650 Accept-Charset=643 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 644 <a href="#abnf.dependencies" class="smpl">fragment</a> = <fragment, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 645 <a href="#abnf.dependencies" class="smpl">Host</a> = <Host, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a>> 646 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>> 647 <a href="#abnf.dependencies" class="smpl">product</a> = <product, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#product.tokens" title="Product Tokens">Section 3.5</a>> 648 <a href="#abnf.dependencies" class="smpl">relativeURI</a> = <relativeURI, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 649 <a href="#abnf.dependencies" class="smpl">TE</a> = <TE, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>> 650 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept</a> = <Accept, defined in <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>> 651 <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> = 651 652 <Accept-Charset, defined in <a href="#Part3" id="rfc.xref.Part3.2"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 6.2</a>> 652 Accept-Encoding=653 <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> = 653 654 <Accept-Encoding, defined in <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 6.3</a>> 654 Accept-Language=655 <a href="#abnf.dependencies" class="smpl">Accept-Language</a> = 655 656 <Accept-Language, defined in <a href="#Part3" id="rfc.xref.Part3.4"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 6.4</a>> 656 </pre><div id="rfc.figure.u.5"></div><pre class="inline"> ETag= <ETag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a>>657 If-Match= <If-Match, defined in <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a>>658 If-Modified-Since=657 </pre><div id="rfc.figure.u.5"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">ETag</a> = <ETag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a>> 658 <a href="#abnf.dependencies" class="smpl">If-Match</a> = <If-Match, defined in <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a>> 659 <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> = 659 660 <If-Modified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 7.3</a>> 660 If-None-Match= <If-None-Match, defined in <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a>>661 If-Unmodified-Since=661 <a href="#abnf.dependencies" class="smpl">If-None-Match</a> = <If-None-Match, defined in <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a>> 662 <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> = 662 663 <If-Unmodified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.5"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 7.5</a>> 663 </pre><div id="rfc.figure.u.6"></div><pre class="inline"> Accept-Ranges= <Accept-Ranges, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a>>664 If-Range= <If-Range, defined in <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a>>665 Range= <Range, defined in <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a>>666 </pre><div id="rfc.figure.u.7"></div><pre class="inline"> Age= <Age, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a>>667 Vary= <Vary, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a>>668 </pre><div id="rfc.figure.u.8"></div><pre class="inline"> Authorization= <Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a>>669 Proxy-Authenticate=664 </pre><div id="rfc.figure.u.6"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> = <Accept-Ranges, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a>> 665 <a href="#abnf.dependencies" class="smpl">If-Range</a> = <If-Range, defined in <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a>> 666 <a href="#abnf.dependencies" class="smpl">Range</a> = <Range, defined in <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a>> 667 </pre><div id="rfc.figure.u.7"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Age</a> = <Age, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a>> 668 <a href="#abnf.dependencies" class="smpl">Vary</a> = <Vary, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a>> 669 </pre><div id="rfc.figure.u.8"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Authorization</a> = <Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a>> 670 <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> = 670 671 <Proxy-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.2"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a>> 671 Proxy-Authorization=672 <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> = 672 673 <Proxy-Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.3"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a>> 673 WWW-Authenticate=674 <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> = 674 675 <WWW-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.4"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a>> 675 676 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="method" href="#method">Method</a></h1> 676 677 <p id="rfc.section.3.p.1">The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive.</p> 677 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> Method= "OPTIONS" ; <a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS">Section 8.2</a>678 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#method" class="smpl">Method</a> = "OPTIONS" ; <a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS">Section 8.2</a> 678 679 | "GET" ; <a href="#GET" id="rfc.xref.GET.1" title="GET">Section 8.3</a> 679 680 | "HEAD" ; <a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD">Section 8.4</a> … … 683 684 | "TRACE" ; <a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE">Section 8.8</a> 684 685 | "CONNECT" ; <a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT">Section 8.9</a> 685 | extension-method686 extension-method = token686 | <a href="#method" class="smpl">extension-method</a> 687 <a href="#method" class="smpl">extension-method</a> = <a href="#notation" class="smpl">token</a> 687 688 </pre><p id="rfc.section.3.p.3">The list of methods allowed by a resource can be specified in an Allow header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 10.1</a>). The return code of the response always notifies the client whether a method is currently allowed on a resource, since the 688 689 set of allowed methods can change dynamically. An origin server <em class="bcp14">SHOULD</em> return the status code 405 (Method Not Allowed) if the method is known by the origin server but not allowed for the requested … … 695 696 method invocation. 696 697 </p> 697 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.3"></span> request-header = Accept; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>698 | Accept-Charset; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 6.2</a>699 | Accept-Encoding; <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 6.3</a>700 | Accept-Language; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 6.4</a>701 | Authorization; <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a>702 | Expect; <a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 10.2</a>703 | From; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 10.3</a>704 | Host; <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a>705 | If-Match; <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a>706 | If-Modified-Since; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 7.3</a>707 | If-None-Match; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a>708 | If-Range; <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a>709 | If-Unmodified-Since; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 7.5</a>710 | Max-Forwards; <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 10.5</a>711 | Proxy-Authorization; <a href="#Part7" id="rfc.xref.Part7.6"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a>712 | Range; <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a>713 | Referer; <a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 10.6</a>714 | TE; <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>715 | User-Agent; <a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 10.9</a>698 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#request.header.fields" class="smpl">request-header</a> = <a href="#abnf.dependencies" class="smpl">Accept</a> ; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a> 699 | <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> ; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 6.2</a> 700 | <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> ; <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 6.3</a> 701 | <a href="#abnf.dependencies" class="smpl">Accept-Language</a> ; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 6.4</a> 702 | <a href="#abnf.dependencies" class="smpl">Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a> 703 | <a href="#header.expect" class="smpl">Expect</a> ; <a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 10.2</a> 704 | <a href="#header.from" class="smpl">From</a> ; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 10.3</a> 705 | <a href="#abnf.dependencies" class="smpl">Host</a> ; <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a> 706 | <a href="#abnf.dependencies" class="smpl">If-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a> 707 | <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 7.3</a> 708 | <a href="#abnf.dependencies" class="smpl">If-None-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a> 709 | <a href="#abnf.dependencies" class="smpl">If-Range</a> ; <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a> 710 | <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 7.5</a> 711 | <a href="#header.max-forwards" class="smpl">Max-Forwards</a> ; <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 10.5</a> 712 | <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.6"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a> 713 | <a href="#abnf.dependencies" class="smpl">Range</a> ; <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a> 714 | <a href="#header.referer" class="smpl">Referer</a> ; <a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 10.6</a> 715 | <a href="#abnf.dependencies" class="smpl">TE</a> ; <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a> 716 | <a href="#header.user-agent" class="smpl">User-Agent</a> ; <a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 10.9</a> 716 717 </pre><p id="rfc.section.4.p.3">Request-header field names can be extended reliably only in combination with a change in the protocol version. However, new 717 718 or experimental header fields <em class="bcp14">MAY</em> be given the semantics of request-header fields if all parties in the communication recognize them to be request-header fields. … … 726 727 are presented below. The reason phrases listed here are only recommendations -- they <em class="bcp14">MAY</em> be replaced by local equivalents without affecting the protocol. 727 728 </p> 728 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> Status-Code=729 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 729 730 "100" ; <a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section 9.1.1</a>: Continue 730 731 | "101" ; <a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section 9.1.2</a>: Switching Protocols … … 767 768 | "504" ; <a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section 9.5.5</a>: Gateway Time-out 768 769 | "505" ; <a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section 9.5.6</a>: HTTP Version not supported 769 | extension-code770 | <a href="#request.header.fields" class="smpl">extension-code</a> 770 771 771 extension-code = 3DIGIT772 Reason-Phrase= *<TEXT, excluding CR, LF>772 <a href="#request.header.fields" class="smpl">extension-code</a> = 3<a href="#notation" class="smpl">DIGIT</a> 773 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *<TEXT, excluding CR, LF> 773 774 </pre><p id="rfc.section.5.p.4">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes, 774 775 though such understanding is obviously desirable. However, applications <em class="bcp14">MUST</em> understand the class of any status code, as indicated by the first digit, and treat any unrecognized response as being equivalent … … 782 783 the Request-URI. 783 784 </p> 784 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.7"></span> response-header = Accept-Ranges; <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a>785 | Age; <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a>786 | ETag; <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a>787 | Location; <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 10.4</a>788 | Proxy-Authenticate; <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a>789 | Retry-After; <a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 10.7</a>790 | Server; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 10.8</a>791 | Vary; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a>792 | WWW-Authenticate; <a href="#Part7" id="rfc.xref.Part7.8"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a>785 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#response.header.fields" class="smpl">response-header</a> = <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> ; <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a> 786 | <a href="#abnf.dependencies" class="smpl">Age</a> ; <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a> 787 | <a href="#abnf.dependencies" class="smpl">ETag</a> ; <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a> 788 | <a href="#header.location" class="smpl">Location</a> ; <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 10.4</a> 789 | <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a> 790 | <a href="#header.retry-after" class="smpl">Retry-After</a> ; <a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 10.7</a> 791 | <a href="#header.server" class="smpl">Server</a> ; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 10.8</a> 792 | <a href="#abnf.dependencies" class="smpl">Vary</a> ; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a> 793 | <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.8"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a> 793 794 </pre><p id="rfc.section.6.p.3">Response-header field names can be extended reliably only in combination with a change in the protocol version. However, new 794 795 or experimental header fields <em class="bcp14">MAY</em> be given the semantics of response-header fields if all parties in the communication recognize them to be response-header … … 1392 1393 of this field is strictly to inform the recipient of valid methods associated with the resource. An Allow header field <em class="bcp14">MUST</em> be present in a 405 (Method Not Allowed) response. 1393 1394 </p> 1394 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span> Allow = "Allow" ":" #Method1395 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span> <a href="#header.allow" class="smpl">Allow</a> = "Allow" ":" #<a href="#method" class="smpl">Method</a> 1395 1396 </pre><p id="rfc.section.10.1.p.3">Example of use:</p> 1396 1397 <div id="rfc.figure.u.14"></div><pre class="text"> Allow: GET, HEAD, PUT … … 1407 1408 <h2 id="rfc.section.10.2"><a href="#rfc.section.10.2">10.2</a> <a id="header.expect" href="#header.expect">Expect</a></h2> 1408 1409 <p id="rfc.section.10.2.p.1">The Expect request-header field is used to indicate that particular server behaviors are required by the client.</p> 1409 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span> Expect = "Expect" ":" 1#expectation1410 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span> <a href="#header.expect" class="smpl">Expect</a> = "Expect" ":" 1#<a href="#header.expect" class="smpl">expectation</a> 1410 1411 1411 expectation = "100-continue" | expectation-extension1412 expectation-extension = token [ "=" ( token | quoted-string)1413 * expect-params]1414 expect-params = ";" token [ "=" ( token | quoted-string) ]1412 <a href="#header.expect" class="smpl">expectation</a> = "100-continue" | <a href="#header.expect" class="smpl">expectation-extension</a> 1413 <a href="#header.expect" class="smpl">expectation-extension</a> = <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) 1414 *<a href="#header.expect" class="smpl">expect-params</a> ] 1415 <a href="#header.expect" class="smpl">expect-params</a> = ";" <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) ] 1415 1416 </pre><p id="rfc.section.10.2.p.3">A server that does not understand or is unable to comply with any of the expectation values in the Expect field of a request <em class="bcp14">MUST</em> respond with appropriate error status. The server <em class="bcp14">MUST</em> respond with a 417 (Expectation Failed) status if any of the expectations cannot be met or, if there are other problems with 1416 1417 the request, some other 4xx status. … … 1433 1434 <p id="rfc.section.10.3.p.1">The From request-header field, if given, <em class="bcp14">SHOULD</em> contain an Internet e-mail address for the human user who controls the requesting user agent. The address <em class="bcp14">SHOULD</em> be machine-usable, as defined by "mailbox" in <a href="http://tools.ietf.org/html/rfc2822#section-3.4">Section 3.4</a> of <a href="#RFC2822" id="rfc.xref.RFC2822.1"><cite title="Internet Message Format">[RFC2822]</cite></a>: 1434 1435 </p> 1435 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.14"></span> From = "From" ":" mailbox1436 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.14"></span> <a href="#header.from" class="smpl">From</a> = "From" ":" <a href="#header.from" class="smpl">mailbox</a> 1436 1437 1437 mailbox= <mailbox, defined in <a href="#RFC2822" id="rfc.xref.RFC2822.2"><cite title="Internet Message Format">[RFC2822]</cite></a>, <a href="http://tools.ietf.org/html/rfc2822#section-3.4">Section 3.4</a>>1438 <a href="#header.from" class="smpl">mailbox</a> = <mailbox, defined in <a href="#RFC2822" id="rfc.xref.RFC2822.2"><cite title="Internet Message Format">[RFC2822]</cite></a>, <a href="http://tools.ietf.org/html/rfc2822#section-3.4">Section 3.4</a>> 1438 1439 </pre><p id="rfc.section.10.3.p.3">An example is:</p> 1439 1440 <div id="rfc.figure.u.17"></div><pre class="text"> From: webmaster@example.org … … 1457 1458 URI. 1458 1459 </p> 1459 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.15"></span> Location = "Location" ":" absoluteURI [ "#" fragment]1460 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.15"></span> <a href="#header.location" class="smpl">Location</a> = "Location" ":" <a href="#abnf.dependencies" class="smpl">absoluteURI</a> [ "#" <a href="#abnf.dependencies" class="smpl">fragment</a> ] 1460 1461 </pre><p id="rfc.section.10.4.p.3">An example is:</p> 1461 1462 <div id="rfc.figure.u.19"></div><pre class="text"> Location: http://www.example.org/pub/WWW/People.html … … 1480 1481 useful when the client is attempting to trace a request chain which appears to be failing or looping in mid-chain. 1481 1482 </p> 1482 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.16"></span> Max-Forwards = "Max-Forwards" ":" 1*DIGIT1483 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.16"></span> <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = "Max-Forwards" ":" 1*<a href="#notation" class="smpl">DIGIT</a> 1483 1484 </pre><p id="rfc.section.10.5.p.3">The Max-Forwards value is a decimal integer indicating the remaining number of times this request message may be forwarded.</p> 1484 1485 <p id="rfc.section.10.5.p.4">Each proxy or gateway recipient of a TRACE or OPTIONS request containing a Max-Forwards header field <em class="bcp14">MUST</em> check and update its value prior to forwarding the request. If the received value is zero (0), the recipient <em class="bcp14">MUST NOT</em> forward the request; instead, it <em class="bcp14">MUST</em> respond as the final recipient. If the received Max-Forwards value is greater than zero, then the forwarded message <em class="bcp14">MUST</em> contain an updated Max-Forwards field with a value decremented by one (1). … … 1495 1496 obsolete or mistyped links to be traced for maintenance. The Referer field <em class="bcp14">MUST NOT</em> be sent if the Request-URI was obtained from a source that does not have its own URI, such as input from the user keyboard. 1496 1497 </p> 1497 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.17"></span> Referer = "Referer" ":" ( absoluteURI | relativeURI)1498 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.17"></span> <a href="#header.referer" class="smpl">Referer</a> = "Referer" ":" ( <a href="#abnf.dependencies" class="smpl">absoluteURI</a> | <a href="#abnf.dependencies" class="smpl">relativeURI</a> ) 1498 1499 </pre><p id="rfc.section.10.6.p.3">Example:</p> 1499 1500 <div id="rfc.figure.u.22"></div><pre class="text"> Referer: http://www.example.org/hypertext/Overview.html … … 1508 1509 the time of the response. 1509 1510 </p> 1510 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.18"></span> Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds ) 1511 </pre><p id="rfc.section.10.7.p.3">Time spans are non-negative decimal integers, representing time in seconds.</p> 1512 <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.19"></span> delta-seconds = 1*DIGIT 1511 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.18"></span> <a href="#header.retry-after" class="smpl">Retry-After</a> = "Retry-After" ":" ( <a href="#abnf.dependencies" class="smpl">HTTP-date</a> | <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ) 1512 </pre><div id="rule.delta-seconds"> 1513 <p id="rfc.section.10.7.p.3"> Time spans are non-negative decimal integers, representing time in seconds.</p> 1514 </div> 1515 <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.19"></span> <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 1513 1516 </pre><p id="rfc.section.10.7.p.5">Two examples of its use are</p> 1514 1517 <div id="rfc.figure.u.25"></div><pre class="text"> Retry-After: Fri, 31 Dec 1999 23:59:59 GMT … … 1522 1525 for identifying the application. 1523 1526 </p> 1524 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.20"></span> Server = "Server" ":" 1*( product | comment)1527 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.20"></span> <a href="#header.server" class="smpl">Server</a> = "Server" ":" 1*( <a href="#abnf.dependencies" class="smpl">product</a> | <a href="#notation" class="smpl">comment</a> ) 1525 1528 </pre><p id="rfc.section.10.8.p.3">Example:</p> 1526 1529 <div id="rfc.figure.u.27"></div><pre class="text"> Server: CERN/3.0 libwww/2.17 … … 1541 1544 product tokens are listed in order of their significance for identifying the application. 1542 1545 </p> 1543 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.21"></span> User-Agent = "User-Agent" ":" 1*( product | comment)1546 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.21"></span> <a href="#header.user-agent" class="smpl">User-Agent</a> = "User-Agent" ":" 1*( <a href="#abnf.dependencies" class="smpl">product</a> | <a href="#notation" class="smpl">comment</a> ) 1544 1547 </pre><p id="rfc.section.10.9.p.3">Example:</p> 1545 1548 <div id="rfc.figure.u.29"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 -
draft-ietf-httpbis/latest/p2-semantics.xml
r228 r229 291 291 292 292 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 293 <x:anchor-alias value="comment"/> 294 <x:anchor-alias value="DIGIT"/> 295 <x:anchor-alias value="quoted-string"/> 296 <x:anchor-alias value="token"/> 293 297 <t> 294 298 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 298 302 </t> 299 303 <figure><artwork type="abnf2616"> 300 DIGIT= <DIGIT, defined in &basic-rules;>304 <x:ref>DIGIT</x:ref> = <DIGIT, defined in &basic-rules;> 301 305 </artwork></figure> 302 306 <figure><artwork type="abnf2616"> 303 comment = <comment, defined in &basic-rules;> 304 quoted-string = <quoted-string, defined in &basic-rules;> 305 token = <token, defined in &basic-rules;> 307 <x:anchor-alias value="Accept"/> 308 <x:ref>comment</x:ref> = <comment, defined in &basic-rules;> 309 <x:ref>quoted-string</x:ref> = <quoted-string, defined in &basic-rules;> 310 <x:ref>token</x:ref> = <token, defined in &basic-rules;> 306 311 </artwork></figure> 307 312 <t anchor="abnf.dependencies"> 313 <x:anchor-alias value="absoluteURI"/> 314 <x:anchor-alias value="Accept"/> 315 <x:anchor-alias value="Accept-Charset"/> 316 <x:anchor-alias value="Accept-Encoding"/> 317 <x:anchor-alias value="Accept-Language"/> 318 <x:anchor-alias value="Accept-Ranges"/> 319 <x:anchor-alias value="Age"/> 320 <x:anchor-alias value="Authorization"/> 321 <x:anchor-alias value="ETag"/> 322 <x:anchor-alias value="fragment"/> 323 <x:anchor-alias value="Host"/> 324 <x:anchor-alias value="HTTP-date"/> 325 <x:anchor-alias value="If-Match"/> 326 <x:anchor-alias value="If-Modified-Since"/> 327 <x:anchor-alias value="If-None-Match"/> 328 <x:anchor-alias value="If-Range"/> 329 <x:anchor-alias value="If-Unmodified-Since"/> 330 <x:anchor-alias value="product"/> 331 <x:anchor-alias value="Proxy-Authenticate"/> 332 <x:anchor-alias value="Proxy-Authorization"/> 333 <x:anchor-alias value="Range"/> 334 <x:anchor-alias value="relativeURI"/> 335 <x:anchor-alias value="TE"/> 336 <x:anchor-alias value="Vary"/> 337 <x:anchor-alias value="WWW-Authenticate"/> 308 338 The ABNF rules below are defined in other parts: 309 339 </t> 310 340 <figure><!--Part1--><artwork type="abnf2616"> 311 absoluteURI= <absoluteURI, defined in &general-syntax;>312 fragment= <fragment, defined in &general-syntax;>313 Host= <Host, defined in &header-host;>314 HTTP-date= <HTTP-date, defined in &full-date;>315 product= <product, defined in &product-tokens;>316 relativeURI= <relativeURI, defined in &general-syntax;>317 TE= <TE, defined in &header-te;>341 <x:ref>absoluteURI</x:ref> = <absoluteURI, defined in &general-syntax;> 342 <x:ref>fragment</x:ref> = <fragment, defined in &general-syntax;> 343 <x:ref>Host</x:ref> = <Host, defined in &header-host;> 344 <x:ref>HTTP-date</x:ref> = <HTTP-date, defined in &full-date;> 345 <x:ref>product</x:ref> = <product, defined in &product-tokens;> 346 <x:ref>relativeURI</x:ref> = <relativeURI, defined in &general-syntax;> 347 <x:ref>TE</x:ref> = <TE, defined in &header-te;> 318 348 </artwork></figure> 319 349 <figure><!--Part3--><artwork type="abnf2616"> 320 Accept= <Accept, defined in &header-accept;>321 Accept-Charset=350 <x:ref>Accept</x:ref> = <Accept, defined in &header-accept;> 351 <x:ref>Accept-Charset</x:ref> = 322 352 <Accept-Charset, defined in &header-accept-charset;> 323 Accept-Encoding=353 <x:ref>Accept-Encoding</x:ref> = 324 354 <Accept-Encoding, defined in &header-accept-encoding;> 325 Accept-Language=355 <x:ref>Accept-Language</x:ref> = 326 356 <Accept-Language, defined in &header-accept-language;> 327 357 </artwork></figure> 328 358 <figure><!--Part4--><artwork type="abnf2616"> 329 ETag= <ETag, defined in &header-etag;>330 If-Match= <If-Match, defined in &header-if-match;>331 If-Modified-Since=359 <x:ref>ETag</x:ref> = <ETag, defined in &header-etag;> 360 <x:ref>If-Match</x:ref> = <If-Match, defined in &header-if-match;> 361 <x:ref>If-Modified-Since</x:ref> = 332 362 <If-Modified-Since, defined in &header-if-modified-since;> 333 If-None-Match= <If-None-Match, defined in &header-if-none-match;>334 If-Unmodified-Since=363 <x:ref>If-None-Match</x:ref> = <If-None-Match, defined in &header-if-none-match;> 364 <x:ref>If-Unmodified-Since</x:ref> = 335 365 <If-Unmodified-Since, defined in &header-if-unmodified-since;> 336 366 </artwork></figure> 337 367 <figure><!--Part5--><artwork type="abnf2616"> 338 Accept-Ranges= <Accept-Ranges, defined in &header-accept-ranges;>339 If-Range= <If-Range, defined in &header-if-range;>340 Range= <Range, defined in &header-range;>368 <x:ref>Accept-Ranges</x:ref> = <Accept-Ranges, defined in &header-accept-ranges;> 369 <x:ref>If-Range</x:ref> = <If-Range, defined in &header-if-range;> 370 <x:ref>Range</x:ref> = <Range, defined in &header-range;> 341 371 </artwork></figure> 342 372 <figure><!--Part6--><artwork type="abnf2616"> 343 Age= <Age, defined in &header-age;>344 Vary= <Vary, defined in &header-vary;>373 <x:ref>Age</x:ref> = <Age, defined in &header-age;> 374 <x:ref>Vary</x:ref> = <Vary, defined in &header-vary;> 345 375 </artwork><!--Part7--></figure> 346 376 <figure><artwork type="abnf2616"> 347 Authorization= <Authorization, defined in &header-authorization;>348 Proxy-Authenticate=377 <x:ref>Authorization</x:ref> = <Authorization, defined in &header-authorization;> 378 <x:ref>Proxy-Authenticate</x:ref> = 349 379 <Proxy-Authenticate, defined in &header-proxy-authenticate;> 350 Proxy-Authorization=380 <x:ref>Proxy-Authorization</x:ref> = 351 381 <Proxy-Authorization, defined in &header-proxy-authorization;> 352 WWW-Authenticate=382 <x:ref>WWW-Authenticate</x:ref> = 353 383 <WWW-Authenticate, defined in &header-www-authenticate;> 354 384 </artwork></figure> … … 356 386 357 387 <section title="Method" anchor="method"> 388 <x:anchor-alias value="Method"/> 389 <x:anchor-alias value="extension-method"/> 358 390 <t> 359 391 The Method token indicates the method to be performed on the … … 361 393 </t> 362 394 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/> 363 Method= "OPTIONS" ; <xref target="OPTIONS"/>395 <x:ref>Method</x:ref> = "OPTIONS" ; <xref target="OPTIONS"/> 364 396 | "GET" ; <xref target="GET"/> 365 397 | "HEAD" ; <xref target="HEAD"/> … … 369 401 | "TRACE" ; <xref target="TRACE"/> 370 402 | "CONNECT" ; <xref target="CONNECT"/> 371 | extension-method372 extension-method = token403 | <x:ref>extension-method</x:ref> 404 <x:ref>extension-method</x:ref> = <x:ref>token</x:ref> 373 405 </artwork></figure> 374 406 <t> … … 389 421 390 422 <section title="Request Header Fields" anchor="request.header.fields"> 423 <x:anchor-alias value="extension-code"/> 424 <x:anchor-alias value="request-header"/> 391 425 <t> 392 426 The request-header fields allow the client to pass additional … … 397 431 </t> 398 432 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-header"/> 399 request-header = Accept; &header-accept;400 | Accept-Charset; &header-accept-charset;401 | Accept-Encoding; &header-accept-encoding;402 | Accept-Language; &header-accept-language;403 | Authorization; &header-authorization;404 | Expect; <xref target="header.expect"/>405 | From; <xref target="header.from"/>406 | Host; &header-host;407 | If-Match; &header-if-match;408 | If-Modified-Since; &header-if-modified-since;409 | If-None-Match; &header-if-none-match;410 | If-Range; &header-if-range;411 | If-Unmodified-Since; &header-if-unmodified-since;412 | Max-Forwards; <xref target="header.max-forwards"/>413 | Proxy-Authorization; &header-proxy-authorization;414 | Range; &header-range;415 | Referer; <xref target="header.referer"/>416 | TE; &header-te;417 | User-Agent; <xref target="header.user-agent"/>433 <x:ref>request-header</x:ref> = <x:ref>Accept</x:ref> ; &header-accept; 434 | <x:ref>Accept-Charset</x:ref> ; &header-accept-charset; 435 | <x:ref>Accept-Encoding</x:ref> ; &header-accept-encoding; 436 | <x:ref>Accept-Language</x:ref> ; &header-accept-language; 437 | <x:ref>Authorization</x:ref> ; &header-authorization; 438 | <x:ref>Expect</x:ref> ; <xref target="header.expect"/> 439 | <x:ref>From</x:ref> ; <xref target="header.from"/> 440 | <x:ref>Host</x:ref> ; &header-host; 441 | <x:ref>If-Match</x:ref> ; &header-if-match; 442 | <x:ref>If-Modified-Since</x:ref> ; &header-if-modified-since; 443 | <x:ref>If-None-Match</x:ref> ; &header-if-none-match; 444 | <x:ref>If-Range</x:ref> ; &header-if-range; 445 | <x:ref>If-Unmodified-Since</x:ref> ; &header-if-unmodified-since; 446 | <x:ref>Max-Forwards</x:ref> ; <xref target="header.max-forwards"/> 447 | <x:ref>Proxy-Authorization</x:ref> ; &header-proxy-authorization; 448 | <x:ref>Range</x:ref> ; &header-range; 449 | <x:ref>Referer</x:ref> ; <xref target="header.referer"/> 450 | <x:ref>TE</x:ref> ; &header-te; 451 | <x:ref>User-Agent</x:ref> ; <xref target="header.user-agent"/> 418 452 </artwork></figure> 419 453 <t> … … 428 462 429 463 <section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase"> 464 <x:anchor-alias value="Reason-Phrase"/> 465 <x:anchor-alias value="Status-Code"/> 430 466 <t> 431 467 The Status-Code element is a 3-digit integer result code of the … … 445 481 </t> 446 482 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/> 447 Status-Code=483 <x:ref>Status-Code</x:ref> = 448 484 "100" ; <xref target="status.100"/>: Continue 449 485 | "101" ; <xref target="status.101"/>: Switching Protocols … … 486 522 | "504" ; <xref target="status.504"/>: Gateway Time-out 487 523 | "505" ; <xref target="status.505"/>: HTTP Version not supported 488 | extension-code489 490 extension-code = 3DIGIT491 Reason-Phrase = *<TEXT, excluding CR, LF>524 | <x:ref>extension-code</x:ref> 525 526 <x:ref>extension-code</x:ref> = 3<x:ref>DIGIT</x:ref> 527 <x:ref>Reason-Phrase</x:ref> = *<<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>> 492 528 </artwork></figure> 493 529 <t> … … 509 545 510 546 <section title="Response Header Fields" anchor="response.header.fields"> 547 <x:anchor-alias value="response-header"/> 511 548 <t> 512 549 The response-header fields allow the server to pass additional … … 516 553 </t> 517 554 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="response-header"/> 518 response-header = Accept-Ranges; &header-accept-ranges;519 | Age; &header-age;520 | ETag; &header-etag;521 | Location; <xref target="header.location"/>522 | Proxy-Authenticate; &header-proxy-authenticate;523 | Retry-After; <xref target="header.retry-after"/>524 | Server; <xref target="header.server"/>525 | Vary; &header-vary;526 | WWW-Authenticate; &header-www-authenticate;555 <x:ref>response-header</x:ref> = <x:ref>Accept-Ranges</x:ref> ; &header-accept-ranges; 556 | <x:ref>Age</x:ref> ; &header-age; 557 | <x:ref>ETag</x:ref> ; &header-etag; 558 | <x:ref>Location</x:ref> ; <xref target="header.location"/> 559 | <x:ref>Proxy-Authenticate</x:ref> ; &header-proxy-authenticate; 560 | <x:ref>Retry-After</x:ref> ; <xref target="header.retry-after"/> 561 | <x:ref>Server</x:ref> ; <xref target="header.server"/> 562 | <x:ref>Vary</x:ref> ; &header-vary; 563 | <x:ref>WWW-Authenticate</x:ref> ; &header-www-authenticate; 527 564 </artwork></figure> 528 565 <t> … … 1694 1731 <iref primary="true" item="Allow header" x:for-anchor=""/> 1695 1732 <iref primary="true" item="Headers" subitem="Allow" x:for-anchor=""/> 1733 <x:anchor-alias value="Allow"/> 1696 1734 <t> 1697 1735 The Allow entity-header field lists the set of methods supported … … 1702 1740 </t> 1703 1741 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Allow"/> 1704 Allow = "Allow" ":" #Method1742 <x:ref>Allow</x:ref> = "Allow" ":" #<x:ref>Method</x:ref> 1705 1743 </artwork></figure> 1706 1744 <t> … … 1733 1771 <iref primary="true" item="Expect header" x:for-anchor=""/> 1734 1772 <iref primary="true" item="Headers" subitem="Expect" x:for-anchor=""/> 1773 <x:anchor-alias value="Expect"/> 1774 <x:anchor-alias value="expectation"/> 1775 <x:anchor-alias value="expectation-extension"/> 1776 <x:anchor-alias value="expect-params"/> 1735 1777 <t> 1736 1778 The Expect request-header field is used to indicate that particular … … 1738 1780 </t> 1739 1781 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expect"/><iref primary="true" item="Grammar" subitem="expectation"/><iref primary="true" item="Grammar" subitem="expectation-extension"/><iref primary="true" item="Grammar" subitem="expect-params"/> 1740 Expect = "Expect" ":" 1#expectation1782 <x:ref>Expect</x:ref> = "Expect" ":" 1#<x:ref>expectation</x:ref> 1741 1783 1742 expectation = "100-continue" | expectation-extension1743 expectation-extension = token [ "=" ( token | quoted-string)1744 * expect-params]1745 expect-params = ";" token [ "=" ( token | quoted-string) ]1784 <x:ref>expectation</x:ref> = "100-continue" | <x:ref>expectation-extension</x:ref> 1785 <x:ref>expectation-extension</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) 1786 *<x:ref>expect-params</x:ref> ] 1787 <x:ref>expect-params</x:ref> = ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ] 1746 1788 </artwork></figure> 1747 1789 <t> … … 1783 1825 <iref primary="true" item="From header" x:for-anchor=""/> 1784 1826 <iref primary="true" item="Headers" subitem="From" x:for-anchor=""/> 1827 <x:anchor-alias value="From"/> 1828 <x:anchor-alias value="mailbox"/> 1785 1829 <t> 1786 1830 The From request-header field, if given, &SHOULD; contain an Internet … … 1790 1834 </t> 1791 1835 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="From"/> 1792 From = "From" ":" mailbox1836 <x:ref>From</x:ref> = "From" ":" <x:ref>mailbox</x:ref> 1793 1837 1794 mailbox= <mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>>1838 <x:ref>mailbox</x:ref> = <mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>> 1795 1839 </artwork></figure> 1796 1840 <t> … … 1828 1872 <iref primary="true" item="Location header" x:for-anchor=""/> 1829 1873 <iref primary="true" item="Headers" subitem="Location" x:for-anchor=""/> 1874 <x:anchor-alias value="Location"/> 1830 1875 <t> 1831 1876 The Location response-header field is used to redirect the recipient … … 1838 1883 </t> 1839 1884 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Location"/> 1840 Location = "Location" ":" absoluteURI [ "#" fragment]1885 <x:ref>Location</x:ref> = "Location" ":" <x:ref>absoluteURI</x:ref> [ "#" <x:ref>fragment</x:ref> ] 1841 1886 </artwork></figure> 1842 1887 <t> … … 1868 1913 <iref primary="true" item="Max-Forwards header" x:for-anchor=""/> 1869 1914 <iref primary="true" item="Headers" subitem="Max-Forwards" x:for-anchor=""/> 1915 <x:anchor-alias value="Max-Forwards"/> 1870 1916 <t> 1871 1917 The Max-Forwards request-header field provides a mechanism with the … … 1877 1923 </t> 1878 1924 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Max-Forwards"/> 1879 Max-Forwards = "Max-Forwards" ":" 1*DIGIT1925 <x:ref>Max-Forwards</x:ref> = "Max-Forwards" ":" 1*<x:ref>DIGIT</x:ref> 1880 1926 </artwork></figure> 1881 1927 <t> … … 1902 1948 <iref primary="true" item="Referer header" x:for-anchor=""/> 1903 1949 <iref primary="true" item="Headers" subitem="Referer" x:for-anchor=""/> 1950 <x:anchor-alias value="Referer"/> 1904 1951 <t> 1905 1952 The Referer[sic] request-header field allows the client to specify, … … 1914 1961 </t> 1915 1962 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Referer"/> 1916 Referer = "Referer" ":" ( absoluteURI | relativeURI)1963 <x:ref>Referer</x:ref> = "Referer" ":" ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> ) 1917 1964 </artwork></figure> 1918 1965 <t> … … 1932 1979 <iref primary="true" item="Retry-After header" x:for-anchor=""/> 1933 1980 <iref primary="true" item="Headers" subitem="Retry-After" x:for-anchor=""/> 1981 <x:anchor-alias value="Retry-After"/> 1934 1982 <t> 1935 1983 The Retry-After response-header field can be used with a 503 (Service … … 1942 1990 </t> 1943 1991 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Retry-After"/> 1944 Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds)1992 <x:ref>Retry-After</x:ref> = "Retry-After" ":" ( <x:ref>HTTP-date</x:ref> | <x:ref>delta-seconds</x:ref> ) 1945 1993 </artwork></figure> 1946 <t> 1994 <t anchor="rule.delta-seconds"> 1995 <x:anchor-alias value="delta-seconds"/> 1947 1996 Time spans are non-negative decimal integers, representing time in 1948 1997 seconds. 1949 1998 </t> 1950 1999 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/> 1951 delta-seconds = 1*DIGIT2000 <x:ref>delta-seconds</x:ref> = 1*<x:ref>DIGIT</x:ref> 1952 2001 </artwork></figure> 1953 2002 <t> … … 1966 2015 <iref primary="true" item="Server header" x:for-anchor=""/> 1967 2016 <iref primary="true" item="Headers" subitem="Server" x:for-anchor=""/> 2017 <x:anchor-alias value="Server"/> 1968 2018 <t> 1969 2019 The Server response-header field contains information about the … … 1975 2025 </t> 1976 2026 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Server"/> 1977 Server = "Server" ":" 1*( product | comment)2027 <x:ref>Server</x:ref> = "Server" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> ) 1978 2028 </artwork></figure> 1979 2029 <t> … … 2000 2050 <iref primary="true" item="User-Agent header" x:for-anchor=""/> 2001 2051 <iref primary="true" item="Headers" subitem="User-Agent" x:for-anchor=""/> 2052 <x:anchor-alias value="User-Agent"/> 2002 2053 <t> 2003 2054 The User-Agent request-header field contains information about the … … 2013 2064 </t> 2014 2065 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="User-Agent"/> 2015 User-Agent = "User-Agent" ":" 1*( product | comment)2066 <x:ref>User-Agent</x:ref> = "User-Agent" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> ) 2016 2067 </artwork></figure> 2017 2068 <t> -
draft-ietf-httpbis/latest/p3-payload.html
r228 r229 591 591 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="Augmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 592 592 </p> 593 <div id="rfc.figure.u.1"></div><pre class="inline"> ALPHA= <ALPHA, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>594 DIGIT= <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>595 OCTET= <OCTET, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>596 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> quoted-string= <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>597 token= <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>593 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">ALPHA</a> = <ALPHA, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 594 <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 595 <a href="#notation" class="smpl">OCTET</a> = <OCTET, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 596 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 597 <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 598 598 </pre><div id="abnf.dependencies"> 599 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p>599 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 600 600 </div> 601 <div id="rfc.figure.u.3"></div><pre class="inline"> absoluteURI= <absoluteURI, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>602 Content-Length= <Content-Length, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.content-length" title="Content-Length">Section 8.2</a>>603 relativeURI= <relativeURI, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>604 message-header= <message-header, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>>605 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> Allow= <Allow, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#header.allow" title="Allow">Section 10.1</a>>606 </pre><div id="rfc.figure.u.5"></div><pre class="inline"> Last-Modified= <Last-Modified, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 7.6</a>>607 </pre><div id="rfc.figure.u.6"></div><pre class="inline"> Content-Range= <Content-Range, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.content-range" title="Content-Range">Section 6.2</a>>608 </pre><div id="rfc.figure.u.7"></div><pre class="inline"> Expires= <Expires, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.expires" title="Expires">Section 16.3</a>>601 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 602 <a href="#abnf.dependencies" class="smpl">Content-Length</a> = <Content-Length, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.content-length" title="Content-Length">Section 8.2</a>> 603 <a href="#abnf.dependencies" class="smpl">relativeURI</a> = <relativeURI, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 604 <a href="#abnf.dependencies" class="smpl">message-header</a> = <message-header, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>> 605 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Allow</a> = <Allow, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#header.allow" title="Allow">Section 10.1</a>> 606 </pre><div id="rfc.figure.u.5"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Last-Modified</a> = <Last-Modified, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 7.6</a>> 607 </pre><div id="rfc.figure.u.6"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Content-Range</a> = <Content-Range, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.content-range" title="Content-Range">Section 6.2</a>> 608 </pre><div id="rfc.figure.u.7"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Expires</a> = <Expires, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.expires" title="Expires">Section 16.3</a>> 609 609 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 610 610 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="character.sets" href="#character.sets">Character Sets</a></h2> … … 623 623 </dd> 624 624 </dl> 625 <p id="rfc.section.3.1.p.4">HTTP character sets are identified by case-insensitive tokens. The complete set of tokens is defined by the IANA Character 626 Set registry (<<a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a>>). 627 </p> 628 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.1"></span> charset = token 625 <div id="rule.charset"> 626 <p id="rfc.section.3.1.p.4"> HTTP character sets are identified by case-insensitive tokens. The complete set of tokens is defined by the IANA Character 627 Set registry (<<a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a>>). 628 </p> 629 </div> 630 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#rule.charset" class="smpl">charset</a> = <a href="#notation" class="smpl">token</a> 629 631 </pre><p id="rfc.section.3.1.p.6">Although HTTP allows an arbitrary token to be used as a charset value, any token that has a predefined value within the IANA 630 632 Character Set registry <em class="bcp14">MUST</em> represent the character set defined by that registry. Applications <em class="bcp14">SHOULD</em> limit their use of character sets to those defined by the IANA registry. … … 649 651 decoded by the recipient. 650 652 </p> 651 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.2"></span> content-coding = token653 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.2"></span> <a href="#content.codings" class="smpl">content-coding</a> = <a href="#notation" class="smpl">token</a> 652 654 </pre><p id="rfc.section.3.2.p.3">All content-coding values are case-insensitive. HTTP/1.1 uses content-coding values in the Accept-Encoding (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.1" title="Accept-Encoding">Section 6.3</a>) and Content-Encoding (<a href="#header.content-encoding" id="rfc.xref.header.content-encoding.1" title="Content-Encoding">Section 6.5</a>) header fields. Although the value describes the content-coding, what is more important is that it indicates what decoding 653 655 mechanism will be required to remove the encoding. … … 693 695 <p id="rfc.section.3.3.p.1">HTTP uses Internet Media Types <a href="#RFC2046" id="rfc.xref.RFC2046.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a> in the Content-Type (<a href="#header.content-type" id="rfc.xref.header.content-type.1" title="Content-Type">Section 6.9</a>) and Accept (<a href="#header.accept" id="rfc.xref.header.accept.1" title="Accept">Section 6.1</a>) header fields in order to provide open and extensible data typing and type negotiation. 694 696 </p> 695 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> media-type = type "/" subtype *( ";" parameter ) 696 type = token 697 subtype = token 698 </pre><p id="rfc.section.3.3.p.3">Parameters <em class="bcp14">MAY</em> follow the type/subtype in the form of attribute/value pairs. 699 </p> 700 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span> parameter = attribute "=" value 701 attribute = token 702 value = token | quoted-string 697 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#media.types" class="smpl">media-type</a> = <a href="#media.types" class="smpl">type</a> "/" <a href="#media.types" class="smpl">subtype</a> *( ";" <a href="#rule.parameter" class="smpl">parameter</a> ) 698 <a href="#media.types" class="smpl">type</a> = <a href="#notation" class="smpl">token</a> 699 <a href="#media.types" class="smpl">subtype</a> = <a href="#notation" class="smpl">token</a> 700 </pre><div id="rule.parameter"> 701 <p id="rfc.section.3.3.p.3"> Parameters <em class="bcp14">MAY</em> follow the type/subtype in the form of attribute/value pairs. 702 </p> 703 </div> 704 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span> <a href="#rule.parameter" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> "=" <a href="#rule.parameter" class="smpl">value</a> 705 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#notation" class="smpl">token</a> 706 <a href="#rule.parameter" class="smpl">value</a> = <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> 703 707 </pre><p id="rfc.section.3.3.p.5">The type, subtype, and parameter attribute names are case-insensitive. Parameter values might or might not be case-sensitive, 704 708 depending on the semantics of the parameter name. Linear white space (LWS) <em class="bcp14">MUST NOT</em> be used between the type and subtype, nor between an attribute and its value. The presence or absence of a parameter might … … 751 755 a quality value of 0, then content with this parameter is `not acceptable' for the client. HTTP/1.1 applications <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values <em class="bcp14">SHOULD</em> also be limited in this fashion. 752 756 </p> 753 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.10"></span> qvalue = ( "0" [ "." 0*3DIGIT] )757 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.10"></span> <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#notation" class="smpl">DIGIT</a> ] ) 754 758 | ( "1" [ "." 0*3("0") ] ) 755 759 </pre><p id="rfc.section.3.4.p.3">"Quality values" is a misnomer, since these values merely represent relative degradation in desired quality.</p> … … 761 765 <p id="rfc.section.3.5.p.2">The syntax and registry of HTTP language tags is the same as that defined by <a href="#RFC1766" id="rfc.xref.RFC1766.1"><cite title="Tags for the Identification of Languages">[RFC1766]</cite></a>. In summary, a language tag is composed of 1 or more parts: A primary language tag and a possibly empty series of subtags: 762 766 </p> 763 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span> language-tag = primary-tag *( "-" subtag)764 primary-tag = 1*8ALPHA765 subtag = 1*8ALPHA767 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span> <a href="#language.tags" class="smpl">language-tag</a> = <a href="#language.tags" class="smpl">primary-tag</a> *( "-" <a href="#language.tags" class="smpl">subtag</a> ) 768 <a href="#language.tags" class="smpl">primary-tag</a> = 1*8<a href="#notation" class="smpl">ALPHA</a> 769 <a href="#language.tags" class="smpl">subtag</a> = 1*8<a href="#notation" class="smpl">ALPHA</a> 766 770 </pre><p id="rfc.section.3.5.p.4">White space is not allowed within the tag and all tags are case-insensitive. The name space of language tags is administered 767 771 by the IANA. Example tags include: … … 783 787 by the request. 784 788 </p> 785 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span> entity-header = Allow; <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#header.allow" title="Allow">Section 10.1</a>786 | Content-Encoding; <a href="#header.content-encoding" id="rfc.xref.header.content-encoding.2" title="Content-Encoding">Section 6.5</a>787 | Content-Language; <a href="#header.content-language" id="rfc.xref.header.content-language.1" title="Content-Language">Section 6.6</a>788 | Content-Length; <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.content-length" title="Content-Length">Section 8.2</a>789 | Content-Location; <a href="#header.content-location" id="rfc.xref.header.content-location.1" title="Content-Location">Section 6.7</a>790 | Content-MD5; <a href="#header.content-md5" id="rfc.xref.header.content-md5.1" title="Content-MD5">Section 6.8</a>791 | Content-Range; <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.content-range" title="Content-Range">Section 6.2</a>792 | Content-Type; <a href="#header.content-type" id="rfc.xref.header.content-type.2" title="Content-Type">Section 6.9</a>793 | Expires; <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.expires" title="Expires">Section 16.3</a>794 | Last-Modified; <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 7.6</a>795 | extension-header789 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span> <a href="#entity.header.fields" class="smpl">entity-header</a> = <a href="#abnf.dependencies" class="smpl">Allow</a> ; <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#header.allow" title="Allow">Section 10.1</a> 790 | <a href="#header.content-encoding" class="smpl">Content-Encoding</a> ; <a href="#header.content-encoding" id="rfc.xref.header.content-encoding.2" title="Content-Encoding">Section 6.5</a> 791 | <a href="#header.content-language" class="smpl">Content-Language</a> ; <a href="#header.content-language" id="rfc.xref.header.content-language.1" title="Content-Language">Section 6.6</a> 792 | <a href="#abnf.dependencies" class="smpl">Content-Length</a> ; <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.content-length" title="Content-Length">Section 8.2</a> 793 | <a href="#header.content-location" class="smpl">Content-Location</a> ; <a href="#header.content-location" id="rfc.xref.header.content-location.1" title="Content-Location">Section 6.7</a> 794 | <a href="#header.content-md5" class="smpl">Content-MD5</a> ; <a href="#header.content-md5" id="rfc.xref.header.content-md5.1" title="Content-MD5">Section 6.8</a> 795 | <a href="#abnf.dependencies" class="smpl">Content-Range</a> ; <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.content-range" title="Content-Range">Section 6.2</a> 796 | <a href="#header.content-type" class="smpl">Content-Type</a> ; <a href="#header.content-type" id="rfc.xref.header.content-type.2" title="Content-Type">Section 6.9</a> 797 | <a href="#abnf.dependencies" class="smpl">Expires</a> ; <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.expires" title="Expires">Section 16.3</a> 798 | <a href="#abnf.dependencies" class="smpl">Last-Modified</a> ; <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 7.6</a> 799 | <a href="#entity.header.fields" class="smpl">extension-header</a> 796 800 797 extension-header = message-header801 <a href="#entity.header.fields" class="smpl">extension-header</a> = <a href="#abnf.dependencies" class="smpl">message-header</a> 798 802 </pre><p id="rfc.section.4.1.p.3">The extension-header mechanism allows additional entity-header fields to be defined without changing the protocol, but these 799 803 fields cannot be assumed to be recognizable by the recipient. Unrecognized header fields <em class="bcp14">SHOULD</em> be ignored by the recipient and <em class="bcp14">MUST</em> be forwarded by transparent proxies. … … 801 805 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="entity.body" href="#entity.body">Entity Body</a></h2> 802 806 <p id="rfc.section.4.2.p.1">The entity-body (if any) sent with an HTTP request or response is in a format and encoding defined by the entity-header fields.</p> 803 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.16"></span> entity-body = *OCTET807 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.16"></span> <a href="#entity.body" class="smpl">entity-body</a> = *<a href="#notation" class="smpl">OCTET</a> 804 808 </pre><p id="rfc.section.4.2.p.3">An entity-body is only present in a message when a message-body is present, as described in <a href="p1-messaging.html#message.body" title="Message Body">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. The entity-body is obtained from the message-body by decoding any Transfer-Encoding that might have been applied to ensure 805 809 safe and proper transfer of the message. … … 913 917 for an in-line image. 914 918 </p> 915 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span> Accept= "Accept" ":"916 #( media-range [ accept-params] )919 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span> <a href="#header.accept" class="smpl">Accept</a> = "Accept" ":" 920 #( <a href="#header.accept" class="smpl">media-range</a> [ <a href="#header.accept" class="smpl">accept-params</a> ] ) 917 921 918 media-range= ( "*/*"919 | ( type"/" "*" )920 | ( type "/" subtype)921 ) *( ";" parameter)922 accept-params = ";" "q" "=" qvalue *( accept-extension)923 accept-extension = ";" token [ "=" ( token | quoted-string) ]922 <a href="#header.accept" class="smpl">media-range</a> = ( "*/*" 923 | ( <a href="#media.types" class="smpl">type</a> "/" "*" ) 924 | ( <a href="#media.types" class="smpl">type</a> "/" <a href="#media.types" class="smpl">subtype</a> ) 925 ) *( ";" <a href="#rule.parameter" class="smpl">parameter</a> ) 926 <a href="#header.accept" class="smpl">accept-params</a> = ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> *( <a href="#header.accept" class="smpl">accept-extension</a> ) 927 <a href="#header.accept" class="smpl">accept-extension</a> = ";" <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) ] 924 928 </pre><p id="rfc.section.6.1.p.3">The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating 925 929 all subtypes of that type. The media-range <em class="bcp14">MAY</em> include media type parameters that are applicable to that range. … … 982 986 to a server which is capable of representing documents in those character sets. 983 987 </p> 984 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.21"></span> Accept-Charset= "Accept-Charset" ":"985 1#( ( charset | "*" ) [ ";" "q" "=" qvalue] )988 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.21"></span> <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = "Accept-Charset" ":" 989 1#( ( <a href="#rule.charset" class="smpl">charset</a> | "*" ) [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] ) 986 990 </pre><p id="rfc.section.6.2.p.3">Character set values are described in <a href="#character.sets" title="Character Sets">Section 3.1</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset. The default value is q=1. An 987 991 example is … … 1001 1005 <p id="rfc.section.6.3.p.1">The Accept-Encoding request-header field is similar to Accept, but restricts the content-codings (<a href="#content.codings" title="Content Codings">Section 3.2</a>) that are acceptable in the response. 1002 1006 </p> 1003 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span> Accept-Encoding= "Accept-Encoding" ":"1004 #( codings [ ";" "q" "=" qvalue] )1005 codings = ( content-coding| "*" )1007 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span> <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = "Accept-Encoding" ":" 1008 #( <a href="#header.accept-encoding" class="smpl">codings</a> [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] ) 1009 <a href="#header.accept-encoding" class="smpl">codings</a> = ( <a href="#content.codings" class="smpl">content-coding</a> | "*" ) 1006 1010 </pre><p id="rfc.section.6.3.p.3">Examples of its use are:</p> 1007 1011 <div id="rfc.figure.u.28"></div><pre class="text"> Accept-Encoding: compress, gzip … … 1047 1051 as a response to the request. Language tags are defined in <a href="#language.tags" title="Language Tags">Section 3.5</a>. 1048 1052 </p> 1049 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></span> Accept-Language= "Accept-Language" ":"1050 1#( language-range [ ";" "q" "=" qvalue] )1051 language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA) ) | "*" )1053 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></span> <a href="#header.accept-language" class="smpl">Accept-Language</a> = "Accept-Language" ":" 1054 1#( <a href="#header.accept-language" class="smpl">language-range</a> [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] ) 1055 <a href="#header.accept-language" class="smpl">language-range</a> = ( ( 1*8<a href="#notation" class="smpl">ALPHA</a> *( "-" 1*8<a href="#notation" class="smpl">ALPHA</a> ) ) | "*" ) 1052 1056 </pre><p id="rfc.section.6.4.p.3">Each language-range <em class="bcp14">MAY</em> be given an associated quality value which represents an estimate of the user's preference for the languages specified by 1053 1057 that range. The quality value defaults to "q=1". For example, … … 1091 1095 without losing the identity of its underlying media type. 1092 1096 </p> 1093 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.26"></span> Content-Encoding = "Content-Encoding" ":" 1#content-coding1097 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.26"></span> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> = "Content-Encoding" ":" 1#<a href="#content.codings" class="smpl">content-coding</a> 1094 1098 </pre><p id="rfc.section.6.5.p.3">Content codings are defined in <a href="#content.codings" title="Content Codings">Section 3.2</a>. An example of its use is 1095 1099 </p> … … 1111 1115 Note that this might not be equivalent to all the languages used within the entity-body. 1112 1116 </p> 1113 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.27"></span> Content-Language = "Content-Language" ":" 1#language-tag1117 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.27"></span> <a href="#header.content-language" class="smpl">Content-Language</a> = "Content-Language" ":" 1#<a href="#language.tags" class="smpl">language-tag</a> 1114 1118 </pre><p id="rfc.section.6.6.p.3">Language tags are defined in <a href="#language.tags" title="Language Tags">Section 3.5</a>. The primary purpose of Content-Language is to allow a user to identify and differentiate entities according to the user's 1115 1119 own preferred language. Thus, if the body content is intended only for a Danish-literate audience, the appropriate field is … … 1138 1142 accessed, the server <em class="bcp14">SHOULD</em> provide a Content-Location for the particular variant which is returned. 1139 1143 </p> 1140 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.28"></span> Content-Location= "Content-Location" ":"1141 ( absoluteURI | relativeURI)1144 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.28"></span> <a href="#header.content-location" class="smpl">Content-Location</a> = "Content-Location" ":" 1145 ( <a href="#abnf.dependencies" class="smpl">absoluteURI</a> | <a href="#abnf.dependencies" class="smpl">relativeURI</a> ) 1142 1146 </pre><p id="rfc.section.6.7.p.3">The value of Content-Location also defines the base URI for the entity.</p> 1143 1147 <p id="rfc.section.6.7.p.4">The Content-Location value is not a replacement for the original requested URI; it is only a statement of the location of … … 1157 1161 attacks.) 1158 1162 </p> 1159 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span> Content-MD5 = "Content-MD5" ":" md5-digest1160 md5-digest= <base64 of 128 bit MD5 digest as per <a href="#RFC1864" id="rfc.xref.RFC1864.2"><cite title="The Content-MD5 Header Field">[RFC1864]</cite></a>>1163 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span> <a href="#header.content-md5" class="smpl">Content-MD5</a> = "Content-MD5" ":" <a href="#header.content-md5" class="smpl">md5-digest</a> 1164 <a href="#header.content-md5" class="smpl">md5-digest</a> = <base64 of 128 bit MD5 digest as per <a href="#RFC1864" id="rfc.xref.RFC1864.2"><cite title="The Content-MD5 Header Field">[RFC1864]</cite></a>> 1161 1165 </pre><p id="rfc.section.6.8.p.3">The Content-MD5 header field <em class="bcp14">MAY</em> be generated by an origin server or client to function as an integrity check of the entity-body. Only origin servers or clients <em class="bcp14">MAY</em> generate the Content-MD5 header field; proxies and gateways <em class="bcp14">MUST NOT</em> generate it, as this would defeat its value as an end-to-end integrity check. Any recipient of the entity-body, including 1162 1166 gateways and proxies, <em class="bcp14">MAY</em> check that the digest value in this header field matches that of the entity-body as received. … … 1194 1198 the HEAD method, the media type that would have been sent had the request been a GET. 1195 1199 </p> 1196 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.31"></span> Content-Type = "Content-Type" ":" media-type1200 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.31"></span> <a href="#header.content-type" class="smpl">Content-Type</a> = "Content-Type" ":" <a href="#media.types" class="smpl">media-type</a> 1197 1201 </pre><p id="rfc.section.6.9.p.3">Media types are defined in <a href="#media.types" title="Media Types">Section 3.3</a>. An example of the field is 1198 1202 </p> … … 1413 1417 environments. 1414 1418 </p> 1415 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.32"></span> MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT1419 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#mime-version" class="smpl">MIME-Version</a> = "MIME-Version" ":" 1*<a href="#notation" class="smpl">DIGIT</a> "." 1*<a href="#notation" class="smpl">DIGIT</a> 1416 1420 </pre><p id="rfc.section.A.1.p.3">MIME version "1.0" is the default for use in HTTP/1.1. However, HTTP/1.1 message parsing and semantics are defined by this 1417 1421 document and not the MIME specification. … … 1467 1471 in <a href="#RFC1806" id="rfc.xref.RFC1806.3"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header">[RFC1806]</cite></a>. 1468 1472 </p> 1469 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span> content-disposition= "Content-Disposition" ":"1470 disposition-type *( ";" disposition-parm)1471 disposition-type = "attachment" | disp-extension-token1472 disposition-parm = filename-parm | disp-extension-parm1473 filename-parm = "filename" "=" quoted-string1474 disp-extension-token = token1475 disp-extension-parm = token "=" ( token | quoted-string)1473 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span> <a href="#content-disposition" class="smpl">content-disposition</a> = "Content-Disposition" ":" 1474 <a href="#content-disposition" class="smpl">disposition-type</a> *( ";" <a href="#content-disposition" class="smpl">disposition-parm</a> ) 1475 <a href="#content-disposition" class="smpl">disposition-type</a> = "attachment" | <a href="#content-disposition" class="smpl">disp-extension-token</a> 1476 <a href="#content-disposition" class="smpl">disposition-parm</a> = <a href="#content-disposition" class="smpl">filename-parm</a> | <a href="#content-disposition" class="smpl">disp-extension-parm</a> 1477 <a href="#content-disposition" class="smpl">filename-parm</a> = "filename" "=" <a href="#notation" class="smpl">quoted-string</a> 1478 <a href="#content-disposition" class="smpl">disp-extension-token</a> = <a href="#notation" class="smpl">token</a> 1479 <a href="#content-disposition" class="smpl">disp-extension-parm</a> = <a href="#notation" class="smpl">token</a> "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) 1476 1480 </pre><p id="rfc.section.B.1.p.3">An example is</p> 1477 1481 <div id="rfc.figure.u.42"></div><pre class="text"> Content-Disposition: attachment; filename="fname.ext" … … 1589 1593 <li class="indline1">compress <a class="iref" href="#rfc.iref.c.1">3.2</a></li> 1590 1594 <li class="indline1">Content-Base header <a class="iref" href="#rfc.iref.c.9"><b>C.1</b></a></li> 1591 <li class="indline1">Content-Disposition header <a class="iref" href="#rfc.xref.content-disposition.1">8.2</a>, <a class="iref" href="#rfc.iref.c.7"><b>B.1</b></a> </li>1595 <li class="indline1">Content-Disposition header <a class="iref" href="#rfc.xref.content-disposition.1">8.2</a>, <a class="iref" href="#rfc.iref.c.7"><b>B.1</b></a>, <a class="iref" href="#rfc.extref.c.22">B.1</a></li> 1592 1596 <li class="indline1">Content-Encoding header <a class="iref" href="#rfc.xref.header.content-encoding.1">3.2</a>, <a class="iref" href="#rfc.xref.header.content-encoding.2">4.1</a>, <a class="iref" href="#rfc.iref.c.2"><b>6.5</b></a>, <a class="iref" href="#rfc.xref.header.content-encoding.3">6.5</a></li> 1593 1597 <li class="indline1">Content-Language header <a class="iref" href="#rfc.xref.header.content-language.1">4.1</a>, <a class="iref" href="#rfc.iref.c.3"><b>6.6</b></a></li> … … 1657 1661 <li class="indline1">Alternate <a class="iref" href="#rfc.iref.h.11"><b>C.1</b></a></li> 1658 1662 <li class="indline1">Content-Base <a class="iref" href="#rfc.iref.h.17"><b>C.1</b></a></li> 1659 <li class="indline1">Content-Disposition <a class="iref" href="#rfc.xref.content-disposition.1">8.2</a>, <a class="iref" href="#rfc.iref.h.10"><b>B.1</b></a> </li>1663 <li class="indline1">Content-Disposition <a class="iref" href="#rfc.xref.content-disposition.1">8.2</a>, <a class="iref" href="#rfc.iref.h.10"><b>B.1</b></a>, <a class="iref" href="#rfc.extref.c.22">B.1</a></li> 1660 1664 <li class="indline1">Content-Encoding <a class="iref" href="#rfc.xref.header.content-encoding.1">3.2</a>, <a class="iref" href="#rfc.xref.header.content-encoding.2">4.1</a>, <a class="iref" href="#rfc.iref.h.5"><b>6.5</b></a>, <a class="iref" href="#rfc.xref.header.content-encoding.3">6.5</a></li> 1661 1665 <li class="indline1">Content-Language <a class="iref" href="#rfc.xref.header.content-language.1">4.1</a>, <a class="iref" href="#rfc.iref.h.6"><b>6.6</b></a></li> -
draft-ietf-httpbis/latest/p3-payload.xml
r228 r229 256 256 257 257 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 258 <x:anchor-alias value="ALPHA"/> 259 <x:anchor-alias value="DIGIT"/> 260 <x:anchor-alias value="OCTET"/> 261 <x:anchor-alias value="quoted-string"/> 262 <x:anchor-alias value="token"/> 258 263 <t> 259 264 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 263 268 </t> 264 269 <figure><artwork type="abnf2616"> 265 ALPHA= <ALPHA, defined in &basic-rules;>266 DIGIT= <DIGIT, defined in &basic-rules;>267 OCTET= <OCTET, defined in &basic-rules;>270 <x:ref>ALPHA</x:ref> = <ALPHA, defined in &basic-rules;> 271 <x:ref>DIGIT</x:ref> = <DIGIT, defined in &basic-rules;> 272 <x:ref>OCTET</x:ref> = <OCTET, defined in &basic-rules;> 268 273 </artwork></figure> 269 274 <figure><artwork type="abnf2616"> 270 quoted-string= <quoted-string, defined in &basic-rules;>271 token= <token, defined in &basic-rules;>275 <x:ref>quoted-string</x:ref> = <quoted-string, defined in &basic-rules;> 276 <x:ref>token</x:ref> = <token, defined in &basic-rules;> 272 277 </artwork></figure> 273 278 <t anchor="abnf.dependencies"> 279 <x:anchor-alias value="absoluteURI"/> 280 <x:anchor-alias value="Allow"/> 281 <x:anchor-alias value="Content-Length"/> 282 <x:anchor-alias value="Content-Range"/> 283 <x:anchor-alias value="Expires"/> 284 <x:anchor-alias value="Last-Modified"/> 285 <x:anchor-alias value="message-header"/> 286 <x:anchor-alias value="relativeURI"/> 274 287 The ABNF rules below are defined in other parts: 275 288 </t> 276 289 <figure><!--Part1--><artwork type="abnf2616"> 277 absoluteURI= <absoluteURI, defined in &general-syntax;>278 Content-Length= <Content-Length, defined in &header-content-length;>279 relativeURI= <relativeURI, defined in &general-syntax;>280 message-header= <message-header, defined in &message-headers;>290 <x:ref>absoluteURI</x:ref> = <absoluteURI, defined in &general-syntax;> 291 <x:ref>Content-Length</x:ref> = <Content-Length, defined in &header-content-length;> 292 <x:ref>relativeURI</x:ref> = <relativeURI, defined in &general-syntax;> 293 <x:ref>message-header</x:ref> = <message-header, defined in &message-headers;> 281 294 </artwork></figure> 282 295 <figure><!--Part2--><artwork type="abnf2616"> 283 Allow= <Allow, defined in &header-allow;>296 <x:ref>Allow</x:ref> = <Allow, defined in &header-allow;> 284 297 </artwork></figure> 285 298 <figure><!--Part4--><artwork type="abnf2616"> 286 Last-Modified= <Last-Modified, defined in &header-last-modified;>299 <x:ref>Last-Modified</x:ref> = <Last-Modified, defined in &header-last-modified;> 287 300 </artwork></figure> 288 301 <figure><!--Part5--><artwork type="abnf2616"> 289 Content-Range= <Content-Range, defined in &header-content-range;>302 <x:ref>Content-Range</x:ref> = <Content-Range, defined in &header-content-range;> 290 303 </artwork></figure> 291 304 <figure><!--Part6--><artwork type="abnf2616"> 292 Expires= <Expires, defined in &header-expires;>305 <x:ref>Expires</x:ref> = <Expires, defined in &header-expires;> 293 306 </artwork></figure> 294 307 </section> … … 322 335 also be shared. 323 336 </t></list></t> 324 <t> 337 <t anchor="rule.charset"> 338 <x:anchor-alias value="charset"/> 325 339 HTTP character sets are identified by case-insensitive tokens. The 326 340 complete set of tokens is defined by the IANA Character Set registry … … 328 342 </t> 329 343 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="charset"/> 330 charset = token344 <x:ref>charset</x:ref> = <x:ref>token</x:ref> 331 345 </artwork></figure> 332 346 <t> … … 370 384 371 385 <section title="Content Codings" anchor="content.codings"> 386 <x:anchor-alias value="content-coding"/> 372 387 <t> 373 388 Content coding values indicate an encoding transformation that has … … 379 394 </t> 380 395 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-coding"/> 381 content-coding = token396 <x:ref>content-coding</x:ref> = <x:ref>token</x:ref> 382 397 </artwork></figure> 383 398 <t> … … 445 460 446 461 <section title="Media Types" anchor="media.types"> 462 <x:anchor-alias value="media-type"/> 463 <x:anchor-alias value="type"/> 464 <x:anchor-alias value="subtype"/> 447 465 <t> 448 466 HTTP uses Internet Media Types <xref target="RFC2046"/> in the Content-Type (<xref target="header.content-type"/>) … … 451 469 </t> 452 470 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="media-type"/><iref primary="true" item="Grammar" subitem="type"/><iref primary="true" item="Grammar" subitem="subtype"/> 453 media-type = type "/" subtype *( ";" parameter ) 454 type = token 455 subtype = token 456 </artwork></figure> 457 <t> 471 <x:ref>media-type</x:ref> = <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> *( ";" <x:ref>parameter</x:ref> ) 472 <x:ref>type</x:ref> = <x:ref>token</x:ref> 473 <x:ref>subtype</x:ref> = <x:ref>token</x:ref> 474 </artwork></figure> 475 <t anchor="rule.parameter"> 476 <x:anchor-alias value="attribute"/> 477 <x:anchor-alias value="parameter"/> 478 <x:anchor-alias value="value"/> 458 479 Parameters &MAY; follow the type/subtype in the form of attribute/value 459 480 pairs. 460 481 </t> 461 482 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/> 462 parameter = attribute "=" value463 attribute = token464 value = token | quoted-string483 <x:ref>parameter</x:ref> = <x:ref>attribute</x:ref> "=" <x:ref>value</x:ref> 484 <x:ref>attribute</x:ref> = <x:ref>token</x:ref> 485 <x:ref>value</x:ref> = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> 465 486 </artwork></figure> 466 487 <t> … … 567 588 568 589 <section title="Quality Values" anchor="quality.values"> 590 <x:anchor-alias value="qvalue"/> 569 591 <t> 570 592 HTTP content negotiation (<xref target="content.negotiation"/>) uses short "floating point" … … 579 601 </t> 580 602 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="qvalue"/> 581 qvalue = ( "0" [ "." 0*3DIGIT] )603 <x:ref>qvalue</x:ref> = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] ) 582 604 | ( "1" [ "." 0*3("0") ] ) 583 605 </artwork></figure> … … 589 611 590 612 <section title="Language Tags" anchor="language.tags"> 613 <x:anchor-alias value="language-tag"/> 614 <x:anchor-alias value="primary-tag"/> 615 <x:anchor-alias value="subtag"/> 591 616 <t> 592 617 A language tag identifies a natural language spoken, written, or … … 603 628 </t> 604 629 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="language-tag"/><iref primary="true" item="Grammar" subitem="primary-tag"/><iref primary="true" item="Grammar" subitem="subtag"/> 605 language-tag = primary-tag *( "-" subtag)606 primary-tag = 1*8ALPHA607 subtag = 1*8ALPHA630 <x:ref>language-tag</x:ref> = <x:ref>primary-tag</x:ref> *( "-" <x:ref>subtag</x:ref> ) 631 <x:ref>primary-tag</x:ref> = 1*8<x:ref>ALPHA</x:ref> 632 <x:ref>subtag</x:ref> = 1*8<x:ref>ALPHA</x:ref> 608 633 </artwork></figure> 609 634 <t> … … 637 662 638 663 <section title="Entity Header Fields" anchor="entity.header.fields"> 664 <x:anchor-alias value="entity-header"/> 665 <x:anchor-alias value="extension-header"/> 639 666 <t> 640 667 Entity-header fields define metainformation about the entity-body or, … … 642 669 </t> 643 670 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-header"/><iref primary="true" item="Grammar" subitem="extension-header"/> 644 entity-header = Allow; &header-allow;645 | Content-Encoding; <xref target="header.content-encoding"/>646 | Content-Language; <xref target="header.content-language"/>647 | Content-Length; &header-content-length;648 | Content-Location; <xref target="header.content-location"/>649 | Content-MD5; <xref target="header.content-md5"/>650 | Content-Range; &header-content-range;651 | Content-Type; <xref target="header.content-type"/>652 | Expires; &header-expires;653 | Last-Modified; &header-last-modified;654 | extension-header671 <x:ref>entity-header</x:ref> = <x:ref>Allow</x:ref> ; &header-allow; 672 | <x:ref>Content-Encoding</x:ref> ; <xref target="header.content-encoding"/> 673 | <x:ref>Content-Language</x:ref> ; <xref target="header.content-language"/> 674 | <x:ref>Content-Length</x:ref> ; &header-content-length; 675 | <x:ref>Content-Location</x:ref> ; <xref target="header.content-location"/> 676 | <x:ref>Content-MD5</x:ref> ; <xref target="header.content-md5"/> 677 | <x:ref>Content-Range</x:ref> ; &header-content-range; 678 | <x:ref>Content-Type</x:ref> ; <xref target="header.content-type"/> 679 | <x:ref>Expires</x:ref> ; &header-expires; 680 | <x:ref>Last-Modified</x:ref> ; &header-last-modified; 681 | <x:ref>extension-header</x:ref> 655 682 656 extension-header = message-header683 <x:ref>extension-header</x:ref> = <x:ref>message-header</x:ref> 657 684 </artwork></figure> 658 685 <t> … … 666 693 667 694 <section title="Entity Body" anchor="entity.body"> 695 <x:anchor-alias value="entity-body"/> 668 696 <t> 669 697 The entity-body (if any) sent with an HTTP request or response is in … … 671 699 </t> 672 700 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-body"/> 673 entity-body = *OCTET701 <x:ref>entity-body</x:ref> = *<x:ref>OCTET</x:ref> 674 702 </artwork></figure> 675 703 <t> … … 888 916 <iref primary="true" item="Accept header" x:for-anchor=""/> 889 917 <iref primary="true" item="Headers" subitem="Accept" x:for-anchor=""/> 918 <x:anchor-alias value="Accept"/> 919 <x:anchor-alias value="accept-extension"/> 920 <x:anchor-alias value="accept-params"/> 921 <x:anchor-alias value="media-range"/> 890 922 <t> 891 923 The Accept request-header field can be used to specify certain media … … 896 928 </t> 897 929 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-extension"/> 898 Accept= "Accept" ":"899 #( media-range [ accept-params] )930 <x:ref>Accept</x:ref> = "Accept" ":" 931 #( <x:ref>media-range</x:ref> [ <x:ref>accept-params</x:ref> ] ) 900 932 901 media-range= ( "*/*"902 | ( type"/" "*" )903 | ( type "/" subtype)904 ) *( ";" parameter)905 accept-params = ";" "q" "=" qvalue *( accept-extension)906 accept-extension = ";" token [ "=" ( token | quoted-string) ]933 <x:ref>media-range</x:ref> = ( "*/*" 934 | ( <x:ref>type</x:ref> "/" "*" ) 935 | ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> ) 936 ) *( ";" <x:ref>parameter</x:ref> ) 937 <x:ref>accept-params</x:ref> = ";" "q" "=" <x:ref>qvalue</x:ref> *( <x:ref>accept-extension</x:ref> ) 938 <x:ref>accept-extension</x:ref> = ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ] 907 939 </artwork></figure> 908 940 <t> … … 1009 1041 <iref primary="true" item="Accept-Charset header" x:for-anchor=""/> 1010 1042 <iref primary="true" item="Headers" subitem="Accept-Charset" x:for-anchor=""/> 1043 <x:anchor-alias value="Accept-Charset"/> 1011 1044 <t> 1012 1045 The Accept-Charset request-header field can be used to indicate what … … 1017 1050 </t> 1018 1051 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/> 1019 Accept-Charset= "Accept-Charset" ":"1020 1#( ( charset | "*" ) [ ";" "q" "=" qvalue] )1052 <x:ref>Accept-Charset</x:ref> = "Accept-Charset" ":" 1053 1#( ( <x:ref>charset</x:ref> | "*" ) [ ";" "q" "=" <x:ref>qvalue</x:ref> ] ) 1021 1054 </artwork></figure> 1022 1055 <t> … … 1049 1082 <iref primary="true" item="Accept-Encoding header" x:for-anchor=""/> 1050 1083 <iref primary="true" item="Headers" subitem="Accept-Encoding" x:for-anchor=""/> 1084 <x:anchor-alias value="Accept-Encoding"/> 1085 <x:anchor-alias value="codings"/> 1051 1086 <t> 1052 1087 The Accept-Encoding request-header field is similar to Accept, but … … 1055 1090 </t> 1056 1091 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/> 1057 Accept-Encoding= "Accept-Encoding" ":"1058 #( codings [ ";" "q" "=" qvalue] )1059 codings = ( content-coding| "*" )1092 <x:ref>Accept-Encoding</x:ref> = "Accept-Encoding" ":" 1093 #( <x:ref>codings</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] ) 1094 <x:ref>codings</x:ref> = ( <x:ref>content-coding</x:ref> | "*" ) 1060 1095 </artwork></figure> 1061 1096 <t> … … 1125 1160 <iref primary="true" item="Accept-Language header" x:for-anchor=""/> 1126 1161 <iref primary="true" item="Headers" subitem="Accept-Language" x:for-anchor=""/> 1162 <x:anchor-alias value="Accept-Language"/> 1163 <x:anchor-alias value="language-range"/> 1127 1164 <t> 1128 1165 The Accept-Language request-header field is similar to Accept, but … … 1131 1168 </t> 1132 1169 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/> 1133 Accept-Language= "Accept-Language" ":"1134 1#( language-range [ ";" "q" "=" qvalue] )1135 language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA) ) | "*" )1170 <x:ref>Accept-Language</x:ref> = "Accept-Language" ":" 1171 1#( <x:ref>language-range</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] ) 1172 <x:ref>language-range</x:ref> = ( ( 1*8<x:ref>ALPHA</x:ref> *( "-" 1*8<x:ref>ALPHA</x:ref> ) ) | "*" ) 1136 1173 </artwork></figure> 1137 1174 <t> … … 1200 1237 <iref primary="true" item="Content-Encoding header" x:for-anchor=""/> 1201 1238 <iref primary="true" item="Headers" subitem="Content-Encoding" x:for-anchor=""/> 1239 <x:anchor-alias value="Content-Encoding"/> 1202 1240 <t> 1203 1241 The Content-Encoding entity-header field is used as a modifier to the … … 1210 1248 </t> 1211 1249 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/> 1212 Content-Encoding = "Content-Encoding" ":" 1#content-coding1250 <x:ref>Content-Encoding</x:ref> = "Content-Encoding" ":" 1#<x:ref>content-coding</x:ref> 1213 1251 </artwork></figure> 1214 1252 <t> … … 1247 1285 <iref primary="true" item="Content-Language header" x:for-anchor=""/> 1248 1286 <iref primary="true" item="Headers" subitem="Content-Language" x:for-anchor=""/> 1287 <x:anchor-alias value="Content-Language"/> 1249 1288 <t> 1250 1289 The Content-Language entity-header field describes the natural … … 1254 1293 </t> 1255 1294 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/> 1256 Content-Language = "Content-Language" ":" 1#language-tag1295 <x:ref>Content-Language</x:ref> = "Content-Language" ":" 1#<x:ref>language-tag</x:ref> 1257 1296 </artwork></figure> 1258 1297 <t> … … 1298 1337 <iref primary="true" item="Content-Location header" x:for-anchor=""/> 1299 1338 <iref primary="true" item="Headers" subitem="Content-Location" x:for-anchor=""/> 1339 <x:anchor-alias value="Content-Location"/> 1300 1340 <t> 1301 1341 The Content-Location entity-header field &MAY; be used to supply the … … 1310 1350 </t> 1311 1351 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Location"/> 1312 Content-Location= "Content-Location" ":"1313 ( absoluteURI | relativeURI)1352 <x:ref>Content-Location</x:ref> = "Content-Location" ":" 1353 ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> ) 1314 1354 </artwork></figure> 1315 1355 <t> … … 1345 1385 <iref primary="true" item="Content-MD5 header" x:for-anchor=""/> 1346 1386 <iref primary="true" item="Headers" subitem="Content-MD5" x:for-anchor=""/> 1387 <x:anchor-alias value="Content-MD5"/> 1388 <x:anchor-alias value="md5-digest"/> 1347 1389 <t> 1348 1390 The Content-MD5 entity-header field, as defined in <xref target="RFC1864"/>, is … … 1353 1395 </t> 1354 1396 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-MD5"/><iref primary="true" item="Grammar" subitem="md5-digest"/> 1355 Content-MD5 = "Content-MD5" ":" md5-digest1356 md5-digest= <base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>>1397 <x:ref>Content-MD5</x:ref> = "Content-MD5" ":" <x:ref>md5-digest</x:ref> 1398 <x:ref>md5-digest</x:ref> = <base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>> 1357 1399 </artwork></figure> 1358 1400 <t> … … 1418 1460 <iref primary="true" item="Content-Type header" x:for-anchor=""/> 1419 1461 <iref primary="true" item="Headers" subitem="Content-Type" x:for-anchor=""/> 1462 <x:anchor-alias value="Content-Type"/> 1420 1463 <t> 1421 1464 The Content-Type entity-header field indicates the media type of the … … 1424 1467 </t> 1425 1468 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/> 1426 Content-Type = "Content-Type" ":" media-type1469 <x:ref>Content-Type</x:ref> = "Content-Type" ":" <x:ref>media-type</x:ref> 1427 1470 </artwork></figure> 1428 1471 <t> … … 2166 2209 might be required. 2167 2210 </t> 2211 2168 2212 <section title="MIME-Version" anchor="mime-version"> 2213 <x:anchor-alias value="MIME-Version"/> 2169 2214 <t> 2170 2215 HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages &MAY; … … 2177 2222 </t> 2178 2223 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="MIME-Version"/> 2179 MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT2224 <x:ref>MIME-Version</x:ref> = "MIME-Version" ":" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref> 2180 2225 </artwork></figure> 2181 2226 <t> … … 2289 2334 <iref item="Headers" subitem="Content-Disposition" primary="true" x:for-anchor=""/> 2290 2335 <iref item="Content-Disposition header" primary="true" x:for-anchor=""/> 2336 <x:anchor-alias value="content-disposition"/> 2337 <x:anchor-alias value="disposition-type"/> 2338 <x:anchor-alias value="disposition-parm"/> 2339 <x:anchor-alias value="disp-extension-parm"/> 2340 <x:anchor-alias value="disp-extension-token"/> 2341 <x:anchor-alias value="filename-parm"/> 2291 2342 <t> 2292 2343 The Content-Disposition response-header field has been proposed as a … … 2296 2347 </t> 2297 2348 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-disposition"/><iref primary="true" item="Grammar" subitem="disposition-type"/><iref primary="true" item="Grammar" subitem="disposition-parm"/><iref primary="true" item="Grammar" subitem="filename-parm"/><iref primary="true" item="Grammar" subitem="disp-extension-token"/><iref primary="true" item="Grammar" subitem="disp-extension-parm"/> 2298 content-disposition= "Content-Disposition" ":"2299 disposition-type *( ";" disposition-parm)2300 disposition-type = "attachment" | disp-extension-token2301 disposition-parm = filename-parm | disp-extension-parm2302 filename-parm = "filename" "=" quoted-string2303 disp-extension-token = token2304 disp-extension-parm = token "=" ( token | quoted-string)2349 <x:ref>content-disposition</x:ref> = "Content-Disposition" ":" 2350 <x:ref>disposition-type</x:ref> *( ";" <x:ref>disposition-parm</x:ref> ) 2351 <x:ref>disposition-type</x:ref> = "attachment" | <x:ref>disp-extension-token</x:ref> 2352 <x:ref>disposition-parm</x:ref> = <x:ref>filename-parm</x:ref> | <x:ref>disp-extension-parm</x:ref> 2353 <x:ref>filename-parm</x:ref> = "filename" "=" <x:ref>quoted-string</x:ref> 2354 <x:ref>disp-extension-token</x:ref> = <x:ref>token</x:ref> 2355 <x:ref>disp-extension-parm</x:ref> = <x:ref>token</x:ref> "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) 2305 2356 </artwork></figure> 2306 2357 <t> -
draft-ietf-httpbis/latest/p4-conditional.html
r228 r229 550 550 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="Augmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 551 551 </p> 552 <div id="rfc.figure.u.1"></div><pre class="inline"> quoted-string= <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>552 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 553 553 </pre><div id="abnf.dependencies"> 554 <p id="rfc.section.2.p.3"> The ABNF rules below are defined in other parts:</p>554 <p id="rfc.section.2.p.3"> The ABNF rules below are defined in other parts:</p> 555 555 </div> 556 <div id="rfc.figure.u.2"></div><pre class="inline"> HTTP-date= <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>>556 <div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>> 557 557 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="entity.tags" href="#entity.tags">Entity Tags</a></h1> 558 558 <p id="rfc.section.3.p.1">Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the 559 559 ETag (<a href="#header.etag" id="rfc.xref.header.etag.1" title="ETag">Section 7.1</a>), If-Match (<a href="#header.if-match" id="rfc.xref.header.if-match.1" title="If-Match">Section 7.2</a>), If-None-Match (<a href="#header.if-none-match" id="rfc.xref.header.if-none-match.1" title="If-None-Match">Section 7.4</a>), and If-Range (<a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>) header fields. The definition of how they are used and compared as cache validators is in <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section 5</a>. An entity tag consists of an opaque quoted string, possibly prefixed by a weakness indicator. 560 560 </p> 561 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span> entity-tag = [ weak ] opaque-tag562 weak= "W/"563 opaque-tag = quoted-string561 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span> <a href="#entity.tags" class="smpl">entity-tag</a> = [ <a href="#entity.tags" class="smpl">weak</a> ] <a href="#entity.tags" class="smpl">opaque-tag</a> 562 <a href="#entity.tags" class="smpl">weak</a> = "W/" 563 <a href="#entity.tags" class="smpl">opaque-tag</a> = <a href="#notation" class="smpl">quoted-string</a> 564 564 </pre><p id="rfc.section.3.p.3">A "strong entity tag" <em class="bcp14">MAY</em> be shared by two entities of a resource only if they are equivalent by octet equality. 565 565 </p> … … 754 754 entity tags are described in Sections <a href="#header.if-match" id="rfc.xref.header.if-match.2" title="If-Match">7.2</a> and <a href="#header.if-none-match" id="rfc.xref.header.if-none-match.2" title="If-None-Match">7.4</a> of this document, and in <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>. The entity tag <em class="bcp14">MAY</em> be used for comparison with other entities from the same resource (see <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section 5</a>). 755 755 </p> 756 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.4"></span> ETag = "ETag" ":" entity-tag756 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.4"></span> <a href="#header.etag" class="smpl">ETag</a> = "ETag" ":" <a href="#entity.tags" class="smpl">entity-tag</a> 757 757 </pre><div id="rfc.figure.u.5"></div> 758 758 <p>Examples:</p> <pre class="text"> ETag: "xyzzy" … … 778 778 case, the value "*" matches any current entity of the resource. 779 779 </p> 780 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.5"></span> If-Match = "If-Match" ":" ( "*" | 1#entity-tag)780 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.5"></span> <a href="#header.if-match" class="smpl">If-Match</a> = "If-Match" ":" ( "*" | 1#<a href="#entity.tags" class="smpl">entity-tag</a> ) 781 781 </pre><p id="rfc.section.7.2.p.3">If any of the entity tags match the entity tag of the entity that would have been returned in the response to a similar GET 782 782 request (without the If-Match header) on that resource, or if "*" is given and any current entity exists for that resource, … … 810 810 Modified) response will be returned without any message-body. 811 811 </p> 812 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.6"></span> If-Modified-Since = "If-Modified-Since" ":" HTTP-date812 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.6"></span> <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> = "If-Modified-Since" ":" <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 813 813 </pre><p id="rfc.section.7.3.p.3">An example of the field is:</p> 814 814 <div id="rfc.figure.u.9"></div><pre class="text"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT … … 858 858 </p> 859 859 <p id="rfc.section.7.4.p.2">As a special case, the value "*" matches any current entity of the resource.</p> 860 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.7"></span> If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag)860 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#header.if-none-match" class="smpl">If-None-Match</a> = "If-None-Match" ":" ( "*" | 1#<a href="#entity.tags" class="smpl">entity-tag</a> ) 861 861 </pre><p id="rfc.section.7.4.p.4">If any of the entity tags match the entity tag of the entity that would have been returned in the response to a similar GET 862 862 request (without the If-None-Match header) on that resource, or if "*" is given and any current entity exists for that resource, … … 891 891 <p id="rfc.section.7.5.p.2">If the requested variant has been modified since the specified time, the server <em class="bcp14">MUST NOT</em> perform the requested operation, and <em class="bcp14">MUST</em> return a 412 (Precondition Failed). 892 892 </p> 893 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.8"></span> If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date893 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.8"></span> <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> = "If-Unmodified-Since" ":" <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 894 894 </pre><p id="rfc.section.7.5.p.4">An example of the field is:</p> 895 895 <div id="rfc.figure.u.13"></div><pre class="text"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT … … 907 907 modified. 908 908 </p> 909 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.9"></span> Last-Modified = "Last-Modified" ":" HTTP-date909 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.9"></span> <a href="#header.last-modified" class="smpl">Last-Modified</a> = "Last-Modified" ":" <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 910 910 </pre><p id="rfc.section.7.6.p.3">An example of its use is</p> 911 911 <div id="rfc.figure.u.15"></div><pre class="text"> Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT -
draft-ietf-httpbis/latest/p4-conditional.xml
r228 r229 254 254 255 255 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 256 <x:anchor-alias value="quoted-string"/> 256 257 <t> 257 258 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 261 262 </t> 262 263 <figure><artwork type="abnf2616"> 263 quoted-string= <quoted-string, defined in &basic-rules;>264 <x:ref>quoted-string</x:ref> = <quoted-string, defined in &basic-rules;> 264 265 </artwork></figure> 265 266 <t anchor="abnf.dependencies"> 267 <x:anchor-alias value="HTTP-date"/> 266 268 The ABNF rules below are defined in other parts: 267 269 </t> 268 270 <figure><!--Part1--><artwork type="abnf2616"> 269 HTTP-date= <HTTP-date, defined in &full-date;>271 <x:ref>HTTP-date</x:ref> = <HTTP-date, defined in &full-date;> 270 272 </artwork></figure> 271 273 </section> 272 274 273 275 <section title="Entity Tags" anchor="entity.tags"> 276 <x:anchor-alias value="entity-tag"/> 277 <x:anchor-alias value="opaque-tag"/> 278 <x:anchor-alias value="weak"/> 274 279 <t> 275 280 Entity tags are used for comparing two or more entities from the same … … 282 287 </t> 283 288 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-tag"/><iref primary="true" item="Grammar" subitem="weak"/><iref primary="true" item="Grammar" subitem="opaque-tag"/> 284 entity-tag = [ weak ] opaque-tag285 weak= "W/"286 opaque-tag = quoted-string289 <x:ref>entity-tag</x:ref> = [ <x:ref>weak</x:ref> ] <x:ref>opaque-tag</x:ref> 290 <x:ref>weak</x:ref> = "W/" 291 <x:ref>opaque-tag</x:ref> = <x:ref>quoted-string</x:ref> 287 292 </artwork></figure> 288 293 <t> … … 617 622 <iref primary="true" item="ETag header" x:for-anchor=""/> 618 623 <iref primary="true" item="Headers" subitem="ETag" x:for-anchor=""/> 624 <x:anchor-alias value="ETag"/> 619 625 <t> 620 626 The ETag response-header field provides the current value of the … … 627 633 </t> 628 634 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ETag"/> 629 ETag = "ETag" ":" entity-tag635 <x:ref>ETag</x:ref> = "ETag" ":" <x:ref>entity-tag</x:ref> 630 636 </artwork></figure> 631 637 <figure><preamble> … … 659 665 <iref primary="true" item="If-Match header" x:for-anchor=""/> 660 666 <iref primary="true" item="Headers" subitem="If-Match" x:for-anchor=""/> 667 <x:anchor-alias value="If-Match"/> 661 668 <t> 662 669 The If-Match request-header field is used with a method to make it … … 672 679 </t> 673 680 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Match"/> 674 If-Match = "If-Match" ":" ( "*" | 1#entity-tag)681 <x:ref>If-Match</x:ref> = "If-Match" ":" ( "*" | 1#<x:ref>entity-tag</x:ref> ) 675 682 </artwork></figure> 676 683 <t> … … 729 736 <iref primary="true" item="If-Modified-Since header" x:for-anchor=""/> 730 737 <iref primary="true" item="Headers" subitem="If-Modified-Since" x:for-anchor=""/> 738 <x:anchor-alias value="If-Modified-Since"/> 731 739 <t> 732 740 The If-Modified-Since request-header field is used with a method to … … 737 745 </t> 738 746 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Modified-Since"/> 739 If-Modified-Since = "If-Modified-Since" ":" HTTP-date747 <x:ref>If-Modified-Since</x:ref> = "If-Modified-Since" ":" <x:ref>HTTP-date</x:ref> 740 748 </artwork></figure> 741 749 <t> … … 810 818 <iref primary="true" item="If-None-Match header" x:for-anchor=""/> 811 819 <iref primary="true" item="Headers" subitem="If-None-Match" x:for-anchor=""/> 820 <x:anchor-alias value="If-None-Match"/> 812 821 <t> 813 822 The If-None-Match request-header field is used with a method to make … … 826 835 </t> 827 836 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-None-Match"/> 828 If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag)837 <x:ref>If-None-Match</x:ref> = "If-None-Match" ":" ( "*" | 1#<x:ref>entity-tag</x:ref> ) 829 838 </artwork></figure> 830 839 <t> … … 889 898 <iref primary="true" item="If-Unmodified-Since header" x:for-anchor=""/> 890 899 <iref primary="true" item="Headers" subitem="If-Unmodified-Since" x:for-anchor=""/> 900 <x:anchor-alias value="If-Unmodified-Since"/> 891 901 <t> 892 902 The If-Unmodified-Since request-header field is used with a method to … … 902 912 </t> 903 913 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Unmodified-Since"/> 904 If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date914 <x:ref>If-Unmodified-Since</x:ref> = "If-Unmodified-Since" ":" <x:ref>HTTP-date</x:ref> 905 915 </artwork></figure> 906 916 <t> … … 928 938 <iref primary="true" item="Last-Modified header" x:for-anchor=""/> 929 939 <iref primary="true" item="Headers" subitem="Last-Modified" x:for-anchor=""/> 940 <x:anchor-alias value="Last-Modified"/> 930 941 <t> 931 942 The Last-Modified entity-header field indicates the date and time at … … 933 944 </t> 934 945 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Last-Modified"/> 935 Last-Modified = "Last-Modified" ":" HTTP-date946 <x:ref>Last-Modified</x:ref> = "Last-Modified" ":" <x:ref>HTTP-date</x:ref> 936 947 </artwork></figure> 937 948 <t> -
draft-ietf-httpbis/latest/p5-range.html
r228 r229 554 554 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="Augmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 555 555 </p> 556 <div id="rfc.figure.u.1"></div><pre class="inline"> DIGIT= <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>557 SP= <SP, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>558 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> token= <token, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>556 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 557 <a href="#notation" class="smpl">SP</a> = <SP, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 558 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 559 559 </pre><div id="abnf.dependencies"> 560 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p>560 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 561 561 </div> 562 <div id="rfc.figure.u.3"></div><pre class="inline"> HTTP-date= <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>>563 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> entity-tag= <entity-tag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#entity.tags" title="Entity Tags">Section 3</a>>562 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>> 563 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">entity-tag</a> = <entity-tag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#entity.tags" title="Entity Tags">Section 3</a>> 564 564 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="range.units" href="#range.units">Range Units</a></h1> 565 565 <p id="rfc.section.3.p.1">HTTP/1.1 allows a client to request that only part (a range of) the response entity be included within the response. HTTP/1.1 566 566 uses range units in the Range (<a href="#header.range" id="rfc.xref.header.range.1" title="Range">Section 6.4</a>) and Content-Range (<a href="#header.content-range" id="rfc.xref.header.content-range.1" title="Content-Range">Section 6.2</a>) header fields. An entity can be broken down into subranges according to various structural units. 567 567 </p> 568 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span> range-unit = bytes-unit | other-range-unit569 bytes-unit= "bytes"570 other-range-unit = token568 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span> <a href="#range.units" class="smpl">range-unit</a> = <a href="#range.units" class="smpl">bytes-unit</a> | <a href="#range.units" class="smpl">other-range-unit</a> 569 <a href="#range.units" class="smpl">bytes-unit</a> = "bytes" 570 <a href="#range.units" class="smpl">other-range-unit</a> = <a href="#notation" class="smpl">token</a> 571 571 </pre><p id="rfc.section.3.p.3">The only range unit defined by HTTP/1.1 is "bytes". HTTP/1.1 implementations <em class="bcp14">MAY</em> ignore ranges specified using other units. 572 572 </p> … … 631 631 <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="header.accept-ranges" href="#header.accept-ranges">Accept-Ranges</a></h2> 632 632 <p id="rfc.section.6.1.p.1">The Accept-Ranges response-header field allows the server to indicate its acceptance of range requests for a resource:</p> 633 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span> Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges634 acceptable-ranges = 1#range-unit| "none"633 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span> <a href="#header.accept-ranges" class="smpl">Accept-Ranges</a> = "Accept-Ranges" ":" <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a> 634 <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a> = 1#<a href="#range.units" class="smpl">range-unit</a> | "none" 635 635 </pre><p id="rfc.section.6.1.p.3">Origin servers that accept byte-range requests <em class="bcp14">MAY</em> send 636 636 </p> … … 648 648 should be applied. Range units are defined in <a href="#range.units" title="Range Units">Section 3</a>. 649 649 </p> 650 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span> Content-Range = "Content-Range" ":" content-range-spec650 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span> <a href="#header.content-range" class="smpl">Content-Range</a> = "Content-Range" ":" <a href="#header.content-range" class="smpl">content-range-spec</a> 651 651 652 content-range-spec = byte-content-range-spec653 byte-content-range-spec = bytes-unit SP654 byte-range-resp-spec"/"655 ( instance-length| "*" )652 <a href="#header.content-range" class="smpl">content-range-spec</a> = <a href="#header.content-range" class="smpl">byte-content-range-spec</a> 653 <a href="#header.content-range" class="smpl">byte-content-range-spec</a> = <a href="#range.units" class="smpl">bytes-unit</a> <a href="#notation" class="smpl">SP</a> 654 <a href="#header.content-range" class="smpl">byte-range-resp-spec</a> "/" 655 ( <a href="#header.content-range" class="smpl">instance-length</a> | "*" ) 656 656 657 byte-range-resp-spec = (first-byte-pos "-" last-byte-pos)657 <a href="#header.content-range" class="smpl">byte-range-resp-spec</a> = (<a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> "-" <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a>) 658 658 | "*" 659 instance-length = 1*DIGIT659 <a href="#header.content-range" class="smpl">instance-length</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 660 660 </pre><p id="rfc.section.6.2.p.3">The header <em class="bcp14">SHOULD</em> indicate the total length of the full entity-body, unless this length is unknown or difficult to determine. The asterisk "*" 661 661 character means that the instance-length is unknown at the time when the response was generated. … … 725 725 send me the part(s) that I am missing; otherwise, send me the entire new entity'. 726 726 </p> 727 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.11"></span> If-Range = "If-Range" ":" ( entity-tag | HTTP-date)727 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.11"></span> <a href="#header.if-range" class="smpl">If-Range</a> = "If-Range" ":" ( <a href="#abnf.dependencies" class="smpl">entity-tag</a> | <a href="#abnf.dependencies" class="smpl">HTTP-date</a> ) 728 728 </pre><p id="rfc.section.6.3.p.4">If the client has no entity tag for an entity, but does have a Last-Modified date, it <em class="bcp14">MAY</em> use that date in an If-Range header. (The server can distinguish between a valid HTTP-date and any form of entity-tag by examining 729 729 no more than two characters.) The If-Range header <em class="bcp14">SHOULD</em> only be used together with a Range header, and <em class="bcp14">MUST</em> be ignored if the request does not include a Range header, or if the server does not support the sub-range operation. … … 740 740 </p> 741 741 <p id="rfc.section.6.4.1.p.2">Byte range specifications in HTTP apply to the sequence of bytes in the entity-body (not necessarily the same as the message-body).</p> 742 <p id="rfc.section.6.4.1.p.3">A byte range operation <em class="bcp14">MAY</em> specify a single range of bytes, or a set of ranges within a single entity. 743 </p> 744 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span> ranges-specifier = byte-ranges-specifier 745 byte-ranges-specifier = bytes-unit "=" byte-range-set 746 byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec ) 747 byte-range-spec = first-byte-pos "-" [last-byte-pos] 748 first-byte-pos = 1*DIGIT 749 last-byte-pos = 1*DIGIT 742 <div id="rule.ranges-specifier"> 743 <p id="rfc.section.6.4.1.p.3"> A byte range operation <em class="bcp14">MAY</em> specify a single range of bytes, or a set of ranges within a single entity. 744 </p> 745 </div> 746 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span> <a href="#rule.ranges-specifier" class="smpl">ranges-specifier</a> = <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> 747 <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> = <a href="#range.units" class="smpl">bytes-unit</a> "=" <a href="#rule.ranges-specifier" class="smpl">byte-range-set</a> 748 <a href="#rule.ranges-specifier" class="smpl">byte-range-set</a> = 1#( <a href="#rule.ranges-specifier" class="smpl">byte-range-spec</a> | <a href="#rule.ranges-specifier" class="smpl">suffix-byte-range-spec</a> ) 749 <a href="#rule.ranges-specifier" class="smpl">byte-range-spec</a> = <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> "-" [<a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a>] 750 <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 751 <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 750 752 </pre><p id="rfc.section.6.4.1.p.5">The first-byte-pos value in a byte-range-spec gives the byte-offset of the first byte in a range. The last-byte-pos value 751 753 gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets start … … 759 761 </p> 760 762 <p id="rfc.section.6.4.1.p.8">By its choice of last-byte-pos, a client can limit the number of bytes retrieved without knowing the size of the entity.</p> 761 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> suffix-byte-range-spec = "-" suffix-length762 suffix-length = 1*DIGIT763 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> <a href="#rule.ranges-specifier" class="smpl">suffix-byte-range-spec</a> = "-" <a href="#rule.ranges-specifier" class="smpl">suffix-length</a> 764 <a href="#rule.ranges-specifier" class="smpl">suffix-length</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 763 765 </pre><p id="rfc.section.6.4.1.p.10">A suffix-byte-range-spec is used to specify the suffix of the entity-body, of a length given by the suffix-length value. (That 764 766 is, this form specifies the last N bytes of an entity-body.) If the entity is shorter than the specified suffix-length, the … … 783 785 to the entity returned as the result of the request: 784 786 </p> 785 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.20"></span> Range = "Range" ":" ranges-specifier787 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.20"></span> <a href="#range.retrieval.requests" class="smpl">Range</a> = "Range" ":" <a href="#rule.ranges-specifier" class="smpl">ranges-specifier</a> 786 788 </pre><p id="rfc.section.6.4.2.p.3">A server <em class="bcp14">MAY</em> ignore the Range header. However, HTTP/1.1 origin servers and intermediate caches ought to support byte ranges when possible, 787 789 since Range supports efficient recovery from partially failed transfers, and supports efficient partial retrieval of large -
draft-ietf-httpbis/latest/p5-range.xml
r228 r229 255 255 256 256 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 257 <x:anchor-alias value="DIGIT"/> 258 <x:anchor-alias value="SP"/> 259 <x:anchor-alias value="token"/> 257 260 <t> 258 261 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 262 265 </t> 263 266 <figure><artwork type="abnf2616"> 264 DIGIT= <DIGIT, defined in &basic-rules;>265 SP= <SP, defined in &basic-rules;>267 <x:ref>DIGIT</x:ref> = <DIGIT, defined in &basic-rules;> 268 <x:ref>SP</x:ref> = <SP, defined in &basic-rules;> 266 269 </artwork></figure> 267 270 <figure><artwork type="abnf2616"> 268 token= <token, defined in &basic-rules;>271 <x:ref>token</x:ref> = <token, defined in &basic-rules;> 269 272 </artwork></figure> 270 273 <t anchor="abnf.dependencies"> 274 <x:anchor-alias value="entity-tag"/> 275 <x:anchor-alias value="HTTP-date"/> 271 276 The ABNF rules below are defined in other parts: 272 277 </t> 273 278 <figure><!--Part1--><artwork type="abnf2616"> 274 HTTP-date= <HTTP-date, defined in &full-date;>279 <x:ref>HTTP-date</x:ref> = <HTTP-date, defined in &full-date;> 275 280 </artwork></figure> 276 281 <figure><!--Part4--><artwork type="abnf2616"> 277 entity-tag= <entity-tag, defined in &entity-tags;>282 <x:ref>entity-tag</x:ref> = <entity-tag, defined in &entity-tags;> 278 283 </artwork></figure> 279 284 </section> 280 285 281 286 <section title="Range Units" anchor="range.units"> 287 <x:anchor-alias value="bytes-unit"/> 288 <x:anchor-alias value="other-range-unit"/> 289 <x:anchor-alias value="range-unit"/> 282 290 <t> 283 291 HTTP/1.1 allows a client to request that only part (a range of) the … … 288 296 </t> 289 297 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="range-unit"/><iref primary="true" item="Grammar" subitem="bytes-unit"/><iref primary="true" item="Grammar" subitem="other-range-unit"/> 290 range-unit = bytes-unit | other-range-unit291 bytes-unit= "bytes"292 other-range-unit = token298 <x:ref>range-unit</x:ref> = <x:ref>bytes-unit</x:ref> | <x:ref>other-range-unit</x:ref> 299 <x:ref>bytes-unit</x:ref> = "bytes" 300 <x:ref>other-range-unit</x:ref> = <x:ref>token</x:ref> 293 301 </artwork></figure> 294 302 <t> … … 416 424 <iref primary="true" item="Accept-Ranges header" x:for-anchor=""/> 417 425 <iref primary="true" item="Headers" subitem="Accept-Ranges" x:for-anchor=""/> 426 <x:anchor-alias value="Accept-Ranges"/> 427 <x:anchor-alias value="acceptable-ranges"/> 418 428 <t> 419 429 The Accept-Ranges response-header field allows the server to … … 421 431 </t> 422 432 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Ranges"/><iref primary="true" item="Grammar" subitem="acceptable-ranges"/> 423 Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges424 acceptable-ranges = 1#range-unit| "none"433 <x:ref>Accept-Ranges</x:ref> = "Accept-Ranges" ":" <x:ref>acceptable-ranges</x:ref> 434 <x:ref>acceptable-ranges</x:ref> = 1#<x:ref>range-unit</x:ref> | "none" 425 435 </artwork></figure> 426 436 <t> … … 450 460 <iref primary="true" item="Content-Range header" x:for-anchor=""/> 451 461 <iref primary="true" item="Headers" subitem="Content-Range" x:for-anchor=""/> 462 <x:anchor-alias value="byte-content-range-spec"/> 463 <x:anchor-alias value="byte-range-resp-spec"/> 464 <x:anchor-alias value="Content-Range"/> 465 <x:anchor-alias value="content-range-spec"/> 466 <x:anchor-alias value="instance-length"/> 452 467 <t> 453 468 The Content-Range entity-header is sent with a partial entity-body to … … 456 471 </t> 457 472 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Range"/><iref primary="true" item="Grammar" subitem="content-range-spec"/><iref primary="true" item="Grammar" subitem="byte-content-range-spec"/><iref primary="true" item="Grammar" subitem="byte-range-resp-spec"/><iref primary="true" item="Grammar" subitem="instance-length"/> 458 Content-Range = "Content-Range" ":" content-range-spec473 <x:ref>Content-Range</x:ref> = "Content-Range" ":" <x:ref>content-range-spec</x:ref> 459 474 460 content-range-spec = byte-content-range-spec461 byte-content-range-spec = bytes-unit SP462 byte-range-resp-spec"/"463 ( instance-length| "*" )475 <x:ref>content-range-spec</x:ref> = <x:ref>byte-content-range-spec</x:ref> 476 <x:ref>byte-content-range-spec</x:ref> = <x:ref>bytes-unit</x:ref> <x:ref>SP</x:ref> 477 <x:ref>byte-range-resp-spec</x:ref> "/" 478 ( <x:ref>instance-length</x:ref> | "*" ) 464 479 465 byte-range-resp-spec = (first-byte-pos "-" last-byte-pos)480 <x:ref>byte-range-resp-spec</x:ref> = (<x:ref>first-byte-pos</x:ref> "-" <x:ref>last-byte-pos</x:ref>) 466 481 | "*" 467 instance-length = 1*DIGIT482 <x:ref>instance-length</x:ref> = 1*<x:ref>DIGIT</x:ref> 468 483 </artwork></figure> 469 484 <t> … … 583 598 <iref primary="true" item="If-Range header" x:for-anchor=""/> 584 599 <iref primary="true" item="Headers" subitem="If-Range" x:for-anchor=""/> 600 <x:anchor-alias value="If-Range"/> 585 601 <t> 586 602 If a client has a partial copy of an entity in its cache, and wishes … … 599 615 </t> 600 616 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Range"/> 601 If-Range = "If-Range" ":" ( entity-tag | HTTP-date)617 <x:ref>If-Range</x:ref> = "If-Range" ":" ( <x:ref>entity-tag</x:ref> | <x:ref>HTTP-date</x:ref> ) 602 618 </artwork></figure> 603 619 <t> … … 634 650 the entity-body (not necessarily the same as the message-body). 635 651 </t> 636 <t> 652 <t anchor="rule.ranges-specifier"> 653 <x:anchor-alias value="byte-range-set"/> 654 <x:anchor-alias value="byte-range-spec"/> 655 <x:anchor-alias value="byte-ranges-specifier"/> 656 <x:anchor-alias value="first-byte-pos"/> 657 <x:anchor-alias value="last-byte-pos"/> 658 <x:anchor-alias value="ranges-specifier"/> 659 <x:anchor-alias value="suffix-byte-range-spec"/> 660 <x:anchor-alias value="suffix-length"/> 637 661 A byte range operation &MAY; specify a single range of bytes, or a set 638 662 of ranges within a single entity. 639 663 </t> 640 664 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ranges-specifier"/><iref primary="true" item="Grammar" subitem="byte-ranges-specifier"/><iref primary="true" item="Grammar" subitem="byte-range-set"/><iref primary="true" item="Grammar" subitem="byte-range-spec"/><iref primary="true" item="Grammar" subitem="first-byte-pos"/><iref primary="true" item="Grammar" subitem="last-byte-pos"/> 641 ranges-specifier = byte-ranges-specifier642 byte-ranges-specifier = bytes-unit "=" byte-range-set643 byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec)644 byte-range-spec = first-byte-pos "-" [last-byte-pos]645 first-byte-pos = 1*DIGIT646 last-byte-pos = 1*DIGIT665 <x:ref>ranges-specifier</x:ref> = <x:ref>byte-ranges-specifier</x:ref> 666 <x:ref>byte-ranges-specifier</x:ref> = <x:ref>bytes-unit</x:ref> "=" <x:ref>byte-range-set</x:ref> 667 <x:ref>byte-range-set</x:ref> = 1#( <x:ref>byte-range-spec</x:ref> | <x:ref>suffix-byte-range-spec</x:ref> ) 668 <x:ref>byte-range-spec</x:ref> = <x:ref>first-byte-pos</x:ref> "-" [<x:ref>last-byte-pos</x:ref>] 669 <x:ref>first-byte-pos</x:ref> = 1*<x:ref>DIGIT</x:ref> 670 <x:ref>last-byte-pos</x:ref> = 1*<x:ref>DIGIT</x:ref> 647 671 </artwork></figure> 648 672 <t> … … 670 694 </t> 671 695 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="suffix-byte-range-spec"/><iref primary="true" item="Grammar" subitem="suffix-length"/> 672 suffix-byte-range-spec = "-" suffix-length673 suffix-length = 1*DIGIT696 <x:ref>suffix-byte-range-spec</x:ref> = "-" <x:ref>suffix-length</x:ref> 697 <x:ref>suffix-length</x:ref> = 1*<x:ref>DIGIT</x:ref> 674 698 </artwork></figure> 675 699 <t> … … 717 741 718 742 <section title="Range Retrieval Requests" anchor="range.retrieval.requests"> 743 <x:anchor-alias value="Range"/> 719 744 <t> 720 745 HTTP retrieval requests using conditional or unconditional GET … … 724 749 </t> 725 750 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Range"/> 726 Range = "Range" ":" ranges-specifier751 <x:ref>Range</x:ref> = "Range" ":" <x:ref>ranges-specifier</x:ref> 727 752 </artwork></figure> 728 753 <t> -
draft-ietf-httpbis/latest/p6-cache.html
r228 r229 684 684 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="Augmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 685 685 </p> 686 <div id="rfc.figure.u.1"></div><pre class="inline"> DIGIT= <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>687 DQUOTE= <DQUOTE, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>688 SP= <SP, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>689 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> quoted-string= <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>690 token= <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>>686 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 687 <a href="#notation" class="smpl">DQUOTE</a> = <DQUOTE, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 688 <a href="#notation" class="smpl">SP</a> = <SP, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 689 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 690 <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 691 691 </pre><div id="abnf.dependencies"> 692 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p>692 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 693 693 </div> 694 <div id="rfc.figure.u.3"></div><pre class="inline"> field-name= <field-name, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>>695 HTTP-date= <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>>696 port= <port, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>697 pseudonym= <pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 8.9</a>>698 uri-host= <uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>694 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">field-name</a> = <field-name, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>> 695 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>> 696 <a href="#abnf.dependencies" class="smpl">port</a> = <port, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 697 <a href="#abnf.dependencies" class="smpl">pseudonym</a> = <pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 8.9</a>> 698 <a href="#abnf.dependencies" class="smpl">uri-host</a> = <uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 699 699 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="caching.overview" href="#caching.overview">Overview</a></h1> 700 700 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="cache.correctness" href="#cache.correctness">Cache Correctness</a></h2> … … 1207 1207 are calculated as specified in <a href="#age.calculations" title="Age Calculations">Section 4.3</a>. 1208 1208 </p> 1209 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> Age = "Age" ":" age-value 1210 age-value = delta-seconds 1211 </pre><p id="rfc.section.16.1.p.3">Age values are non-negative decimal integers, representing time in seconds.</p> 1212 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.3"></span> delta-seconds = 1*DIGIT 1209 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#header.age" class="smpl">Age</a> = "Age" ":" <a href="#header.age" class="smpl">age-value</a> 1210 <a href="#header.age" class="smpl">age-value</a> = <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> 1211 </pre><div id="rule.delta-seconds"> 1212 <p id="rfc.section.16.1.p.3"> Age values are non-negative decimal integers, representing time in seconds.</p> 1213 </div> 1214 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> = 1*<a href="#notation" class="smpl">DIGIT</a> 1213 1215 </pre><p id="rfc.section.16.1.p.5">If a cache receives a value larger than the largest positive integer it can represent, or if any of its age calculations overflows, 1214 1216 it <em class="bcp14">MUST</em> transmit an Age header with a value of 2147483648 (2^31). An HTTP/1.1 server that includes a cache <em class="bcp14">MUST</em> include an Age header field in every response generated from its own cache. Caches <em class="bcp14">SHOULD</em> use an arithmetic type of at least 31 bits of range. … … 1230 1232 a specific cache. 1231 1233 </p> 1232 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span> Cache-Control = "Cache-Control" ":" 1#cache-directive1234 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span> <a href="#header.cache-control" class="smpl">Cache-Control</a> = "Cache-Control" ":" 1#<a href="#header.cache-control" class="smpl">cache-directive</a> 1233 1235 1234 cache-directive = cache-request-directive1235 | cache-response-directive1236 <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#header.cache-control" class="smpl">cache-request-directive</a> 1237 | <a href="#header.cache-control" class="smpl">cache-response-directive</a> 1236 1238 1237 cache-request-directive=1239 <a href="#header.cache-control" class="smpl">cache-request-directive</a> = 1238 1240 "no-cache" ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a> 1239 1241 | "no-store" ; <a href="#what.may.be.stored.by.caches" title="What May be Stored by Caches">Section 16.2.2</a> 1240 | "max-age" "=" delta-seconds; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>, <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">16.2.4</a>1241 | "max-stale" [ "=" delta-seconds] ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>1242 | "min-fresh" "=" delta-seconds; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>1242 | "max-age" "=" <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>, <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">16.2.4</a> 1243 | "max-stale" [ "=" <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ] ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a> 1244 | "min-fresh" "=" <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a> 1243 1245 | "no-transform" ; <a href="#no-transform.directive" title="No-Transform Directive">Section 16.2.5</a> 1244 1246 | "only-if-cached" ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section 16.2.4</a> 1245 | cache-extension; <a href="#cache.control.extensions" title="Cache Control Extensions">Section 16.2.6</a>1247 | <a href="#header.cache-control" class="smpl">cache-extension</a> ; <a href="#cache.control.extensions" title="Cache Control Extensions">Section 16.2.6</a> 1246 1248 1247 cache-response-directive=1249 <a href="#header.cache-control" class="smpl">cache-response-directive</a> = 1248 1250 "public" ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a> 1249 | "private" [ "=" DQUOTE 1#field-name DQUOTE] ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a>1250 | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE] ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a>1251 | "private" [ "=" <a href="#notation" class="smpl">DQUOTE</a> 1#<a href="#abnf.dependencies" class="smpl">field-name</a> <a href="#notation" class="smpl">DQUOTE</a> ] ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a> 1252 | "no-cache" [ "=" <a href="#notation" class="smpl">DQUOTE</a> 1#<a href="#abnf.dependencies" class="smpl">field-name</a> <a href="#notation" class="smpl">DQUOTE</a> ] ; <a href="#what.is.cacheable" title="What is Cacheable">Section 16.2.1</a> 1251 1253 | "no-store" ; <a href="#what.may.be.stored.by.caches" title="What May be Stored by Caches">Section 16.2.2</a> 1252 1254 | "no-transform" ; <a href="#no-transform.directive" title="No-Transform Directive">Section 16.2.5</a> 1253 1255 | "must-revalidate" ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section 16.2.4</a> 1254 1256 | "proxy-revalidate" ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section 16.2.4</a> 1255 | "max-age" "=" delta-seconds; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>1256 | "s-maxage" "=" delta-seconds; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a>1257 | cache-extension; <a href="#cache.control.extensions" title="Cache Control Extensions">Section 16.2.6</a>1257 | "max-age" "=" <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a> 1258 | "s-maxage" "=" <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> ; <a href="#modifications.of.the.basic.expiration.mechanism" title="Modifications of the Basic Expiration Mechanism">Section 16.2.3</a> 1259 | <a href="#header.cache-control" class="smpl">cache-extension</a> ; <a href="#cache.control.extensions" title="Cache Control Extensions">Section 16.2.6</a> 1258 1260 1259 cache-extension = token [ "=" ( token | quoted-string) ]1261 <a href="#header.cache-control" class="smpl">cache-extension</a> = <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) ] 1260 1262 </pre><p id="rfc.section.16.2.p.4">When a directive appears without any 1#field-name parameter, the directive applies to the entire request or response. When 1261 1263 such a directive appears with a 1#field-name parameter, it applies only to the named field or fields, and not to the rest … … 1534 1536 <p id="rfc.section.16.3.p.3">The format is an absolute date and time as defined by HTTP-date in <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.18"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1535 1537 </p> 1536 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.9"></span> Expires = "Expires" ":" HTTP-date1538 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.9"></span> <a href="#header.expires" class="smpl">Expires</a> = "Expires" ":" <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 1537 1539 </pre><p id="rfc.section.16.3.p.5">An example of its use is</p> 1538 1540 <div id="rfc.figure.u.17"></div><pre class="text"> Expires: Thu, 01 Dec 1994 16:00:00 GMT … … 1561 1563 systems <em class="bcp14">MAY</em> require that behavior be consistent with the directives. 1562 1564 </p> 1563 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span> Pragma = "Pragma" ":" 1#pragma-directive1564 pragma-directive = "no-cache" | extension-pragma1565 extension-pragma = token [ "=" ( token | quoted-string) ]1565 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span> <a href="#header.pragma" class="smpl">Pragma</a> = "Pragma" ":" 1#<a href="#header.pragma" class="smpl">pragma-directive</a> 1566 <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" | <a href="#header.pragma" class="smpl">extension-pragma</a> 1567 <a href="#header.pragma" class="smpl">extension-pragma</a> = <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> | <a href="#notation" class="smpl">quoted-string</a> ) ] 1566 1568 </pre><p id="rfc.section.16.4.p.3">When the no-cache directive is present in a request message, an application <em class="bcp14">SHOULD</em> forward the request toward the origin server even if it has a cached copy of what is being requested. This pragma directive 1567 1569 has the same semantics as the no-cache cache-directive (see <a href="#header.cache-control" id="rfc.xref.header.cache-control.10" title="Cache-Control">Section 16.2</a>) and is defined here for backward compatibility with HTTP/1.0. Clients <em class="bcp14">SHOULD</em> include both header fields when a no-cache request is sent to a server not known to be HTTP/1.1 compliant. … … 1588 1590 appropriate representation. See <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 8</a> for use of the Vary header field by caches. 1589 1591 </p> 1590 <div id="rfc.figure.u.19"></div><pre class="inline"><span id="rfc.iref.g.13"></span> Vary = "Vary" ":" ( "*" | 1#field-name)1592 <div id="rfc.figure.u.19"></div><pre class="inline"><span id="rfc.iref.g.13"></span> <a href="#header.vary" class="smpl">Vary</a> = "Vary" ":" ( "*" | 1#<a href="#abnf.dependencies" class="smpl">field-name</a> ) 1591 1593 </pre><p id="rfc.section.16.5.p.3">An HTTP/1.1 server <em class="bcp14">SHOULD</em> include a Vary header field with any cacheable response that is subject to server-driven negotiation. Doing so allows a cache 1592 1594 to properly interpret future requests on that resource and informs the user agent about the presence of negotiation on that … … 1613 1615 </p> 1614 1616 <p id="rfc.section.16.6.p.2">Warning headers are sent with responses using:</p> 1615 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> Warning = "Warning" ":" 1#warning-value1617 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> <a href="#header.warning" class="smpl">Warning</a> = "Warning" ":" 1#<a href="#header.warning" class="smpl">warning-value</a> 1616 1618 1617 warning-value = warn-code SP warn-agent SP warn-text1618 [ SP warn-date]1619 <a href="#header.warning" class="smpl">warning-value</a> = <a href="#header.warning" class="smpl">warn-code</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-agent</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-text</a> 1620 [<a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-date</a>] 1619 1621 1620 warn-code = 3DIGIT1621 warn-agent = ( uri-host [ ":" port ] ) | pseudonym1622 <a href="#header.warning" class="smpl">warn-code</a> = 3<a href="#notation" class="smpl">DIGIT</a> 1623 <a href="#header.warning" class="smpl">warn-agent</a> = ( <a href="#abnf.dependencies" class="smpl">uri-host</a> [ ":" <a href="#abnf.dependencies" class="smpl">port</a> ] ) | <a href="#abnf.dependencies" class="smpl">pseudonym</a> 1622 1624 ; the name or pseudonym of the server adding 1623 1625 ; the Warning header, for use in debugging 1624 warn-text = quoted-string1625 warn-date = DQUOTE HTTP-date DQUOTE1626 <a href="#header.warning" class="smpl">warn-text</a> = <a href="#notation" class="smpl">quoted-string</a> 1627 <a href="#header.warning" class="smpl">warn-date</a> = <a href="#notation" class="smpl">DQUOTE</a> <a href="#abnf.dependencies" class="smpl">HTTP-date</a> <a href="#notation" class="smpl">DQUOTE</a> 1626 1628 </pre><p id="rfc.section.16.6.p.4">A response <em class="bcp14">MAY</em> carry more than one Warning header. 1627 1629 </p> -
draft-ietf-httpbis/latest/p6-cache.xml
r228 r229 429 429 430 430 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 431 <x:anchor-alias value="DIGIT"/> 432 <x:anchor-alias value="DQUOTE"/> 433 <x:anchor-alias value="quoted-string"/> 434 <x:anchor-alias value="SP"/> 435 <x:anchor-alias value="token"/> 431 436 <t> 432 437 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 436 441 </t> 437 442 <figure><artwork type="abnf2616"> 438 DIGIT= <DIGIT, defined in &basic-rules;>439 DQUOTE= <DQUOTE, defined in &basic-rules;>440 SP= <SP, defined in &basic-rules;>443 <x:ref>DIGIT</x:ref> = <DIGIT, defined in &basic-rules;> 444 <x:ref>DQUOTE</x:ref> = <DQUOTE, defined in &basic-rules;> 445 <x:ref>SP</x:ref> = <SP, defined in &basic-rules;> 441 446 </artwork></figure> 442 447 <figure><artwork type="abnf2616"> 443 quoted-string= <quoted-string, defined in &basic-rules;>444 token= <token, defined in &basic-rules;>448 <x:ref>quoted-string</x:ref> = <quoted-string, defined in &basic-rules;> 449 <x:ref>token</x:ref> = <token, defined in &basic-rules;> 445 450 </artwork></figure> 446 451 <t anchor="abnf.dependencies"> 452 <x:anchor-alias value="field-name"/> 453 <x:anchor-alias value="HTTP-date"/> 454 <x:anchor-alias value="port"/> 455 <x:anchor-alias value="pseudonym"/> 456 <x:anchor-alias value="uri-host"/> 447 457 The ABNF rules below are defined in other parts: 448 458 </t> 449 459 <figure><!--Part1--><artwork type="abnf2616"> 450 field-name= <field-name, defined in &message-headers;>451 HTTP-date= <HTTP-date, defined in &full-date;>452 port= <port, defined in &general-syntax;>453 pseudonym= <pseudonym, defined in &header-via;>454 uri-host= <uri-host, defined in &general-syntax;>460 <x:ref>field-name</x:ref> = <field-name, defined in &message-headers;> 461 <x:ref>HTTP-date</x:ref> = <HTTP-date, defined in &full-date;> 462 <x:ref>port</x:ref> = <port, defined in &general-syntax;> 463 <x:ref>pseudonym</x:ref> = <pseudonym, defined in &header-via;> 464 <x:ref>uri-host</x:ref> = <uri-host, defined in &general-syntax;> 455 465 </artwork></figure> 456 466 </section> … … 1493 1503 <iref primary="true" item="Age header" x:for-anchor=""/> 1494 1504 <iref primary="true" item="Headers" subitem="Age" x:for-anchor=""/> 1505 <x:anchor-alias value="Age"/> 1506 <x:anchor-alias value="age-value"/> 1495 1507 <t> 1496 1508 The Age response-header field conveys the sender's estimate of the … … 1501 1513 </t> 1502 1514 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="age-value"/> 1503 Age = "Age" ":" age-value1504 age-value = delta-seconds1515 <x:ref>Age</x:ref> = "Age" ":" <x:ref>age-value</x:ref> 1516 <x:ref>age-value</x:ref> = <x:ref>delta-seconds</x:ref> 1505 1517 </artwork></figure> 1506 <t> 1518 <t anchor="rule.delta-seconds"> 1519 <x:anchor-alias value="delta-seconds"/> 1507 1520 Age values are non-negative decimal integers, representing time in 1508 1521 seconds. 1509 1522 </t> 1510 1523 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/> 1511 delta-seconds = 1*DIGIT1524 <x:ref>delta-seconds</x:ref> = 1*<x:ref>DIGIT</x:ref> 1512 1525 </artwork></figure> 1513 1526 <t> … … 1525 1538 <iref primary="true" item="Cache-Control header" x:for-anchor=""/> 1526 1539 <iref primary="true" item="Headers" subitem="Cache-Control" x:for-anchor=""/> 1540 <x:anchor-alias value="Cache-Control"/> 1541 <x:anchor-alias value="cache-directive"/> 1542 <x:anchor-alias value="cache-extension"/> 1543 <x:anchor-alias value="cache-request-directive"/> 1544 <x:anchor-alias value="cache-response-directive"/> 1527 1545 <t> 1528 1546 The Cache-Control general-header field is used to specify directives … … 1547 1565 </t> 1548 1566 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-directive"/><iref primary="true" item="Grammar" subitem="cache-request-directive"/><iref primary="true" item="Grammar" subitem="cache-response-directive"/><iref primary="true" item="Grammar" subitem="cache-extension"/> 1549 Cache-Control = "Cache-Control" ":" 1#cache-directive1550 1551 cache-directive = cache-request-directive1552 | cache-response-directive1553 1554 cache-request-directive=1567 <x:ref>Cache-Control</x:ref> = "Cache-Control" ":" 1#<x:ref>cache-directive</x:ref> 1568 1569 <x:ref>cache-directive</x:ref> = <x:ref>cache-request-directive</x:ref> 1570 | <x:ref>cache-response-directive</x:ref> 1571 1572 <x:ref>cache-request-directive</x:ref> = 1555 1573 "no-cache" ; <xref target="what.is.cacheable"/> 1556 1574 | "no-store" ; <xref target="what.may.be.stored.by.caches"/> 1557 | "max-age" "=" delta-seconds; <xref target="modifications.of.the.basic.expiration.mechanism"/>, <xref format="counter" target="cache.revalidation.and.reload.controls"/>1558 | "max-stale" [ "=" delta-seconds] ; <xref target="modifications.of.the.basic.expiration.mechanism"/>1559 | "min-fresh" "=" delta-seconds; <xref target="modifications.of.the.basic.expiration.mechanism"/>1575 | "max-age" "=" <x:ref>delta-seconds</x:ref> ; <xref target="modifications.of.the.basic.expiration.mechanism"/>, <xref format="counter" target="cache.revalidation.and.reload.controls"/> 1576 | "max-stale" [ "=" <x:ref>delta-seconds</x:ref> ] ; <xref target="modifications.of.the.basic.expiration.mechanism"/> 1577 | "min-fresh" "=" <x:ref>delta-seconds</x:ref> ; <xref target="modifications.of.the.basic.expiration.mechanism"/> 1560 1578 | "no-transform" ; <xref target="no-transform.directive"/> 1561 1579 | "only-if-cached" ; <xref target="cache.revalidation.and.reload.controls"/> 1562 | cache-extension; <xref target="cache.control.extensions"/>1563 1564 cache-response-directive=1580 | <x:ref>cache-extension</x:ref> ; <xref target="cache.control.extensions"/> 1581 1582 <x:ref>cache-response-directive</x:ref> = 1565 1583 "public" ; <xref target="what.is.cacheable"/> 1566 | "private" [ "=" DQUOTE 1#field-name DQUOTE] ; <xref target="what.is.cacheable"/>1567 | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE] ; <xref target="what.is.cacheable"/>1584 | "private" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] ; <xref target="what.is.cacheable"/> 1585 | "no-cache" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] ; <xref target="what.is.cacheable"/> 1568 1586 | "no-store" ; <xref target="what.may.be.stored.by.caches"/> 1569 1587 | "no-transform" ; <xref target="no-transform.directive"/> 1570 1588 | "must-revalidate" ; <xref target="cache.revalidation.and.reload.controls"/> 1571 1589 | "proxy-revalidate" ; <xref target="cache.revalidation.and.reload.controls"/> 1572 | "max-age" "=" delta-seconds; <xref target="modifications.of.the.basic.expiration.mechanism"/>1573 | "s-maxage" "=" delta-seconds; <xref target="modifications.of.the.basic.expiration.mechanism"/>1574 | cache-extension; <xref target="cache.control.extensions"/>1575 1576 cache-extension = token [ "=" ( token | quoted-string) ]1590 | "max-age" "=" <x:ref>delta-seconds</x:ref> ; <xref target="modifications.of.the.basic.expiration.mechanism"/> 1591 | "s-maxage" "=" <x:ref>delta-seconds</x:ref> ; <xref target="modifications.of.the.basic.expiration.mechanism"/> 1592 | <x:ref>cache-extension</x:ref> ; <xref target="cache.control.extensions"/> 1593 1594 <x:ref>cache-extension</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ] 1577 1595 </artwork></figure> 1578 1596 <t> … … 2069 2087 <iref primary="true" item="Expires header" x:for-anchor=""/> 2070 2088 <iref primary="true" item="Headers" subitem="Expires" x:for-anchor=""/> 2089 <x:anchor-alias value="Expires"/> 2071 2090 <t> 2072 2091 The Expires entity-header field gives the date/time after which the … … 2087 2106 </t> 2088 2107 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/> 2089 Expires = "Expires" ":" HTTP-date2108 <x:ref>Expires</x:ref> = "Expires" ":" <x:ref>HTTP-date</x:ref> 2090 2109 </artwork></figure> 2091 2110 <t> … … 2129 2148 <iref primary="true" item="Pragma header" x:for-anchor=""/> 2130 2149 <iref primary="true" item="Headers" subitem="Pragma" x:for-anchor=""/> 2150 <x:anchor-alias value="extension-pragma"/> 2151 <x:anchor-alias value="Pragma"/> 2152 <x:anchor-alias value="pragma-directive"/> 2131 2153 <t> 2132 2154 The Pragma general-header field is used to include implementation-specific … … 2137 2159 </t> 2138 2160 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Pragma"/><iref primary="true" item="Grammar" subitem="pragma-directive"/><iref primary="true" item="Grammar" subitem="extension-pragma"/> 2139 Pragma = "Pragma" ":" 1#pragma-directive2140 pragma-directive = "no-cache" | extension-pragma2141 extension-pragma = token [ "=" ( token | quoted-string) ]2161 <x:ref>Pragma</x:ref> = "Pragma" ":" 1#<x:ref>pragma-directive</x:ref> 2162 <x:ref>pragma-directive</x:ref> = "no-cache" | <x:ref>extension-pragma</x:ref> 2163 <x:ref>extension-pragma</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ] 2142 2164 </artwork></figure> 2143 2165 <t> … … 2173 2195 <iref primary="true" item="Vary header" x:for-anchor=""/> 2174 2196 <iref primary="true" item="Headers" subitem="Vary" x:for-anchor=""/> 2197 <x:anchor-alias value="Vary"/> 2175 2198 <t> 2176 2199 The Vary field value indicates the set of request-header fields that … … 2185 2208 </t> 2186 2209 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/> 2187 Vary = "Vary" ":" ( "*" | 1#field-name)2210 <x:ref>Vary</x:ref> = "Vary" ":" ( "*" | 1#<x:ref>field-name</x:ref> ) 2188 2211 </artwork></figure> 2189 2212 <t> … … 2224 2247 <iref primary="true" item="Warning header" x:for-anchor=""/> 2225 2248 <iref primary="true" item="Headers" subitem="Warning" x:for-anchor=""/> 2249 <x:anchor-alias value="Warning"/> 2250 <x:anchor-alias value="warning-value"/> 2251 <x:anchor-alias value="warn-agent"/> 2252 <x:anchor-alias value="warn-code"/> 2253 <x:anchor-alias value="warn-date"/> 2254 <x:anchor-alias value="warn-text"/> 2226 2255 <t> 2227 2256 The Warning general-header field is used to carry additional … … 2236 2265 </t> 2237 2266 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Warning"/><iref primary="true" item="Grammar" subitem="warning-value"/><iref primary="true" item="Grammar" subitem="warn-code"/><iref primary="true" item="Grammar" subitem="warn-agent"/><iref primary="true" item="Grammar" subitem="warn-text"/><iref primary="true" item="Grammar" subitem="warn-date"/> 2238 Warning = "Warning" ":" 1#warning-value2267 <x:ref>Warning</x:ref> = "Warning" ":" 1#<x:ref>warning-value</x:ref> 2239 2268 2240 warning-value = warn-code SP warn-agent SP warn-text2241 [ SP warn-date]2269 <x:ref>warning-value</x:ref> = <x:ref>warn-code</x:ref> <x:ref>SP</x:ref> <x:ref>warn-agent</x:ref> <x:ref>SP</x:ref> <x:ref>warn-text</x:ref> 2270 [<x:ref>SP</x:ref> <x:ref>warn-date</x:ref>] 2242 2271 2243 warn-code = 3DIGIT2244 warn-agent = ( uri-host [ ":" port ] ) | pseudonym2272 <x:ref>warn-code</x:ref> = 3<x:ref>DIGIT</x:ref> 2273 <x:ref>warn-agent</x:ref> = ( <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ) | <x:ref>pseudonym</x:ref> 2245 2274 ; the name or pseudonym of the server adding 2246 2275 ; the Warning header, for use in debugging 2247 warn-text = quoted-string2248 warn-date = DQUOTE HTTP-date DQUOTE2276 <x:ref>warn-text</x:ref> = <x:ref>quoted-string</x:ref> 2277 <x:ref>warn-date</x:ref> = <x:ref>DQUOTE</x:ref> <x:ref>HTTP-date</x:ref> <x:ref>DQUOTE</x:ref> 2249 2278 </artwork></figure> 2250 2279 <t> -
draft-ietf-httpbis/latest/p7-auth.html
r228 r229 542 542 </p> 543 543 <div id="abnf.dependencies"> 544 <p id="rfc.section.2.p.2"> The ABNF rules below are defined in other specifications:</p>544 <p id="rfc.section.2.p.2"> The ABNF rules below are defined in other specifications:</p> 545 545 </div> 546 <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> challenge= <challenge, defined in <a href="#RFC2617" id="rfc.xref.RFC2617.3"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>, <a href="http://tools.ietf.org/html/rfc2617#section-1.2">Section 1.2</a>>547 credentials= <credentials, defined in <a href="#RFC2617" id="rfc.xref.RFC2617.4"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>, <a href="http://tools.ietf.org/html/rfc2617#section-1.2">Section 1.2</a>>546 <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#abnf.dependencies" class="smpl">challenge</a> = <challenge, defined in <a href="#RFC2617" id="rfc.xref.RFC2617.3"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>, <a href="http://tools.ietf.org/html/rfc2617#section-1.2">Section 1.2</a>> 547 <a href="#abnf.dependencies" class="smpl">credentials</a> = <credentials, defined in <a href="#RFC2617" id="rfc.xref.RFC2617.4"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>, <a href="http://tools.ietf.org/html/rfc2617#section-1.2">Section 1.2</a>> 548 548 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> Status Code Definitions 549 549 </h1> … … 571 571 containing the authentication information of the user agent for the realm of the resource being requested. 572 572 </p> 573 <div id="rfc.figure.u.2"></div><pre class="inline"><span id="rfc.iref.g.3"></span> Authorization = "Authorization" ":" credentials573 <div id="rfc.figure.u.2"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#header.authorization" class="smpl">Authorization</a> = "Authorization" ":" <a href="#abnf.dependencies" class="smpl">credentials</a> 574 574 </pre><p id="rfc.section.4.1.p.3">HTTP access authentication is described in "HTTP Authentication: Basic and Digest Access Authentication" <a href="#RFC2617" id="rfc.xref.RFC2617.7"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>. If a request is authenticated and a realm specified, the same credentials <em class="bcp14">SHOULD</em> be valid for all other requests within this realm (assuming that the authentication scheme itself does not require otherwise, 575 575 such as credentials that vary according to a challenge value or using synchronized clocks). … … 594 594 the authentication scheme and parameters applicable to the proxy for this Request-URI. 595 595 </p> 596 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.4"></span> Proxy-Authenticate = "Proxy-Authenticate" ":" 1#challenge596 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.4"></span> <a href="#header.proxy-authenticate" class="smpl">Proxy-Authenticate</a> = "Proxy-Authenticate" ":" 1#<a href="#abnf.dependencies" class="smpl">challenge</a> 597 597 </pre><p id="rfc.section.4.2.p.3">The HTTP access authentication process is described in "HTTP Authentication: Basic and Digest Access Authentication" <a href="#RFC2617" id="rfc.xref.RFC2617.8"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>. Unlike WWW-Authenticate, the Proxy-Authenticate header field applies only to the current connection and <em class="bcp14">SHOULD NOT</em> be passed on to downstream clients. However, an intermediate proxy might need to obtain its own credentials by requesting 598 598 them from the downstream client, which in some circumstances will appear as if the proxy is forwarding the Proxy-Authenticate … … 606 606 user agent for the proxy and/or realm of the resource being requested. 607 607 </p> 608 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.5"></span> Proxy-Authorization = "Proxy-Authorization" ":" credentials608 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.5"></span> <a href="#header.proxy-authorization" class="smpl">Proxy-Authorization</a> = "Proxy-Authorization" ":" <a href="#abnf.dependencies" class="smpl">credentials</a> 609 609 </pre><p id="rfc.section.4.3.p.3">The HTTP access authentication process is described in "HTTP Authentication: Basic and Digest Access Authentication" <a href="#RFC2617" id="rfc.xref.RFC2617.9"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>. Unlike Authorization, the Proxy-Authorization header field applies only to the next outbound proxy that demanded authentication 610 610 using the Proxy-Authenticate field. When multiple proxies are used in a chain, the Proxy-Authorization header field is consumed … … 618 618 authentication scheme(s) and parameters applicable to the Request-URI. 619 619 </p> 620 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.6"></span> WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge620 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.6"></span> <a href="#header.www-authenticate" class="smpl">WWW-Authenticate</a> = "WWW-Authenticate" ":" 1#<a href="#abnf.dependencies" class="smpl">challenge</a> 621 621 </pre><p id="rfc.section.4.4.p.3">The HTTP access authentication process is described in "HTTP Authentication: Basic and Digest Access Authentication" <a href="#RFC2617" id="rfc.xref.RFC2617.10"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>. User agents are advised to take special care in parsing the WWW-Authenticate field value as it might contain more than one 622 622 challenge, or if more than one WWW-Authenticate header field is provided, the contents of a challenge itself can contain a -
draft-ietf-httpbis/latest/p7-auth.xml
r228 r229 250 250 </t> 251 251 <t anchor="abnf.dependencies"> 252 <x:anchor-alias value="challenge"/> 253 <x:anchor-alias value="credentials"/> 252 254 The ABNF rules below are defined in other specifications: 253 255 </t> 254 256 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="challenge"/><iref primary="true" item="Grammar" subitem="credentials"/> 255 challenge= <challenge, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>>256 credentials= <credentials, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>>257 <x:ref>challenge</x:ref> = <challenge, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>> 258 <x:ref>credentials</x:ref> = <credentials, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>> 257 259 </artwork></figure> 258 260 </section> … … 304 306 <iref primary="true" item="Authorization header" x:for-anchor=""/> 305 307 <iref primary="true" item="Headers" subitem="Authorization" x:for-anchor=""/> 308 <x:anchor-alias value="Authorization"/> 306 309 <t> 307 310 A user agent that wishes to authenticate itself with a server-- … … 313 316 </t> 314 317 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Authorization"/> 315 Authorization = "Authorization" ":" credentials318 <x:ref>Authorization</x:ref> = "Authorization" ":" <x:ref>credentials</x:ref> 316 319 </artwork></figure> 317 320 <t> … … 358 361 <iref primary="true" item="Proxy-Authenticate header" x:for-anchor=""/> 359 362 <iref primary="true" item="Headers" subitem="Proxy-Authenticate" x:for-anchor=""/> 363 <x:anchor-alias value="Proxy-Authenticate"/> 360 364 <t> 361 365 The Proxy-Authenticate response-header field &MUST; be included as part … … 365 369 </t> 366 370 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authenticate"/> 367 Proxy-Authenticate = "Proxy-Authenticate" ":" 1#challenge371 <x:ref>Proxy-Authenticate</x:ref> = "Proxy-Authenticate" ":" 1#<x:ref>challenge</x:ref> 368 372 </artwork></figure> 369 373 <t> … … 382 386 <iref primary="true" item="Proxy-Authorization header" x:for-anchor=""/> 383 387 <iref primary="true" item="Headers" subitem="Proxy-Authorization" x:for-anchor=""/> 388 <x:anchor-alias value="Proxy-Authorization"/> 384 389 <t> 385 390 The Proxy-Authorization request-header field allows the client to … … 390 395 </t> 391 396 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authorization"/> 392 Proxy-Authorization = "Proxy-Authorization" ":" credentials397 <x:ref>Proxy-Authorization</x:ref> = "Proxy-Authorization" ":" <x:ref>credentials</x:ref> 393 398 </artwork></figure> 394 399 <t> … … 409 414 <iref primary="true" item="WWW-Authenticate header" x:for-anchor=""/> 410 415 <iref primary="true" item="Headers" subitem="WWW-Authenticate" x:for-anchor=""/> 416 <x:anchor-alias value="WWW-Authenticate"/> 411 417 <t> 412 418 The WWW-Authenticate response-header field &MUST; be included in 401 … … 416 422 </t> 417 423 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="WWW-Authenticate"/> 418 WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge424 <x:ref>WWW-Authenticate</x:ref> = "WWW-Authenticate" ":" 1#<x:ref>challenge</x:ref> 419 425 </artwork></figure> 420 426 <t>
Note: See TracChangeset
for help on using the changeset viewer.