Changeset 229


Ignore:
Timestamp:
Mar 2, 2008, 9:21:57 AM (12 years ago)
Author:
julian.reschke@…
Message:

add linking between ABNF rules (does not affect TXT version), relates to #36.

Location:
draft-ietf-httpbis/latest
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p1-messaging.html

    r228 r229  
    930930      </dl>
    931931      <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a>&nbsp;<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
    936938                   ; any 8-bit sequence of data
    937   CHAR           = %x01-7F
     939  <a href="#core.rules" class="smpl">CHAR</a>           = %x01-7F
    938940                   ; any US-ASCII character, excluding NUL
    939   ALPHA          = %x41-5A | %x61-7A
     941  <a href="#core.rules" class="smpl">ALPHA</a>          = %x41-5A | %x61-7A
    940942                   ; A-Z | a-z
    941   DIGIT          = %x30-39
     943  <a href="#core.rules" class="smpl">DIGIT</a>          = %x30-39
    942944                   ; any US-ASCII digit "0".."9"
    943   CTL            = %x00-1F | %x7F
     945  <a href="#core.rules" class="smpl">CTL</a>            = %x00-1F | %x7F
    944946                   ; (octets 0 - 31) and DEL (127)
    945   CR             = %x0D
     947  <a href="#core.rules" class="smpl">CR</a>             = %x0D
    946948                   ; US-ASCII CR, carriage return (13)
    947   LF             = %x0A
     949  <a href="#core.rules" class="smpl">LF</a>             = %x0A
    948950                   ; US-ASCII LF, linefeed (10)
    949   SP             = %x20
     951  <a href="#core.rules" class="smpl">SP</a>             = %x20
    950952                   ; US-ASCII SP, space (32)
    951   HTAB           = %x09
     953  <a href="#core.rules" class="smpl">HTAB</a>           = %x09
    952954                   ; US-ASCII HT, horizontal-tab (9)
    953   DQUOTE         = %x22
     955  <a href="#core.rules" class="smpl">DQUOTE</a>         = %x22
    954956                   ; 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&nbsp;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&nbsp;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>
    968976</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
    969977         will be replaced with a single SP before interpretation of the TEXT value.
    970978      </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&nbsp;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     = "(" | ")" | "&lt;" | "&gt;" | "@"
    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&nbsp;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>     = "(" | ")" | "&lt;" | "&gt;" | "@"
     989                 | "," | ";" | ":" | "\" | <a href="#core.rules" class="smpl">DQUOTE</a>
    978990                 | "/" | "[" | "]" | "?" | "="
    979                  | "{" | "}" | SP | HTAB
     991                 | "{" | "}" | <a href="#core.rules" class="smpl">SP</a> | <a href="#core.rules" class="smpl">HTAB</a>
    980992                 
    981   tchar          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
     993  <a href="#rule.token.separators" class="smpl">tchar</a>          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
    982994                 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~"
    983                  | DIGIT | ALPHA
    984                  ; any CHAR except CTLs or separators
     995                 | <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>
    985997                 
    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          = &lt;any TEXT excluding "(" and ")"&gt;
    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         = &lt;any TEXT excluding DQUOTE and "\"&gt;
    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>          = &lt;any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding "(" and ")"&gt;
     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>         = &lt;any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding <a href="#core.rules" class="smpl">DQUOTE</a> and "\"&gt;
     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>
    9991017</pre><h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a>&nbsp;<a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h2>
    10001018      <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 = &lt;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>&gt;
    1002   response-header = &lt;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>&gt;
    1003 </pre><div id="rfc.figure.u.14"></div><pre class="inline">  accept-params   = &lt;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>&gt;
    1004   entity-body     = &lt;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>&gt;
    1005   entity-header   = &lt;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>&gt;
    1006 </pre><div id="rfc.figure.u.15"></div><pre class="inline">  Cache-Control   = &lt;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>&gt;
    1007   Pragma          = &lt;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>&gt;
    1008   Warning         = &lt;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>&gt;
     1019      <div id="rfc.figure.u.13"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">request-header</a>  = &lt;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>&gt;
     1020  <a href="#abnf.dependencies" class="smpl">response-header</a> = &lt;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>&gt;
     1021</pre><div id="rfc.figure.u.14"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">accept-params</a>   = &lt;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>&gt;
     1022  <a href="#abnf.dependencies" class="smpl">entity-body</a>     = &lt;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>&gt;
     1023  <a href="#abnf.dependencies" class="smpl">entity-header</a>   = &lt;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>&gt;
     1024</pre><div id="rfc.figure.u.15"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Cache-Control</a>   = &lt;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>&gt;
     1025  <a href="#abnf.dependencies" class="smpl">Pragma</a>          = &lt;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>&gt;
     1026  <a href="#abnf.dependencies" class="smpl">Warning</a>         = &lt;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>&gt;
    10091027</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1>
    10101028      <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="http.version" href="#http.version">HTTP Version</a></h2>
     
    10181036      </p>
    10191037      <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*DIGIT
     1038      <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>
    10211039</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.
    10221040         Leading zeros <em class="bcp14">MUST</em> be ignored by recipients and <em class="bcp14">MUST NOT</em> be sent.
     
    10481066         "abs_path", "query", and "authority" from that specification:
    10491067      </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   = &lt;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>&gt;
    1051   authority     = &lt;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>&gt;
    1052   fragment      = &lt;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>&gt;
    1053   path-absolute = &lt;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>&gt;
    1054   port          = &lt;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>&gt;
    1055   query         = &lt;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>&gt;
    1056   relativeURI   = &lt;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>&gt;
    1057   uri-host      = &lt;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>&gt;
     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>   = &lt;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>&gt;
     1069  <a href="#general.syntax" class="smpl">authority</a>     = &lt;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>&gt;
     1070  <a href="#general.syntax" class="smpl">fragment</a>      = &lt;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>&gt;
     1071  <a href="#general.syntax" class="smpl">path-absolute</a> = &lt;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>&gt;
     1072  <a href="#general.syntax" class="smpl">port</a>          = &lt;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>&gt;
     1073  <a href="#general.syntax" class="smpl">query</a>         = &lt;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>&gt;
     1074  <a href="#general.syntax" class="smpl">relativeURI</a>   = &lt;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>&gt;
     1075  <a href="#general.syntax" class="smpl">uri-host</a>      = &lt;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>&gt;
    10581076</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>).
    10591077      </p>
     
    10681086         and semantics for http URLs.
    10691087      </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> ]]
    10721090</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
    10731091         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&nbsp;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&nbsp;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.
     
    11081126         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.
    11091127      </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-date
    1111   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 4DIGIT
    1114   date1        = 2DIGIT SP month SP 4DIGIT
     1128      <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>
    11151133                 ; day month year (e.g., 02 Jun 1982)
    1116   date2        = 2DIGIT "-" month "-" 2DIGIT
     1134  <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>
    11171135                 ; 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> ))
    11191137                 ; month day (e.g., Jun  2)
    1120   time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
     1138  <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>
    11211139                 ; 00:00:00 - 23:59:59
    1122   wkday        = "Mon" | "Tue" | "Wed"
     1140  <a href="#full.date" class="smpl">wkday</a>        = "Mon" | "Tue" | "Wed"
    11231141               | "Thu" | "Fri" | "Sat" | "Sun"
    1124   weekday      = "Monday" | "Tuesday" | "Wednesday"
     1142  <a href="#full.date" class="smpl">weekday</a>      = "Monday" | "Tuesday" | "Wednesday"
    11251143               | "Thursday" | "Friday" | "Saturday" | "Sunday"
    1126   month        = "Jan" | "Feb" | "Mar" | "Apr"
     1144  <a href="#full.date" class="smpl">month</a>        = "Jan" | "Feb" | "Mar" | "Apr"
    11271145               | "May" | "Jun" | "Jul" | "Aug"
    11281146               | "Sep" | "Oct" | "Nov" | "Dec"
     
    11351153         is a property of the message, not of the original entity.
    11361154      </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>
    11431163</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&nbsp;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&nbsp;8.7</a>).
    11441164      </p>
     
    11631183         necessary for the recipient to verify that it has received the full message.
    11641184      </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   = *chunk
    1166                    last-chunk
    1167                    trailer-part
    1168                    CRLF
     1185      <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>
    11691189 
    1170   chunk          = chunk-size [ chunk-extension ] CRLF
    1171                    chunk-data CRLF
    1172   chunk-size     = 1*HEX
    1173   last-chunk     = 1*("0") [ chunk-extension ] CRLF
     1190  <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>
    11741194 
    1175   chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    1176   chunk-ext-name = token
    1177   chunk-ext-val  = token | quoted-string
    1178   chunk-data     = 1*OCTET ; a sequence of chunk-size octets
    1179   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>)
    11801200</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
    11811201         by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line.
     
    12221242         space. By convention, the products are listed in order of their significance for identifying the application.
    12231243      </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 = token
     1244      <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>
    12261246</pre><p id="rfc.section.3.5.p.3">Examples:</p>
    12271247      <div id="rfc.figure.u.27"></div><pre class="text">    User-Agent: CERN-LineMode/2.15 libwww/2.17b3
     
    12321252      <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;<a id="message.types" href="#message.types">Message Types</a></h2>
    12331253      <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 messages
     1254      <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
    12351255</pre><p id="rfc.section.4.1.p.3">Request (<a href="#request" title="Request">Section&nbsp;5</a>) and Response (<a href="#response" title="Response">Section&nbsp;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
    12361256         fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header
    12371257         fields, and possibly a message-body.
    12381258      </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-line
    1240                     *(message-header CRLF)
    1241                     CRLF
    1242                     [ message-body ]
    1243   start-line      = Request-Line | Status-Line
     1259      <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>
    12441264</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
    12451265         stream at the beginning of a message and receives a CRLF first, it should ignore the CRLF.
     
    12551275         forms.
    12561276      </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     = token
    1259   field-value    = *( field-content | LWS )
    1260   field-content  = &lt;field content&gt;
    1261                    ; the OCTETs making up the field-value
    1262                    ; and consisting of either *TEXT or combinations
    1263                    ; of token, separators, and quoted-string
     1277      <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>  = &lt;field content&gt;
     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>
    12641284</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
    12651285         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.
     
    12801300         header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section&nbsp;8.7</a>).
    12811301      </p>
    1282       <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.67"></span>  message-body = entity-body
    1283                | &lt;entity-body encoded as per Transfer-Encoding&gt;
     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               | &lt;entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>&gt;
    12841304</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
    12851305         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&nbsp;3.4</a> places restrictions on when certain transfer-codings may be used.)
     
    13471367         to the entity being transferred. These header fields apply only to the message being transmitted.
    13481368      </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&nbsp;8.1</a>
    1351                  | Date                     ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section&nbsp;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&nbsp;8.6</a>
    1354                  | Transfer-Encoding        ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section&nbsp;8.7</a>
    1355                  | Upgrade                  ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section&nbsp;8.8</a>
    1356                  | Via                      ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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>
    13581378</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
    13591379         or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize
     
    13641384         resource, the identifier of the resource, and the protocol version in use.
    13651385      </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&nbsp;5.1</a>
    1367                   *(( general-header        ; <a href="#general.header.fields" title="General Header Fields">Section&nbsp;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                   CRLF
    1371                   [ message-body ]          ; <a href="#message.body" title="Message Body">Section&nbsp;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&nbsp;5.1</a>
     1387                  *(( <a href="#general.header.fields" class="smpl">general-header</a>        ; <a href="#general.header.fields" title="General Header Fields">Section&nbsp;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&nbsp;4.3</a>
    13721392</pre><h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a>&nbsp;<a id="request-line" href="#request-line">Request-Line</a></h2>
    13731393      <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
    13741394         elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence.
    13751395      </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 CRLF
     1396      <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>
    13771397</pre><h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a>&nbsp;<a id="method" href="#method">Method</a></h3>
    13781398      <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         = token
     1399      <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>
    13801400</pre><h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a>&nbsp;<a id="request-uri" href="#request-uri">Request-URI</a></h3>
    13811401      <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&nbsp;3.2</a>) and identifies the resource upon which to apply the request.
    13821402      </p>
    1383       <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.73"></span>  Request-URI    = "*"
    1384                  | absoluteURI
    1385                  | ( path-absolute [ "?" query ] )
    1386                  | authority
     1403      <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>
    13871407</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
    13881408         not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily
     
    14421462      <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="response" href="#response">Response</a></h1>
    14431463      <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&nbsp;6.1</a>
    1445                   *(( general-header        ; <a href="#general.header.fields" title="General Header Fields">Section&nbsp;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                   CRLF
    1449                   [ message-body ]          ; <a href="#message.body" title="Message Body">Section&nbsp;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&nbsp;6.1</a>
     1465                  *(( <a href="#general.header.fields" class="smpl">general-header</a>        ; <a href="#general.header.fields" title="General Header Fields">Section&nbsp;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&nbsp;4.3</a>
    14501470</pre><h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a id="status-line" href="#status-line">Status-Line</a></h2>
    14511471      <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
     
    14531473         CRLF sequence.
    14541474      </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 CRLF
     1475      <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>
    14561476</pre><h3 id="rfc.section.6.1.1"><a href="#rfc.section.6.1.1">6.1.1</a>&nbsp;<a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h3>
    14571477      <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
     
    14701490         <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li>
    14711491      </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    = 3DIGIT
    1473   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     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>  = *&lt;<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>&gt;
    14741494</pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;<a id="connections" href="#connections">Connections</a></h1>
    14751495      <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a>&nbsp;<a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h2>
     
    16611681      </p>
    16621682      <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  = token
     1683      <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>
    16651685</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
    16661686         field(s) from the message with the same name as the connection-token. Connection options are signaled by the presence of a
     
    16891709         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.
    16901710      </p>
    1691       <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.81"></span>  Content-Length    = "Content-Length" ":" 1*DIGIT
     1711      <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>
    16921712</pre><p id="rfc.section.8.2.p.3">An example is</p>
    16931713      <div id="rfc.figure.u.46"></div><pre class="text">    Content-Length: 3495
     
    17061726         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&nbsp;3.3.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format.
    17071727      </p>
    1708       <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.82"></span>  Date  = "Date" ":" HTTP-date
     1728      <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>
    17091729</pre><p id="rfc.section.8.3.p.3">An example is</p>
    17101730      <div id="rfc.figure.u.48"></div><pre class="text">    Date: Tue, 15 Nov 1994 08:12:31 GMT
     
    17441764         a single IP address.
    17451765      </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&nbsp;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&nbsp;3.2.2</a>
    17471767</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
    17481768         URL). For example, a request on the origin server for &lt;http://www.example.org/pub/WWW/&gt; would properly include:
     
    17631783         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&nbsp;3.4</a>).
    17641784      </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> ] )
    17671787</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,
    17681788         as defined in <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section&nbsp;3.4.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding.
     
    18061826         with chunked transfer-coding.
    18071827      </p>
    1808       <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.86"></span>  Trailer  = "Trailer" ":" 1#field-name
     1828      <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>
    18091829</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
    18101830         to know which header fields to expect in the trailer.
     
    18261846         transfer-coding is a property of the message, not of the entity.
    18271847      </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-coding
     1848      <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>
    18291849</pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section&nbsp;3.4</a>. An example is:
    18301850      </p>
     
    18391859         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.
    18401860      </p>
    1841       <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.88"></span>  Upgrade        = "Upgrade" ":" 1#product
     1861      <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>
    18421862</pre><p id="rfc.section.8.8.p.3">For example,</p>
    18431863      <div id="rfc.figure.u.57"></div><pre class="text">    Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
     
    18701890         of all senders along the request/response chain.
    18711891      </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-version
    1874   protocol-name     = token
    1875   protocol-version  = token
    1876   received-by       = ( uri-host [ ":" port ] ) | pseudonym
    1877   pseudonym         = token
     1892      <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>
    18781898</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
    18791899         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  
    813813
    814814<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"/>
    836826   The following rules are used throughout this specification to
    837827   describe basic parsing constructs. The US-ASCII coded character set
     
    839829</t>
    840830<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-FF
     831  <x:ref>OCTET</x:ref>          = %x00-FF
    842832                   ; any 8-bit sequence of data
    843   CHAR           = %x01-7F
     833  <x:ref>CHAR</x:ref>           = %x01-7F
    844834                   ; any US-ASCII character, excluding NUL
    845   ALPHA          = %x41-5A | %x61-7A
     835  <x:ref>ALPHA</x:ref>          = %x41-5A | %x61-7A
    846836                   ; A-Z | a-z
    847   DIGIT          = %x30-39
     837  <x:ref>DIGIT</x:ref>          = %x30-39
    848838                   ; any US-ASCII digit "0".."9"
    849   CTL            = %x00-1F | %x7F
     839  <x:ref>CTL</x:ref>            = %x00-1F | %x7F
    850840                   ; (octets 0 - 31) and DEL (127)
    851   CR             = %x0D
     841  <x:ref>CR</x:ref>             = %x0D
    852842                   ; US-ASCII CR, carriage return (13)
    853   LF             = %x0A
     843  <x:ref>LF</x:ref>             = %x0A
    854844                   ; US-ASCII LF, linefeed (10)
    855   SP             = %x20
     845  <x:ref>SP</x:ref>             = %x20
    856846                   ; US-ASCII SP, space (32)
    857   HTAB           = %x09
     847  <x:ref>HTAB</x:ref>           = %x09
    858848                   ; US-ASCII HT, horizontal-tab (9)
    859   DQUOTE         = %x22
     849  <x:ref>DQUOTE</x:ref>         = %x22
    860850                   ; US-ASCII double-quote mark (34)
    861851</artwork></figure>
    862 <t>
     852<t anchor="rule.CRLF">
     853  <x:anchor-alias value="CRLF"/>
    863854   HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
    864855   protocol elements except the entity-body (see <xref target="tolerant.applications"/> for
     
    867858</t>
    868859<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"/>
    872864   HTTP/1.1 header field values can be folded onto multiple lines if the
    873865   continuation line begins with a space or horizontal tab. All linear
     
    877869</t>
    878870<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"/>
    882875   The TEXT rule is only used for descriptive field contents and values
    883876   that are not intended to be interpreted by the message parser. Words
     
    887880</t>
    888881<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/>
    889   TEXT           = %x20-7E | %x80-FF | LWS
    890                  ; any OCTET except CTLs, but including LWS
     882  <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>
    891884</artwork></figure>
    892885<t>
     
    895888   replaced with a single SP before interpretation of the TEXT value.
    896889</t>
    897 <t>
     890<t anchor="rule.HEX">
     891  <x:anchor-alias value="HEX"/>
    898892   Hexadecimal numeric characters are used in several protocol elements.
    899893</t>
    900894<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"/>
    905902   Many HTTP/1.1 header field values consist of words separated by LWS
    906903   or special characters. These special characters &MUST; be in a quoted
     
    909906</t>
    910907<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     = "(" | ")" | "&lt;" | "&gt;" | "@"
    912                  | "," | ";" | ":" | "\" | DQUOTE
     908  <x:ref>separators</x:ref>     = "(" | ")" | "&lt;" | "&gt;" | "@"
     909                 | "," | ";" | ":" | "\" | <x:ref>DQUOTE</x:ref>
    913910                 | "/" | "[" | "]" | "?" | "="
    914                  | "{" | "}" | SP | HTAB
     911                 | "{" | "}" | <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref>
    915912                 
    916   tchar          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
     913  <x:ref>tchar</x:ref>          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
    917914                 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~"
    918                  | DIGIT | ALPHA
    919                  ; any CHAR except CTLs or separators
     915                 | <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>
    920917                 
    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"/>
    924923   Comments can be included in some HTTP header fields by surrounding
    925924   the comment text with parentheses. Comments are only allowed in
     
    929928</t>
    930929<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          = &lt;any TEXT excluding "(" and ")"&gt;
    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>          = &lt;any <x:ref>TEXT</x:ref> excluding "(" and ")"&gt;
     932</artwork></figure>
     933<t anchor="rule.quoted-string">
     934  <x:anchor-alias value="quoted-string"/>
     935  <x:anchor-alias value="qdtext"/>
    935936   A string of text is parsed as a single word if it is quoted using
    936937   double-quote marks.
    937938</t>
    938939<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         = &lt;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>         = &lt;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"/>
    943945   The backslash character ("\") &MAY; be used as a single-character
    944946   quoting mechanism only within quoted-string and comment constructs.
    945947</t>
    946948<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/>
    947   quoted-pair    = "\" CHAR
     949  <x:ref>quoted-pair</x:ref>    = "\" <x:ref>CHAR</x:ref>
    948950</artwork></figure>
    949951</section>
    950952
    951953<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"/>
    952962<t>
    953963  The ABNF rules below are defined in other parts:
    954964</t>
    955965<figure><!-- Part2--><artwork type="abnf2616">
    956   request-header = &lt;request-header, defined in &request-header-fields;&gt;
    957   response-header = &lt;response-header, defined in &response-header-fields;&gt;
     966  <x:ref>request-header</x:ref>  = &lt;request-header, defined in &request-header-fields;&gt;
     967  <x:ref>response-header</x:ref> = &lt;response-header, defined in &response-header-fields;&gt;
    958968</artwork></figure>
    959969<figure><!-- Part3--><artwork type="abnf2616">
    960   accept-params   = &lt;accept-params, defined in &header-accept;&gt;
    961   entity-body     = &lt;entity-body, defined in &entity-body;&gt;
    962   entity-header   = &lt;entity-header, defined in &entity-header-fields;&gt;
     970  <x:ref>accept-params</x:ref>   = &lt;accept-params, defined in &header-accept;&gt;
     971  <x:ref>entity-body</x:ref>     = &lt;entity-body, defined in &entity-body;&gt;
     972  <x:ref>entity-header</x:ref>   = &lt;entity-header, defined in &entity-header-fields;&gt;
    963973</artwork></figure>
    964974<figure><!-- Part6--><artwork type="abnf2616">
    965   Cache-Control   = &lt;Cache-Control, defined in &header-pragma;&gt;
    966   Pragma          = &lt;Pragma, defined in &header-pragma;&gt;
    967   Warning         = &lt;Warning, defined in &header-warning;&gt;
     975  <x:ref>Cache-Control</x:ref>   = &lt;Cache-Control, defined in &header-pragma;&gt;
     976  <x:ref>Pragma</x:ref>          = &lt;Pragma, defined in &header-pragma;&gt;
     977  <x:ref>Warning</x:ref>         = &lt;Warning, defined in &header-warning;&gt;
    968978</artwork></figure>
    969979</section>
     
    974984
    975985<section title="HTTP Version" anchor="http.version">
     986  <x:anchor-alias value="HTTP-Version"/>
    976987<t>
    977988   HTTP uses a "&lt;major&gt;.&lt;minor&gt;" numbering scheme to indicate versions
     
    9941005</t>
    9951006<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version"/>
    996   HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT
     1007  <x:ref>HTTP-Version</x:ref>   = "HTTP" "/" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    9971008</artwork></figure>
    9981009<t>
     
    10541065
    10551066<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"/>
    10561075<t>
    10571076   URIs in HTTP can be represented in absolute form or relative to some
     
    10661085</t>
    10671086<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   = &lt;absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
    1069   authority     = &lt;authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>
    1070   fragment      = &lt;fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>
    1071   path-absolute = &lt;abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
    1072   port          = &lt;port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
    1073   query         = &lt;query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>
    1074   relativeURI   = &lt;relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>
    1075   uri-host      = &lt;host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
     1087  <x:ref>absoluteURI</x:ref>   = &lt;absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
     1088  <x:ref>authority</x:ref>     = &lt;authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>
     1089  <x:ref>fragment</x:ref>      = &lt;fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>
     1090  <x:ref>path-absolute</x:ref> = &lt;abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
     1091  <x:ref>port</x:ref>          = &lt;port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
     1092  <x:ref>query</x:ref>         = &lt;query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>
     1093  <x:ref>relativeURI</x:ref>   = &lt;relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>
     1094  <x:ref>uri-host</x:ref>      = &lt;host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
    10761095</artwork></figure>
    10771096<t>
     
    10951114
    10961115<section title="http URL" anchor="http.url">
     1116  <x:anchor-alias value="http-URL"/>
    10971117<t>
    10981118   The "http" scheme is used to locate network resources via the HTTP
     
    11011121</t>
    11021122<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> ]]
    11051125</artwork></figure>
    11061126<t>
     
    11491169<section title="Date/Time Formats" anchor="date.time.formats">
    11501170<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"/>
    11511183<t>
    11521184   HTTP applications have historically allowed three different formats
     
    11851217</t>
    11861218<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-date
    1188   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 4DIGIT
    1191   date1        = 2DIGIT SP month SP 4DIGIT
     1219  <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>
    11921224                 ; day month year (e.g., 02 Jun 1982)
    1193   date2        = 2DIGIT "-" month "-" 2DIGIT
     1225  <x:ref>date2</x:ref>        = 2<x:ref>DIGIT</x:ref> "-" <x:ref>month</x:ref> "-" 2<x:ref>DIGIT</x:ref>
    11941226                 ; 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> ))
    11961228                 ; month day (e.g., Jun  2)
    1197   time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
     1229  <x:ref>time</x:ref>         = 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref>
    11981230                 ; 00:00:00 - 23:59:59
    1199   wkday        = "Mon" | "Tue" | "Wed"
     1231  <x:ref>wkday</x:ref>        = "Mon" | "Tue" | "Wed"
    12001232               | "Thu" | "Fri" | "Sat" | "Sun"
    1201   weekday      = "Monday" | "Tuesday" | "Wednesday"
     1233  <x:ref>weekday</x:ref>      = "Monday" | "Tuesday" | "Wednesday"
    12021234               | "Thursday" | "Friday" | "Saturday" | "Sunday"
    1203   month        = "Jan" | "Feb" | "Mar" | "Apr"
     1235  <x:ref>month</x:ref>        = "Jan" | "Feb" | "Mar" | "Apr"
    12041236               | "May" | "Jun" | "Jul" | "Aug"
    12051237               | "Sep" | "Oct" | "Nov" | "Dec"
     
    12151247
    12161248<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"/>
    12171252<t>
    12181253   Transfer-coding values are used to indicate an encoding
     
    12231258</t>
    12241259<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"/>
    12291267   Parameters are in  the form of attribute/value pairs.
    12301268</t>
    12311269<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 "=" value
    1233   attribute               = token
    1234   value                   = token | quoted-string
     1270  <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>
    12351273</artwork></figure>
    12361274<t>
     
    12751313
    12761314<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"/>
    12771324<t>
    12781325   The chunked encoding modifies the body of a message in order to
     
    12841331</t>
    12851332<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   = *chunk
    1287                    last-chunk
    1288                    trailer-part
    1289                    CRLF
     1333  <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>
    12901337 
    1291   chunk          = chunk-size [ chunk-extension ] CRLF
    1292                    chunk-data CRLF
    1293   chunk-size     = 1*HEX
    1294   last-chunk     = 1*("0") [ chunk-extension ] CRLF
     1338  <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>
    12951342 
    1296   chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    1297   chunk-ext-name = token
    1298   chunk-ext-val  = token | quoted-string
    1299   chunk-data     = 1*OCTET ; a sequence of chunk-size octets
    1300   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>)
    13011348</artwork></figure>
    13021349<t>
     
    13651412
    13661413<section title="Product Tokens" anchor="product.tokens">
     1414  <x:anchor-alias value="product"/>
     1415  <x:anchor-alias value="product-version"/>
    13671416<t>
    13681417   Product tokens are used to allow communicating applications to
     
    13741423</t>
    13751424<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 = token
     1425  <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>
    13781427</artwork></figure>
    13791428<t>
     
    13991448
    14001449<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"/>
    14011453<t>
    14021454   HTTP messages consist of requests from client to server and responses
     
    14041456</t>
    14051457<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/>
    1406   HTTP-message   = Request | Response     ; HTTP/1.1 messages
     1458  <x:ref>HTTP-message</x:ref>   = <x:ref>Request</x:ref> | <x:ref>Response</x:ref>     ; HTTP/1.1 messages
    14071459</artwork></figure>
    14081460<t>
     
    14151467</t>
    14161468<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/>
    1417   generic-message = start-line
    1418                     *(message-header CRLF)
    1419                     CRLF
    1420                     [ message-body ]
    1421   start-line      = Request-Line | Status-Line
     1469  <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>
    14221474</artwork></figure>
    14231475<t>
     
    14361488
    14371489<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"/>
    14381494<t>
    14391495   HTTP header fields, which include general-header (<xref target="general.header.fields"/>),
     
    14511507</t>
    14521508<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     = token
    1455   field-value    = *( field-content | LWS )
    1456   field-content  = &lt;field content&gt;
    1457                    ; the OCTETs making up the field-value
    1458                    ; and consisting of either *TEXT or combinations
    1459                    ; of token, separators, and quoted-string
     1509  <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>  = &lt;field content&gt;
     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>
    14601516</artwork></figure>
    14611517<t>
     
    14901546
    14911547<section title="Message Body" anchor="message.body">
     1548  <x:anchor-alias value="message-body"/>
    14921549<t>
    14931550   The message-body (if any) of an HTTP message is used to carry the
     
    14971554</t>
    14981555<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-body"/>
    1499   message-body = entity-body
    1500                | &lt;entity-body encoded as per Transfer-Encoding&gt;
     1556  <x:ref>message-body</x:ref> = <x:ref>entity-body</x:ref>
     1557               | &lt;entity-body encoded as per <x:ref>Transfer-Encoding</x:ref>&gt;
    15011558</artwork></figure>
    15021559<t>
     
    16211678
    16221679<section title="General Header Fields" anchor="general.header.fields">
     1680  <x:anchor-alias value="general-header"/>
    16231681<t>
    16241682   There are a few header fields which have general applicability for
     
    16281686</t>
    16291687<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;
    16391697</artwork></figure>
    16401698<t>
     
    16501708
    16511709<section title="Request" anchor="request">
     1710  <x:anchor-alias value="Request"/>
    16521711<t>
    16531712   A request message from a client to a server includes, within the
     
    16571716<!--                 Host                      ; should be moved here eventually -->
    16581717<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                   CRLF
    1664                   [ 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"/>
    16651724</artwork></figure>
    16661725
    16671726<section title="Request-Line" anchor="request-line">
     1727  <x:anchor-alias value="Request-Line"/>
    16681728<t>
    16691729   The Request-Line begins with a method token, followed by the
     
    16731733</t>
    16741734<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/>
    1675   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF
     1735  <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>
    16761736</artwork></figure>
    16771737
    16781738<section title="Method" anchor="method">
     1739  <x:anchor-alias value="Method"/>
    16791740<t>
    16801741   The Method  token indicates the method to be performed on the
     
    16821743</t>
    16831744<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/>
    1684   Method         = token
     1745  <x:ref>Method</x:ref>         = <x:ref>token</x:ref>
    16851746</artwork></figure>
    16861747</section>
    16871748
    16881749<section title="Request-URI" anchor="request-uri">
     1750  <x:anchor-alias value="Request-URI"/>
    16891751<t>
    16901752   The Request-URI is a Uniform Resource Identifier (<xref target="uri"/>) and
     
    16921754</t>
    16931755<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-URI"/>
    1694   Request-URI    = "*"
    1695                  | absoluteURI
    1696                  | ( path-absolute [ "?" query ] )
    1697                  | authority
     1756  <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>
    16981760</artwork></figure>
    16991761<t>
     
    18121874
    18131875<section title="Response" anchor="response">
     1876  <x:anchor-alias value="Response"/>
    18141877<t>
    18151878   After receiving and interpreting a request message, a server responds
     
    18171880</t>
    18181881<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                   CRLF
    1824                   [ 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"/>
    18251888</artwork></figure>
    18261889
    18271890<section title="Status-Line" anchor="status-line">
     1891  <x:anchor-alias value="Status-Line"/>
    18281892<t>
    18291893   The first line of a Response message is the Status-Line, consisting
     
    18331897</t>
    18341898<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/>
    1835   Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
     1899  <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>
    18361900</artwork></figure>
    18371901
    18381902<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"/>
    18391905<t>
    18401906   The Status-Code element is a 3-digit integer result code of the
     
    18731939</t>
    18741940<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    = 3DIGIT
    1876   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     1941  <x:ref>Status-Code</x:ref>    = 3<x:ref>DIGIT</x:ref>
     1942  <x:ref>Reason-Phrase</x:ref>  = *&lt;<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>&gt;
    18771943</artwork></figure>
    18781944</section>
     
    22942360  <iref primary="true" item="Connection header" x:for-anchor=""/>
    22952361  <iref primary="true" item="Headers" subitem="Connection" x:for-anchor=""/>
     2362  <x:anchor-alias value="Connection"/>
     2363  <x:anchor-alias value="connection-token"/>
    22962364<t>
    22972365   The Connection general-header field allows the sender to specify
     
    23032371</t>
    23042372<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  = token
     2373  <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>
    23072375</artwork></figure>
    23082376<t>
     
    23542422  <iref primary="true" item="Content-Length header" x:for-anchor=""/>
    23552423  <iref primary="true" item="Headers" subitem="Content-Length" x:for-anchor=""/>
     2424  <x:anchor-alias value="Content-Length"/>
    23562425<t>
    23572426   The Content-Length entity-header field indicates the size of the
     
    23612430</t>
    23622431<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/>
    2363   Content-Length    = "Content-Length" ":" 1*DIGIT
     2432  <x:ref>Content-Length</x:ref>    = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref>
    23642433</artwork></figure>
    23652434<t>
     
    23912460  <iref primary="true" item="Date header" x:for-anchor=""/>
    23922461  <iref primary="true" item="Headers" subitem="Date" x:for-anchor=""/>
     2462  <x:anchor-alias value="Date"/>
    23932463<t>
    23942464   The Date general-header field represents the date and time at which
     
    23982468</t>
    23992469<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/>
    2400   Date  = "Date" ":" HTTP-date
     2470  <x:ref>Date</x:ref>  = "Date" ":" <x:ref>HTTP-date</x:ref>
    24012471</artwork></figure>
    24022472<t>
     
    24672537  <iref primary="true" item="Host header" x:for-anchor=""/>
    24682538  <iref primary="true" item="Headers" subitem="Host" x:for-anchor=""/>
     2539  <x:anchor-alias value="Host"/>
    24692540<t>
    24702541   The Host request-header field specifies the Internet host and port
     
    24782549</t>
    24792550<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"/>
    24812552</artwork></figure>
    24822553<t>
     
    25112582  <iref primary="true" item="TE header" x:for-anchor=""/>
    25122583  <iref primary="true" item="Headers" subitem="TE" x:for-anchor=""/>
     2584  <x:anchor-alias value="TE"/>
     2585  <x:anchor-alias value="t-codings"/>
    25132586<t>
    25142587   The TE request-header field indicates what extension transfer-codings
     
    25202593</t>
    25212594<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> ] )
    25242597</artwork></figure>
    25252598<t>
     
    25852658  <iref primary="true" item="Trailer header" x:for-anchor=""/>
    25862659  <iref primary="true" item="Headers" subitem="Trailer" x:for-anchor=""/>
     2660  <x:anchor-alias value="Trailer"/>
    25872661<t>
    25882662   The Trailer general field value indicates that the given set of
     
    25912665</t>
    25922666<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/>
    2593   Trailer  = "Trailer" ":" 1#field-name
     2667  <x:ref>Trailer</x:ref>  = "Trailer" ":" 1#<x:ref>field-name</x:ref>
    25942668</artwork></figure>
    25952669<t>
     
    26182692  <iref primary="true" item="Transfer-Encoding header" x:for-anchor=""/>
    26192693  <iref primary="true" item="Headers" subitem="Transfer-Encoding" x:for-anchor=""/>
     2694  <x:anchor-alias value="Transfer-Encoding"/>
    26202695<t>
    26212696   The Transfer-Encoding general-header field indicates what (if any)
     
    26262701</t>
    26272702<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/>
    2628   Transfer-Encoding       = "Transfer-Encoding" ":" 1#transfer-coding
     2703  <x:ref>Transfer-Encoding</x:ref>       = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref>
    26292704</artwork></figure>
    26302705<t>
     
    26492724  <iref primary="true" item="Upgrade header" x:for-anchor=""/>
    26502725  <iref primary="true" item="Headers" subitem="Upgrade" x:for-anchor=""/>
     2726  <x:anchor-alias value="Upgrade"/>
    26512727<t>
    26522728   The Upgrade general-header allows the client to specify what
     
    26572733</t>
    26582734<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/>
    2659   Upgrade        = "Upgrade" ":" 1#product
     2735  <x:ref>Upgrade</x:ref>        = "Upgrade" ":" 1#<x:ref>product</x:ref>
    26602736</artwork></figure>
    26612737<t>
     
    27122788  <iref primary="true" item="Via header" x:for-anchor=""/>
    27132789  <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"/>
    27142796<t>
    27152797   The Via general-header field &MUST; be used by gateways and proxies to
     
    27222804</t>
    27232805<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-version
    2726   protocol-name     = token
    2727   protocol-version  = token
    2728   received-by       = ( uri-host [ ":" port ] ) | pseudonym
    2729   pseudonym         = token
     2806  <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>
    27302812</artwork></figure>
    27312813<t>
  • draft-ietf-httpbis/latest/p2-semantics.html

    r228 r229  
    633633      <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 &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    634634      </p>
    635       <div id="rfc.figure.u.1"></div><pre class="inline">  DIGIT         = &lt;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>&gt;
    636 </pre><div id="rfc.figure.u.2"></div><pre class="inline">  comment       = &lt;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>&gt;
    637   quoted-string = &lt;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>&gt;
    638   token         = &lt;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>&gt;
     635      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">DIGIT</a>         = &lt;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>&gt;
     636</pre><div id="rfc.figure.u.2"></div><pre class="inline"> 
     637  <a href="#notation" class="smpl">comment</a>       = &lt;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>&gt;
     638  <a href="#notation" class="smpl">quoted-string</a> = &lt;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>&gt;
     639  <a href="#notation" class="smpl">token</a>         = &lt;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>&gt;
    639640</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>
    641642      </div>
    642       <div id="rfc.figure.u.3"></div><pre class="inline">  absoluteURI   = &lt;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>&gt;
    643   fragment      = &lt;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>&gt;
    644   Host          = &lt;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>&gt;
    645   HTTP-date     = &lt;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>&gt;
    646   product       = &lt;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>&gt;
    647   relativeURI   = &lt;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>&gt;
    648   TE            = &lt;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>&gt;
    649 </pre><div id="rfc.figure.u.4"></div><pre class="inline">  Accept        = &lt;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>&gt;
    650   Accept-Charset =
     643      <div id="rfc.figure.u.3"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">absoluteURI</a>   = &lt;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>&gt;
     644  <a href="#abnf.dependencies" class="smpl">fragment</a>      = &lt;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>&gt;
     645  <a href="#abnf.dependencies" class="smpl">Host</a>          = &lt;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>&gt;
     646  <a href="#abnf.dependencies" class="smpl">HTTP-date</a>     = &lt;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>&gt;
     647  <a href="#abnf.dependencies" class="smpl">product</a>       = &lt;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>&gt;
     648  <a href="#abnf.dependencies" class="smpl">relativeURI</a>   = &lt;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>&gt;
     649  <a href="#abnf.dependencies" class="smpl">TE</a>            = &lt;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>&gt;
     650</pre><div id="rfc.figure.u.4"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Accept</a>        = &lt;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>&gt;
     651  <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> =
    651652             &lt;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>&gt;
    652   Accept-Encoding =
     653  <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> =
    653654             &lt;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>&gt;
    654   Accept-Language =
     655  <a href="#abnf.dependencies" class="smpl">Accept-Language</a> =
    655656             &lt;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>&gt;
    656 </pre><div id="rfc.figure.u.5"></div><pre class="inline">  ETag          = &lt;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>&gt;
    657   If-Match      = &lt;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>&gt;
    658   If-Modified-Since =
     657</pre><div id="rfc.figure.u.5"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">ETag</a>          = &lt;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>&gt;
     658  <a href="#abnf.dependencies" class="smpl">If-Match</a>      = &lt;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>&gt;
     659  <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> =
    659660             &lt;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>&gt;
    660   If-None-Match = &lt;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>&gt;
    661   If-Unmodified-Since =
     661  <a href="#abnf.dependencies" class="smpl">If-None-Match</a> = &lt;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>&gt;
     662  <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> =
    662663             &lt;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>&gt;
    663 </pre><div id="rfc.figure.u.6"></div><pre class="inline">  Accept-Ranges = &lt;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>&gt;
    664   If-Range      = &lt;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>&gt;
    665   Range         = &lt;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>&gt;
    666 </pre><div id="rfc.figure.u.7"></div><pre class="inline">  Age           = &lt;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>&gt;
    667   Vary          = &lt;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>&gt;
    668 </pre><div id="rfc.figure.u.8"></div><pre class="inline">  Authorization = &lt;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>&gt;
    669   Proxy-Authenticate =
     664</pre><div id="rfc.figure.u.6"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> = &lt;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>&gt;
     665  <a href="#abnf.dependencies" class="smpl">If-Range</a>      = &lt;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>&gt;
     666  <a href="#abnf.dependencies" class="smpl">Range</a>         = &lt;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>&gt;
     667</pre><div id="rfc.figure.u.7"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Age</a>           = &lt;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>&gt;
     668  <a href="#abnf.dependencies" class="smpl">Vary</a>          = &lt;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>&gt;
     669</pre><div id="rfc.figure.u.8"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Authorization</a> = &lt;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>&gt;
     670  <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> =
    670671             &lt;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>&gt;
    671   Proxy-Authorization =
     672  <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> =
    672673             &lt;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>&gt;
    673   WWW-Authenticate =
     674  <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> =
    674675             &lt;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>&gt;
    675676</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="method" href="#method">Method</a></h1>
    676677      <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&nbsp;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&nbsp;8.2</a>
    678679                 | "GET"                    ; <a href="#GET" id="rfc.xref.GET.1" title="GET">Section&nbsp;8.3</a>
    679680                 | "HEAD"                   ; <a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD">Section&nbsp;8.4</a>
     
    683684                 | "TRACE"                  ; <a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE">Section&nbsp;8.8</a>
    684685                 | "CONNECT"                ; <a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT">Section&nbsp;8.9</a>
    685                  | extension-method
    686   extension-method = token
     686                 | <a href="#method" class="smpl">extension-method</a>
     687  <a href="#method" class="smpl">extension-method</a> = <a href="#notation" class="smpl">token</a>
    687688</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&nbsp;10.1</a>). The return code of the response always notifies the client whether a method is currently allowed on a resource, since the
    688689         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
     
    695696         method invocation.
    696697      </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&nbsp;10.2</a>
    703                  | From                     ; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;10.9</a>
    716717</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
    717718         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.
     
    726727         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.
    727728      </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>    =
    729730         "100"  ; <a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section&nbsp;9.1.1</a>: Continue
    730731       | "101"  ; <a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section&nbsp;9.1.2</a>: Switching Protocols
     
    767768       | "504"  ; <a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section&nbsp;9.5.5</a>: Gateway Time-out
    768769       | "505"  ; <a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section&nbsp;9.5.6</a>: HTTP Version not supported
    769        | extension-code
     770       | <a href="#request.header.fields" class="smpl">extension-code</a>
    770771
    771   extension-code = 3DIGIT
    772   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     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>  = *&lt;TEXT, excluding CR, LF&gt;
    773774</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,
    774775         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
     
    782783         the Request-URI.
    783784      </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&nbsp;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&nbsp;10.7</a>
    790                   | Server                  ; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section&nbsp;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&nbsp;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&nbsp;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&nbsp;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>
    793794</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
    794795         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
     
    13921393         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.
    13931394      </p>
    1394       <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  Allow   = "Allow" ":" #Method
     1395      <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>
    13951396</pre><p id="rfc.section.10.1.p.3">Example of use:</p>
    13961397      <div id="rfc.figure.u.14"></div><pre class="text">       Allow: GET, HEAD, PUT
     
    14071408      <h2 id="rfc.section.10.2"><a href="#rfc.section.10.2">10.2</a>&nbsp;<a id="header.expect" href="#header.expect">Expect</a></h2>
    14081409      <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#expectation
     1410      <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>
    14101411 
    1411   expectation  =  "100-continue" | expectation-extension
    1412   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> ) ]
    14151416</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
    14161417         the request, some other 4xx status.
     
    14331434      <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>:
    14341435      </p>
    1435       <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.14"></span>  From    = "From" ":" mailbox
     1436      <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>
    14361437 
    1437   mailbox = &lt;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>&gt;
     1438  <a href="#header.from" class="smpl">mailbox</a> = &lt;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>&gt;
    14381439</pre><p id="rfc.section.10.3.p.3">An example is:</p>
    14391440      <div id="rfc.figure.u.17"></div><pre class="text">    From: webmaster@example.org
     
    14571458         URI.
    14581459      </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> ]
    14601461</pre><p id="rfc.section.10.4.p.3">An example is:</p>
    14611462      <div id="rfc.figure.u.19"></div><pre class="text">    Location: http://www.example.org/pub/WWW/People.html
     
    14801481         useful when the client is attempting to trace a request chain which appears to be failing or looping in mid-chain.
    14811482      </p>
    1482       <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.16"></span>  Max-Forwards   = "Max-Forwards" ":" 1*DIGIT
     1483      <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>
    14831484</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>
    14841485      <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).
     
    14951496         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.
    14961497      </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> )
    14981499</pre><p id="rfc.section.10.6.p.3">Example:</p>
    14991500      <div id="rfc.figure.u.22"></div><pre class="text">    Referer: http://www.example.org/hypertext/Overview.html
     
    15081509         the time of the response.
    15091510      </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>
    15131516</pre><p id="rfc.section.10.7.p.5">Two examples of its use are</p>
    15141517      <div id="rfc.figure.u.25"></div><pre class="text">    Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
     
    15221525         for identifying the application.
    15231526      </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> )
    15251528</pre><p id="rfc.section.10.8.p.3">Example:</p>
    15261529      <div id="rfc.figure.u.27"></div><pre class="text">    Server: CERN/3.0 libwww/2.17
     
    15411544         product tokens are listed in order of their significance for identifying the application.
    15421545      </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> )
    15441547</pre><p id="rfc.section.10.9.p.3">Example:</p>
    15451548      <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  
    291291
    292292<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"/>
    293297<t>
    294298  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    298302</t>
    299303<figure><artwork type="abnf2616">
    300   DIGIT         = &lt;DIGIT, defined in &basic-rules;&gt;
     304  <x:ref>DIGIT</x:ref>         = &lt;DIGIT, defined in &basic-rules;&gt;
    301305</artwork></figure>
    302306<figure><artwork type="abnf2616">
    303   comment       = &lt;comment, defined in &basic-rules;&gt;
    304   quoted-string = &lt;quoted-string, defined in &basic-rules;&gt;
    305   token         = &lt;token, defined in &basic-rules;&gt;
     307  <x:anchor-alias value="Accept"/>
     308  <x:ref>comment</x:ref>       = &lt;comment, defined in &basic-rules;&gt;
     309  <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &basic-rules;&gt;
     310  <x:ref>token</x:ref>         = &lt;token, defined in &basic-rules;&gt;
    306311</artwork></figure>
    307312<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"/>
    308338  The ABNF rules below are defined in other parts:
    309339</t>
    310340<figure><!--Part1--><artwork type="abnf2616">
    311   absoluteURI   = &lt;absoluteURI, defined in &general-syntax;&gt;
    312   fragment      = &lt;fragment, defined in &general-syntax;&gt;
    313   Host          = &lt;Host, defined in &header-host;&gt;
    314   HTTP-date     = &lt;HTTP-date, defined in &full-date;&gt;
    315   product       = &lt;product, defined in &product-tokens;&gt;
    316   relativeURI   = &lt;relativeURI, defined in &general-syntax;&gt;
    317   TE            = &lt;TE, defined in &header-te;&gt;
     341  <x:ref>absoluteURI</x:ref>   = &lt;absoluteURI, defined in &general-syntax;&gt;
     342  <x:ref>fragment</x:ref>      = &lt;fragment, defined in &general-syntax;&gt;
     343  <x:ref>Host</x:ref>          = &lt;Host, defined in &header-host;&gt;
     344  <x:ref>HTTP-date</x:ref>     = &lt;HTTP-date, defined in &full-date;&gt;
     345  <x:ref>product</x:ref>       = &lt;product, defined in &product-tokens;&gt;
     346  <x:ref>relativeURI</x:ref>   = &lt;relativeURI, defined in &general-syntax;&gt;
     347  <x:ref>TE</x:ref>            = &lt;TE, defined in &header-te;&gt;
    318348</artwork></figure>
    319349<figure><!--Part3--><artwork type="abnf2616">
    320   Accept        = &lt;Accept, defined in &header-accept;&gt;
    321   Accept-Charset =
     350  <x:ref>Accept</x:ref>        = &lt;Accept, defined in &header-accept;&gt;
     351  <x:ref>Accept-Charset</x:ref> =
    322352             &lt;Accept-Charset, defined in &header-accept-charset;&gt;
    323   Accept-Encoding =
     353  <x:ref>Accept-Encoding</x:ref> =
    324354             &lt;Accept-Encoding, defined in &header-accept-encoding;&gt;
    325   Accept-Language =
     355  <x:ref>Accept-Language</x:ref> =
    326356             &lt;Accept-Language, defined in &header-accept-language;&gt;
    327357</artwork></figure>
    328358<figure><!--Part4--><artwork type="abnf2616">
    329   ETag          = &lt;ETag, defined in &header-etag;&gt;
    330   If-Match      = &lt;If-Match, defined in &header-if-match;&gt;
    331   If-Modified-Since =
     359  <x:ref>ETag</x:ref>          = &lt;ETag, defined in &header-etag;&gt;
     360  <x:ref>If-Match</x:ref>      = &lt;If-Match, defined in &header-if-match;&gt;
     361  <x:ref>If-Modified-Since</x:ref> =
    332362             &lt;If-Modified-Since, defined in &header-if-modified-since;&gt;
    333   If-None-Match = &lt;If-None-Match, defined in &header-if-none-match;&gt;
    334   If-Unmodified-Since =
     363  <x:ref>If-None-Match</x:ref> = &lt;If-None-Match, defined in &header-if-none-match;&gt;
     364  <x:ref>If-Unmodified-Since</x:ref> =
    335365             &lt;If-Unmodified-Since, defined in &header-if-unmodified-since;&gt;
    336366</artwork></figure>
    337367<figure><!--Part5--><artwork type="abnf2616">
    338   Accept-Ranges = &lt;Accept-Ranges, defined in &header-accept-ranges;&gt;
    339   If-Range      = &lt;If-Range, defined in &header-if-range;&gt;
    340   Range         = &lt;Range, defined in &header-range;&gt;
     368  <x:ref>Accept-Ranges</x:ref> = &lt;Accept-Ranges, defined in &header-accept-ranges;&gt;
     369  <x:ref>If-Range</x:ref>      = &lt;If-Range, defined in &header-if-range;&gt;
     370  <x:ref>Range</x:ref>         = &lt;Range, defined in &header-range;&gt;
    341371</artwork></figure>
    342372<figure><!--Part6--><artwork type="abnf2616">
    343   Age           = &lt;Age, defined in &header-age;&gt;
    344   Vary          = &lt;Vary, defined in &header-vary;&gt;
     373  <x:ref>Age</x:ref>           = &lt;Age, defined in &header-age;&gt;
     374  <x:ref>Vary</x:ref>          = &lt;Vary, defined in &header-vary;&gt;
    345375</artwork><!--Part7--></figure>
    346376<figure><artwork type="abnf2616">
    347   Authorization = &lt;Authorization, defined in &header-authorization;&gt;
    348   Proxy-Authenticate =
     377  <x:ref>Authorization</x:ref> = &lt;Authorization, defined in &header-authorization;&gt;
     378  <x:ref>Proxy-Authenticate</x:ref> =
    349379             &lt;Proxy-Authenticate, defined in &header-proxy-authenticate;&gt;
    350   Proxy-Authorization =
     380  <x:ref>Proxy-Authorization</x:ref> =
    351381             &lt;Proxy-Authorization, defined in &header-proxy-authorization;&gt;
    352   WWW-Authenticate =
     382  <x:ref>WWW-Authenticate</x:ref> =
    353383             &lt;WWW-Authenticate, defined in &header-www-authenticate;&gt;
    354384</artwork></figure>
     
    356386
    357387<section title="Method" anchor="method">
     388  <x:anchor-alias value="Method"/>
     389  <x:anchor-alias value="extension-method"/>
    358390<t>
    359391   The Method  token indicates the method to be performed on the
     
    361393</t>
    362394<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"/>
    364396                 | "GET"                    ; <xref target="GET"/>
    365397                 | "HEAD"                   ; <xref target="HEAD"/>
     
    369401                 | "TRACE"                  ; <xref target="TRACE"/>
    370402                 | "CONNECT"                ; <xref target="CONNECT"/>
    371                  | extension-method
    372   extension-method = token
     403                 | <x:ref>extension-method</x:ref>
     404  <x:ref>extension-method</x:ref> = <x:ref>token</x:ref>
    373405</artwork></figure>
    374406<t>
     
    389421
    390422<section title="Request Header Fields" anchor="request.header.fields">
     423  <x:anchor-alias value="extension-code"/>
     424  <x:anchor-alias value="request-header"/>
    391425<t>
    392426   The request-header fields allow the client to pass additional
     
    397431</t>
    398432<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"/>
    418452</artwork></figure>
    419453<t>
     
    428462
    429463<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"/>
    430466<t>
    431467   The Status-Code element is a 3-digit integer result code of the
     
    445481</t>
    446482<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>    =
    448484         "100"  ; <xref target="status.100"/>: Continue
    449485       | "101"  ; <xref target="status.101"/>: Switching Protocols
     
    486522       | "504"  ; <xref target="status.504"/>: Gateway Time-out
    487523       | "505"  ; <xref target="status.505"/>: HTTP Version not supported
    488        | extension-code
    489 
    490   extension-code = 3DIGIT
    491   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     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>  = *&lt;<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>&gt;
    492528</artwork></figure>
    493529<t>
     
    509545
    510546<section title="Response Header Fields" anchor="response.header.fields">
     547  <x:anchor-alias value="response-header"/>
    511548<t>
    512549   The response-header fields allow the server to pass additional
     
    516553</t>
    517554<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;
    527564</artwork></figure>
    528565<t>
     
    16941731  <iref primary="true" item="Allow header" x:for-anchor=""/>
    16951732  <iref primary="true" item="Headers" subitem="Allow" x:for-anchor=""/>
     1733  <x:anchor-alias value="Allow"/>
    16961734<t>
    16971735      The Allow entity-header field lists the set of methods supported
     
    17021740</t>
    17031741<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Allow"/>
    1704   Allow   = "Allow" ":" #Method
     1742  <x:ref>Allow</x:ref>   = "Allow" ":" #<x:ref>Method</x:ref>
    17051743</artwork></figure>
    17061744<t>
     
    17331771  <iref primary="true" item="Expect header" x:for-anchor=""/>
    17341772  <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"/>
    17351777<t>
    17361778   The Expect request-header field is used to indicate that particular
     
    17381780</t>
    17391781<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#expectation
     1782  <x:ref>Expect</x:ref>       =  "Expect" ":" 1#<x:ref>expectation</x:ref>
    17411783 
    1742   expectation  =  "100-continue" | expectation-extension
    1743   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> ) ]
    17461788</artwork></figure>
    17471789<t>
     
    17831825  <iref primary="true" item="From header" x:for-anchor=""/>
    17841826  <iref primary="true" item="Headers" subitem="From" x:for-anchor=""/>
     1827  <x:anchor-alias value="From"/>
     1828  <x:anchor-alias value="mailbox"/>
    17851829<t>
    17861830   The From request-header field, if given, &SHOULD; contain an Internet
     
    17901834</t>
    17911835<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="From"/>
    1792   From    = "From" ":" mailbox
     1836  <x:ref>From</x:ref>    = "From" ":" <x:ref>mailbox</x:ref>
    17931837 
    1794   mailbox = &lt;mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>&gt;
     1838  <x:ref>mailbox</x:ref> = &lt;mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>&gt;
    17951839</artwork></figure>
    17961840<t>
     
    18281872  <iref primary="true" item="Location header" x:for-anchor=""/>
    18291873  <iref primary="true" item="Headers" subitem="Location" x:for-anchor=""/>
     1874  <x:anchor-alias value="Location"/>
    18301875<t>
    18311876   The Location response-header field is used to redirect the recipient
     
    18381883</t>
    18391884<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> ]
    18411886</artwork></figure>
    18421887<t>
     
    18681913  <iref primary="true" item="Max-Forwards header" x:for-anchor=""/>
    18691914  <iref primary="true" item="Headers" subitem="Max-Forwards" x:for-anchor=""/>
     1915  <x:anchor-alias value="Max-Forwards"/>
    18701916<t>
    18711917   The Max-Forwards request-header field provides a mechanism with the
     
    18771923</t>
    18781924<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Max-Forwards"/>
    1879   Max-Forwards   = "Max-Forwards" ":" 1*DIGIT
     1925  <x:ref>Max-Forwards</x:ref>   = "Max-Forwards" ":" 1*<x:ref>DIGIT</x:ref>
    18801926</artwork></figure>
    18811927<t>
     
    19021948  <iref primary="true" item="Referer header" x:for-anchor=""/>
    19031949  <iref primary="true" item="Headers" subitem="Referer" x:for-anchor=""/>
     1950  <x:anchor-alias value="Referer"/>
    19041951<t>
    19051952   The Referer[sic] request-header field allows the client to specify,
     
    19141961</t>
    19151962<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> )
    19171964</artwork></figure>
    19181965<t>
     
    19321979  <iref primary="true" item="Retry-After header" x:for-anchor=""/>
    19331980  <iref primary="true" item="Headers" subitem="Retry-After" x:for-anchor=""/>
     1981  <x:anchor-alias value="Retry-After"/>
    19341982<t>
    19351983   The Retry-After response-header field can be used with a 503 (Service
     
    19421990</t>
    19431991<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> )
    19451993</artwork></figure>
    1946 <t>
     1994<t anchor="rule.delta-seconds">
     1995  <x:anchor-alias value="delta-seconds"/>
    19471996   Time spans are non-negative decimal integers, representing time in
    19481997   seconds.
    19491998</t>
    19501999<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/>
    1951   delta-seconds  = 1*DIGIT
     2000  <x:ref>delta-seconds</x:ref>  = 1*<x:ref>DIGIT</x:ref>
    19522001</artwork></figure>
    19532002<t>
     
    19662015  <iref primary="true" item="Server header" x:for-anchor=""/>
    19672016  <iref primary="true" item="Headers" subitem="Server" x:for-anchor=""/>
     2017  <x:anchor-alias value="Server"/>
    19682018<t>
    19692019   The Server response-header field contains information about the
     
    19752025</t>
    19762026<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> )
    19782028</artwork></figure>
    19792029<t>
     
    20002050  <iref primary="true" item="User-Agent header" x:for-anchor=""/>
    20012051  <iref primary="true" item="Headers" subitem="User-Agent" x:for-anchor=""/>
     2052  <x:anchor-alias value="User-Agent"/>
    20022053<t>
    20032054   The User-Agent request-header field contains information about the
     
    20132064</t>
    20142065<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> )
    20162067</artwork></figure>
    20172068<t>
  • draft-ietf-httpbis/latest/p3-payload.html

    r228 r229  
    591591      <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 &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    592592      </p>
    593       <div id="rfc.figure.u.1"></div><pre class="inline">  ALPHA          = &lt;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>&gt;
    594   DIGIT          = &lt;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>&gt;
    595   OCTET          = &lt;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>&gt;
    596 </pre><div id="rfc.figure.u.2"></div><pre class="inline">  quoted-string  = &lt;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>&gt;
    597   token          = &lt;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>&gt;
     593      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">ALPHA</a>          = &lt;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>&gt;
     594  <a href="#notation" class="smpl">DIGIT</a>          = &lt;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>&gt;
     595  <a href="#notation" class="smpl">OCTET</a>          = &lt;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>&gt;
     596</pre><div id="rfc.figure.u.2"></div><pre class="inline">  <a href="#notation" class="smpl">quoted-string</a>  = &lt;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>&gt;
     597  <a href="#notation" class="smpl">token</a>          = &lt;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>&gt;
    598598</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>
    600600      </div>
    601       <div id="rfc.figure.u.3"></div><pre class="inline">  absoluteURI    = &lt;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>&gt;
    602   Content-Length = &lt;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>&gt;
    603   relativeURI    = &lt;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>&gt;
    604   message-header = &lt;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>&gt;
    605 </pre><div id="rfc.figure.u.4"></div><pre class="inline">  Allow          = &lt;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>&gt;
    606 </pre><div id="rfc.figure.u.5"></div><pre class="inline">  Last-Modified  = &lt;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>&gt;
    607 </pre><div id="rfc.figure.u.6"></div><pre class="inline">  Content-Range  = &lt;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>&gt;
    608 </pre><div id="rfc.figure.u.7"></div><pre class="inline">  Expires        = &lt;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>&gt;
     601      <div id="rfc.figure.u.3"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">absoluteURI</a>    = &lt;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>&gt;
     602  <a href="#abnf.dependencies" class="smpl">Content-Length</a> = &lt;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>&gt;
     603  <a href="#abnf.dependencies" class="smpl">relativeURI</a>    = &lt;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>&gt;
     604  <a href="#abnf.dependencies" class="smpl">message-header</a> = &lt;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>&gt;
     605</pre><div id="rfc.figure.u.4"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Allow</a>          = &lt;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>&gt;
     606</pre><div id="rfc.figure.u.5"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Last-Modified</a>  = &lt;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>&gt;
     607</pre><div id="rfc.figure.u.6"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Content-Range</a>  = &lt;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>&gt;
     608</pre><div id="rfc.figure.u.7"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">Expires</a>        = &lt;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>&gt;
    609609</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1>
    610610      <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="character.sets" href="#character.sets">Character Sets</a></h2>
     
    623623         </dd>
    624624      </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 (&lt;<a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a>&gt;).
    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 (&lt;<a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a>&gt;).
     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>
    629631</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
    630632         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.
     
    649651         decoded by the recipient.
    650652      </p>
    651       <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.2"></span>  content-coding   = token
     653      <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>
    652654</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&nbsp;6.3</a>) and Content-Encoding (<a href="#header.content-encoding" id="rfc.xref.header.content-encoding.1" title="Content-Encoding">Section&nbsp;6.5</a>) header fields. Although the value describes the content-coding, what is more important is that it indicates what decoding
    653655         mechanism will be required to remove the encoding.
     
    693695      <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&nbsp;6.9</a>) and Accept (<a href="#header.accept" id="rfc.xref.header.accept.1" title="Accept">Section&nbsp;6.1</a>) header fields in order to provide open and extensible data typing and type negotiation.
    694696      </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>
    703707</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,
    704708         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
     
    751755         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.
    752756      </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> ] )
    754758                 | ( "1" [ "." 0*3("0") ] )
    755759</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>
     
    761765      <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:
    762766      </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*8ALPHA
    765   subtag        = 1*8ALPHA
     767      <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>
    766770</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
    767771         by the IANA. Example tags include:
     
    783787         by the request.
    784788      </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&nbsp;6.5</a>
    787                  | Content-Language         ; <a href="#header.content-language" id="rfc.xref.header.content-language.1" title="Content-Language">Section&nbsp;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&nbsp;6.7</a>
    790                  | Content-MD5              ; <a href="#header.content-md5" id="rfc.xref.header.content-md5.1" title="Content-MD5">Section&nbsp;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&nbsp;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-header
     789      <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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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>
    796800 
    797   extension-header = message-header
     801  <a href="#entity.header.fields" class="smpl">extension-header</a> = <a href="#abnf.dependencies" class="smpl">message-header</a>
    798802</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
    799803         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.
     
    801805      <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a>&nbsp;<a id="entity.body" href="#entity.body">Entity Body</a></h2>
    802806      <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    = *OCTET
     807      <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>
    804808</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
    805809         safe and proper transfer of the message.
     
    913917         for an in-line image.
    914918      </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> ] )
    917921 
    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> ) ]
    924928</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
    925929         all subtypes of that type. The media-range <em class="bcp14">MAY</em> include media type parameters that are applicable to that range.
     
    982986         to a server which is capable of representing documents in those character sets.
    983987      </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> ] )
    986990</pre><p id="rfc.section.6.2.p.3">Character set values are described in <a href="#character.sets" title="Character Sets">Section&nbsp;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
    987991         example is
     
    10011005      <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&nbsp;3.2</a>) that are acceptable in the response.
    10021006      </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> | "*" )
    10061010</pre><p id="rfc.section.6.3.p.3">Examples of its use are:</p>
    10071011      <div id="rfc.figure.u.28"></div><pre class="text">    Accept-Encoding: compress, gzip
     
    10471051         as a response to the request. Language tags are defined in <a href="#language.tags" title="Language Tags">Section&nbsp;3.5</a>.
    10481052      </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> ) ) | "*" )
    10521056</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
    10531057         that range. The quality value defaults to "q=1". For example,
     
    10911095         without losing the identity of its underlying media type.
    10921096      </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-coding
     1097      <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>
    10941098</pre><p id="rfc.section.6.5.p.3">Content codings are defined in <a href="#content.codings" title="Content Codings">Section&nbsp;3.2</a>. An example of its use is
    10951099      </p>
     
    11111115         Note that this might not be equivalent to all the languages used within the entity-body.
    11121116      </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-tag
     1117      <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>
    11141118</pre><p id="rfc.section.6.6.p.3">Language tags are defined in <a href="#language.tags" title="Language Tags">Section&nbsp;3.5</a>. The primary purpose of Content-Language is to allow a user to identify and differentiate entities according to the user's
    11151119         own preferred language. Thus, if the body content is intended only for a Danish-literate audience, the appropriate field is
     
    11381142         accessed, the server <em class="bcp14">SHOULD</em> provide a Content-Location for the particular variant which is returned.
    11391143      </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> )
    11421146</pre><p id="rfc.section.6.7.p.3">The value of Content-Location also defines the base URI for the entity.</p>
    11431147      <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
     
    11571161         attacks.)
    11581162      </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-digest
    1160   md5-digest    = &lt;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>&gt;
     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>    = &lt;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>&gt;
    11611165</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
    11621166         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.
     
    11941198         the HEAD method, the media type that would have been sent had the request been a GET.
    11951199      </p>
    1196       <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.31"></span>  Content-Type   = "Content-Type" ":" media-type
     1200      <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>
    11971201</pre><p id="rfc.section.6.9.p.3">Media types are defined in <a href="#media.types" title="Media Types">Section&nbsp;3.3</a>. An example of the field is
    11981202      </p>
     
    14131417         environments.
    14141418      </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*DIGIT
     1419      <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>
    14161420</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
    14171421         document and not the MIME specification.
     
    14671471         in <a href="#RFC1806" id="rfc.xref.RFC1806.3"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header">[RFC1806]</cite></a>.
    14681472      </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-token
    1472   disposition-parm = filename-parm | disp-extension-parm
    1473   filename-parm = "filename" "=" quoted-string
    1474   disp-extension-token = token
    1475   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> )
    14761480</pre><p id="rfc.section.B.1.p.3">An example is</p>
    14771481      <div id="rfc.figure.u.42"></div><pre class="text">     Content-Disposition: attachment; filename="fname.ext"
     
    15891593                  <li class="indline1">compress&nbsp;&nbsp;<a class="iref" href="#rfc.iref.c.1">3.2</a></li>
    15901594                  <li class="indline1">Content-Base header&nbsp;&nbsp;<a class="iref" href="#rfc.iref.c.9"><b>C.1</b></a></li>
    1591                   <li class="indline1">Content-Disposition header&nbsp;&nbsp;<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&nbsp;&nbsp;<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>
    15921596                  <li class="indline1">Content-Encoding header&nbsp;&nbsp;<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>
    15931597                  <li class="indline1">Content-Language header&nbsp;&nbsp;<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>
     
    16571661                        <li class="indline1">Alternate&nbsp;&nbsp;<a class="iref" href="#rfc.iref.h.11"><b>C.1</b></a></li>
    16581662                        <li class="indline1">Content-Base&nbsp;&nbsp;<a class="iref" href="#rfc.iref.h.17"><b>C.1</b></a></li>
    1659                         <li class="indline1">Content-Disposition&nbsp;&nbsp;<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&nbsp;&nbsp;<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>
    16601664                        <li class="indline1">Content-Encoding&nbsp;&nbsp;<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>
    16611665                        <li class="indline1">Content-Language&nbsp;&nbsp;<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  
    256256
    257257<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"/>
    258263<t>
    259264  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    263268</t>
    264269<figure><artwork type="abnf2616">
    265   ALPHA          = &lt;ALPHA, defined in &basic-rules;&gt;
    266   DIGIT          = &lt;DIGIT, defined in &basic-rules;&gt;
    267   OCTET          = &lt;OCTET, defined in &basic-rules;&gt;
     270  <x:ref>ALPHA</x:ref>          = &lt;ALPHA, defined in &basic-rules;&gt;
     271  <x:ref>DIGIT</x:ref>          = &lt;DIGIT, defined in &basic-rules;&gt;
     272  <x:ref>OCTET</x:ref>          = &lt;OCTET, defined in &basic-rules;&gt;
    268273</artwork></figure>
    269274<figure><artwork type="abnf2616">
    270   quoted-string  = &lt;quoted-string, defined in &basic-rules;&gt;
    271   token          = &lt;token, defined in &basic-rules;&gt;
     275  <x:ref>quoted-string</x:ref>  = &lt;quoted-string, defined in &basic-rules;&gt;
     276  <x:ref>token</x:ref>          = &lt;token, defined in &basic-rules;&gt;
    272277</artwork></figure>
    273278<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"/>
    274287  The ABNF rules below are defined in other parts:
    275288</t>
    276289<figure><!--Part1--><artwork type="abnf2616">
    277   absoluteURI    = &lt;absoluteURI, defined in &general-syntax;&gt;
    278   Content-Length = &lt;Content-Length, defined in &header-content-length;&gt;
    279   relativeURI    = &lt;relativeURI, defined in &general-syntax;&gt;
    280   message-header = &lt;message-header, defined in &message-headers;&gt;
     290  <x:ref>absoluteURI</x:ref>    = &lt;absoluteURI, defined in &general-syntax;&gt;
     291  <x:ref>Content-Length</x:ref> = &lt;Content-Length, defined in &header-content-length;&gt;
     292  <x:ref>relativeURI</x:ref>    = &lt;relativeURI, defined in &general-syntax;&gt;
     293  <x:ref>message-header</x:ref> = &lt;message-header, defined in &message-headers;&gt;
    281294</artwork></figure>
    282295<figure><!--Part2--><artwork type="abnf2616">
    283   Allow          = &lt;Allow, defined in &header-allow;&gt;
     296  <x:ref>Allow</x:ref>          = &lt;Allow, defined in &header-allow;&gt;
    284297</artwork></figure>
    285298<figure><!--Part4--><artwork type="abnf2616">
    286   Last-Modified  = &lt;Last-Modified, defined in &header-last-modified;&gt;
     299  <x:ref>Last-Modified</x:ref>  = &lt;Last-Modified, defined in &header-last-modified;&gt;
    287300</artwork></figure>
    288301<figure><!--Part5--><artwork type="abnf2616">
    289   Content-Range  = &lt;Content-Range, defined in &header-content-range;&gt;
     302  <x:ref>Content-Range</x:ref>  = &lt;Content-Range, defined in &header-content-range;&gt;
    290303</artwork></figure>
    291304<figure><!--Part6--><artwork type="abnf2616">
    292   Expires        = &lt;Expires, defined in &header-expires;&gt;
     305  <x:ref>Expires</x:ref>        = &lt;Expires, defined in &header-expires;&gt;
    293306</artwork></figure>
    294307</section>
     
    322335      also be shared.
    323336</t></list></t>
    324 <t>
     337<t anchor="rule.charset">
     338  <x:anchor-alias value="charset"/>
    325339   HTTP character sets are identified by case-insensitive tokens. The
    326340   complete set of tokens is defined by the IANA Character Set registry
     
    328342</t>
    329343<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="charset"/>
    330   charset = token
     344  <x:ref>charset</x:ref> = <x:ref>token</x:ref>
    331345</artwork></figure>
    332346<t>
     
    370384
    371385<section title="Content Codings" anchor="content.codings">
     386  <x:anchor-alias value="content-coding"/>
    372387<t>
    373388   Content coding values indicate an encoding transformation that has
     
    379394</t>
    380395<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-coding"/>
    381   content-coding   = token
     396  <x:ref>content-coding</x:ref>   = <x:ref>token</x:ref>
    382397</artwork></figure>
    383398<t>
     
    445460
    446461<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"/>
    447465<t>
    448466   HTTP uses Internet Media Types <xref target="RFC2046"/> in the Content-Type (<xref target="header.content-type"/>)
     
    451469</t>
    452470<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"/>
    458479   Parameters &MAY; follow the type/subtype in the form of attribute/value
    459480   pairs.
    460481</t>
    461482<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 "=" value
    463   attribute               = token
    464   value                   = token | quoted-string
     483  <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>
    465486</artwork></figure>
    466487<t>
     
    567588
    568589<section title="Quality Values" anchor="quality.values">
     590  <x:anchor-alias value="qvalue"/>
    569591<t>
    570592   HTTP content negotiation (<xref target="content.negotiation"/>) uses short "floating point"
     
    579601</t>
    580602<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> ] )
    582604                 | ( "1" [ "." 0*3("0") ] )
    583605</artwork></figure>
     
    589611
    590612<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"/>
    591616<t>
    592617   A language tag identifies a natural language spoken, written, or
     
    603628</t>
    604629<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*8ALPHA
    607   subtag        = 1*8ALPHA
     630  <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>
    608633</artwork></figure>
    609634<t>
     
    637662
    638663<section title="Entity Header Fields" anchor="entity.header.fields">
     664  <x:anchor-alias value="entity-header"/>
     665  <x:anchor-alias value="extension-header"/>
    639666<t>
    640667   Entity-header fields define metainformation about the entity-body or,
     
    642669</t>
    643670<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-header
     671  <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>
    655682 
    656   extension-header = message-header
     683  <x:ref>extension-header</x:ref> = <x:ref>message-header</x:ref>
    657684</artwork></figure>
    658685<t>
     
    666693
    667694<section title="Entity Body" anchor="entity.body">
     695  <x:anchor-alias value="entity-body"/>
    668696<t>
    669697   The entity-body (if any) sent with an HTTP request or response is in
     
    671699</t>
    672700<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-body"/>
    673   entity-body    = *OCTET
     701  <x:ref>entity-body</x:ref>    = *<x:ref>OCTET</x:ref>
    674702</artwork></figure>
    675703<t>
     
    888916  <iref primary="true" item="Accept header" x:for-anchor=""/>
    889917  <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"/>
    890922<t>
    891923   The Accept request-header field can be used to specify certain media
     
    896928</t>
    897929<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> ] )
    900932 
    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> ) ]
    907939</artwork></figure>
    908940<t>
     
    10091041  <iref primary="true" item="Accept-Charset header" x:for-anchor=""/>
    10101042  <iref primary="true" item="Headers" subitem="Accept-Charset" x:for-anchor=""/>
     1043  <x:anchor-alias value="Accept-Charset"/>
    10111044<t>
    10121045   The Accept-Charset request-header field can be used to indicate what
     
    10171050</t>
    10181051<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> ] )
    10211054</artwork></figure>
    10221055<t>
     
    10491082  <iref primary="true" item="Accept-Encoding header" x:for-anchor=""/>
    10501083  <iref primary="true" item="Headers" subitem="Accept-Encoding" x:for-anchor=""/>
     1084  <x:anchor-alias value="Accept-Encoding"/>
     1085  <x:anchor-alias value="codings"/>
    10511086<t>
    10521087   The Accept-Encoding request-header field is similar to Accept, but
     
    10551090</t>
    10561091<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> | "*" )
    10601095</artwork></figure>
    10611096<t>
     
    11251160  <iref primary="true" item="Accept-Language header" x:for-anchor=""/>
    11261161  <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"/>
    11271164<t>
    11281165   The Accept-Language request-header field is similar to Accept, but
     
    11311168</t>
    11321169<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> ) ) | "*" )
    11361173</artwork></figure>
    11371174<t>
     
    12001237  <iref primary="true" item="Content-Encoding header" x:for-anchor=""/>
    12011238  <iref primary="true" item="Headers" subitem="Content-Encoding" x:for-anchor=""/>
     1239  <x:anchor-alias value="Content-Encoding"/>
    12021240<t>
    12031241   The Content-Encoding entity-header field is used as a modifier to the
     
    12101248</t>
    12111249<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/>
    1212   Content-Encoding  = "Content-Encoding" ":" 1#content-coding
     1250  <x:ref>Content-Encoding</x:ref>  = "Content-Encoding" ":" 1#<x:ref>content-coding</x:ref>
    12131251</artwork></figure>
    12141252<t>
     
    12471285  <iref primary="true" item="Content-Language header" x:for-anchor=""/>
    12481286  <iref primary="true" item="Headers" subitem="Content-Language" x:for-anchor=""/>
     1287  <x:anchor-alias value="Content-Language"/>
    12491288<t>
    12501289   The Content-Language entity-header field describes the natural
     
    12541293</t>
    12551294<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/>
    1256   Content-Language  = "Content-Language" ":" 1#language-tag
     1295  <x:ref>Content-Language</x:ref>  = "Content-Language" ":" 1#<x:ref>language-tag</x:ref>
    12571296</artwork></figure>
    12581297<t>
     
    12981337  <iref primary="true" item="Content-Location header" x:for-anchor=""/>
    12991338  <iref primary="true" item="Headers" subitem="Content-Location" x:for-anchor=""/>
     1339  <x:anchor-alias value="Content-Location"/>
    13001340<t>
    13011341   The Content-Location entity-header field &MAY; be used to supply the
     
    13101350</t>
    13111351<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> )
    13141354</artwork></figure>
    13151355<t>
     
    13451385  <iref primary="true" item="Content-MD5 header" x:for-anchor=""/>
    13461386  <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"/>
    13471389<t>
    13481390   The Content-MD5 entity-header field, as defined in <xref target="RFC1864"/>, is
     
    13531395</t>
    13541396<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-digest
    1356   md5-digest    = &lt;base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>&gt;
     1397  <x:ref>Content-MD5</x:ref>   = "Content-MD5" ":" <x:ref>md5-digest</x:ref>
     1398  <x:ref>md5-digest</x:ref>    = &lt;base64 of 128 bit MD5 digest as per <xref target="RFC1864"/>&gt;
    13571399</artwork></figure>
    13581400<t>
     
    14181460  <iref primary="true" item="Content-Type header" x:for-anchor=""/>
    14191461  <iref primary="true" item="Headers" subitem="Content-Type" x:for-anchor=""/>
     1462  <x:anchor-alias value="Content-Type"/>
    14201463<t>
    14211464   The Content-Type entity-header field indicates the media type of the
     
    14241467</t>
    14251468<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/>
    1426   Content-Type   = "Content-Type" ":" media-type
     1469  <x:ref>Content-Type</x:ref>   = "Content-Type" ":" <x:ref>media-type</x:ref>
    14271470</artwork></figure>
    14281471<t>
     
    21662209   might be required.
    21672210</t>
     2211
    21682212<section title="MIME-Version" anchor="mime-version">
     2213  <x:anchor-alias value="MIME-Version"/>
    21692214<t>
    21702215   HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages &MAY;
     
    21772222</t>
    21782223<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="MIME-Version"/>
    2179   MIME-Version   = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
     2224  <x:ref>MIME-Version</x:ref>   = "MIME-Version" ":" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    21802225</artwork></figure>
    21812226<t>
     
    22892334<iref item="Headers" subitem="Content-Disposition" primary="true" x:for-anchor=""/>
    22902335<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"/>
    22912342<t>
    22922343   The Content-Disposition response-header field has been proposed as a
     
    22962347</t>
    22972348<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-token
    2301   disposition-parm = filename-parm | disp-extension-parm
    2302   filename-parm = "filename" "=" quoted-string
    2303   disp-extension-token = token
    2304   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> )
    23052356</artwork></figure>
    23062357<t>
  • draft-ietf-httpbis/latest/p4-conditional.html

    r228 r229  
    550550      <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 &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    551551      </p>
    552       <div id="rfc.figure.u.1"></div><pre class="inline">  quoted-string = &lt;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>&gt;
     552      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">quoted-string</a> = &lt;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>&gt;
    553553</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>
    555555      </div>
    556       <div id="rfc.figure.u.2"></div><pre class="inline">  HTTP-date     = &lt;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>&gt;
     556      <div id="rfc.figure.u.2"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">HTTP-date</a>     = &lt;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>&gt;
    557557</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="entity.tags" href="#entity.tags">Entity Tags</a></h1>
    558558      <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
    559559         ETag (<a href="#header.etag" id="rfc.xref.header.etag.1" title="ETag">Section&nbsp;7.1</a>), If-Match (<a href="#header.if-match" id="rfc.xref.header.if-match.1" title="If-Match">Section&nbsp;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&nbsp;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&nbsp;5</a>. An entity tag consists of an opaque quoted string, possibly prefixed by a weakness indicator.
    560560      </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-tag
    562   weak       = "W/"
    563   opaque-tag = quoted-string
     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>  <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>
    564564</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.
    565565      </p>
     
    754754         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&nbsp;5</a>).
    755755      </p>
    756       <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.4"></span>  ETag = "ETag" ":" entity-tag
     756      <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>
    757757</pre><div id="rfc.figure.u.5"></div>
    758758      <p>Examples:</p>  <pre class="text">   ETag: "xyzzy"
     
    778778         case, the value "*" matches any current entity of the resource.
    779779      </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> )
    781781</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
    782782         request (without the If-Match header) on that resource, or if "*" is given and any current entity exists for that resource,
     
    810810         Modified) response will be returned without any message-body.
    811811      </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-date
     812      <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>
    813813</pre><p id="rfc.section.7.3.p.3">An example of the field is:</p>
    814814      <div id="rfc.figure.u.9"></div><pre class="text">    If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
     
    858858      </p>
    859859      <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> )
    861861</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
    862862         request (without the If-None-Match header) on that resource, or if "*" is given and any current entity exists for that resource,
     
    891891      <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).
    892892      </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-date
     893      <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>
    894894</pre><p id="rfc.section.7.5.p.4">An example of the field is:</p>
    895895      <div id="rfc.figure.u.13"></div><pre class="text">    If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
     
    907907         modified.
    908908      </p>
    909       <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  Last-Modified  = "Last-Modified" ":" HTTP-date
     909      <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>
    910910</pre><p id="rfc.section.7.6.p.3">An example of its use is</p>
    911911      <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  
    254254
    255255<section title="Notational Conventions and Generic Grammar" anchor="notation">
     256  <x:anchor-alias value="quoted-string"/>
    256257<t>
    257258  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    261262</t>
    262263<figure><artwork type="abnf2616">
    263   quoted-string = &lt;quoted-string, defined in &basic-rules;&gt;
     264  <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &basic-rules;&gt;
    264265</artwork></figure>
    265266<t anchor="abnf.dependencies">
     267  <x:anchor-alias value="HTTP-date"/>
    266268  The ABNF rules below are defined in other parts:
    267269</t>
    268270<figure><!--Part1--><artwork type="abnf2616">
    269   HTTP-date     = &lt;HTTP-date, defined in &full-date;&gt;
     271  <x:ref>HTTP-date</x:ref>     = &lt;HTTP-date, defined in &full-date;&gt;
    270272</artwork></figure>
    271273</section>
    272274
    273275<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"/>
    274279<t>
    275280   Entity tags are used for comparing two or more entities from the same
     
    282287</t>
    283288<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-tag
    285   weak       = "W/"
    286   opaque-tag = quoted-string
     289  <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>
    287292</artwork></figure>
    288293<t>
     
    617622  <iref primary="true" item="ETag header" x:for-anchor=""/>
    618623  <iref primary="true" item="Headers" subitem="ETag" x:for-anchor=""/>
     624  <x:anchor-alias value="ETag"/>
    619625<t>
    620626   The ETag response-header field provides the current value of the
     
    627633</t>
    628634<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ETag"/>
    629   ETag = "ETag" ":" entity-tag
     635  <x:ref>ETag</x:ref> = "ETag" ":" <x:ref>entity-tag</x:ref>
    630636</artwork></figure>
    631637<figure><preamble>
     
    659665  <iref primary="true" item="If-Match header" x:for-anchor=""/>
    660666  <iref primary="true" item="Headers" subitem="If-Match" x:for-anchor=""/>
     667  <x:anchor-alias value="If-Match"/>
    661668<t>
    662669   The If-Match request-header field is used with a method to make it
     
    672679</t>
    673680<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> )
    675682</artwork></figure>
    676683<t>
     
    729736  <iref primary="true" item="If-Modified-Since header" x:for-anchor=""/>
    730737  <iref primary="true" item="Headers" subitem="If-Modified-Since" x:for-anchor=""/>
     738  <x:anchor-alias value="If-Modified-Since"/>
    731739<t>
    732740   The If-Modified-Since request-header field is used with a method to
     
    737745</t>
    738746<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Modified-Since"/>
    739   If-Modified-Since = "If-Modified-Since" ":" HTTP-date
     747  <x:ref>If-Modified-Since</x:ref> = "If-Modified-Since" ":" <x:ref>HTTP-date</x:ref>
    740748</artwork></figure>
    741749<t>
     
    810818  <iref primary="true" item="If-None-Match header" x:for-anchor=""/>
    811819  <iref primary="true" item="Headers" subitem="If-None-Match" x:for-anchor=""/>
     820  <x:anchor-alias value="If-None-Match"/>
    812821<t>
    813822   The If-None-Match request-header field is used with a method to make
     
    826835</t>
    827836<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> )
    829838</artwork></figure>
    830839<t>
     
    889898  <iref primary="true" item="If-Unmodified-Since header" x:for-anchor=""/>
    890899  <iref primary="true" item="Headers" subitem="If-Unmodified-Since" x:for-anchor=""/>
     900  <x:anchor-alias value="If-Unmodified-Since"/>
    891901<t>
    892902   The If-Unmodified-Since request-header field is used with a method to
     
    902912</t>
    903913<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Unmodified-Since"/>
    904   If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date
     914  <x:ref>If-Unmodified-Since</x:ref> = "If-Unmodified-Since" ":" <x:ref>HTTP-date</x:ref>
    905915</artwork></figure>
    906916<t>
     
    928938  <iref primary="true" item="Last-Modified header" x:for-anchor=""/>
    929939  <iref primary="true" item="Headers" subitem="Last-Modified" x:for-anchor=""/>
     940  <x:anchor-alias value="Last-Modified"/>
    930941<t>
    931942   The Last-Modified entity-header field indicates the date and time at
     
    933944</t>
    934945<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Last-Modified"/>
    935   Last-Modified  = "Last-Modified" ":" HTTP-date
     946  <x:ref>Last-Modified</x:ref>  = "Last-Modified" ":" <x:ref>HTTP-date</x:ref>
    936947</artwork></figure>
    937948<t>
  • draft-ietf-httpbis/latest/p5-range.html

    r228 r229  
    554554      <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 &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    555555      </p>
    556       <div id="rfc.figure.u.1"></div><pre class="inline">  DIGIT      = &lt;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>&gt;
    557   SP         = &lt;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>&gt;
    558 </pre><div id="rfc.figure.u.2"></div><pre class="inline">  token      = &lt;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>&gt;
     556      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">DIGIT</a>      = &lt;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>&gt;
     557  <a href="#notation" class="smpl">SP</a>         = &lt;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>&gt;
     558</pre><div id="rfc.figure.u.2"></div><pre class="inline">  <a href="#notation" class="smpl">token</a>      = &lt;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>&gt;
    559559</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>
    561561      </div>
    562       <div id="rfc.figure.u.3"></div><pre class="inline">  HTTP-date  = &lt;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>&gt;
    563 </pre><div id="rfc.figure.u.4"></div><pre class="inline">  entity-tag = &lt;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>&gt;
     562      <div id="rfc.figure.u.3"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">HTTP-date</a>  = &lt;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>&gt;
     563</pre><div id="rfc.figure.u.4"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">entity-tag</a> = &lt;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>&gt;
    564564</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="range.units" href="#range.units">Range Units</a></h1>
    565565      <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
    566566         uses range units in the Range (<a href="#header.range" id="rfc.xref.header.range.1" title="Range">Section&nbsp;6.4</a>) and Content-Range (<a href="#header.content-range" id="rfc.xref.header.content-range.1" title="Content-Range">Section&nbsp;6.2</a>) header fields. An entity can be broken down into subranges according to various structural units.
    567567      </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-unit
    569   bytes-unit       = "bytes"
    570   other-range-unit = token
     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>  <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>
    571571</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.
    572572      </p>
     
    631631      <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a id="header.accept-ranges" href="#header.accept-ranges">Accept-Ranges</a></h2>
    632632      <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-ranges
    634   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"
    635635</pre><p id="rfc.section.6.1.p.3">Origin servers that accept byte-range requests <em class="bcp14">MAY</em> send
    636636      </p>
     
    648648         should be applied. Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;3</a>.
    649649      </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-spec
     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>  <a href="#header.content-range" class="smpl">Content-Range</a> = "Content-Range" ":" <a href="#header.content-range" class="smpl">content-range-spec</a>
    651651 
    652   content-range-spec      = byte-content-range-spec
    653   byte-content-range-spec = bytes-unit SP
    654                             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> | "*" )
    656656 
    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>)
    658658                                 | "*"
    659   instance-length           = 1*DIGIT
     659  <a href="#header.content-range" class="smpl">instance-length</a>           = 1*<a href="#notation" class="smpl">DIGIT</a>
    660660</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 "*"
    661661         character means that the instance-length is unknown at the time when the response was generated.
     
    725725         send me the part(s) that I am missing; otherwise, send me the entire new entity'.
    726726      </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> )
    728728</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
    729729         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.
     
    740740      </p>
    741741      <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>
    750752</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
    751753         gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets start
     
    759761      </p>
    760762      <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-length
    762   suffix-length = 1*DIGIT
     763      <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>
    763765</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
    764766         is, this form specifies the last N bytes of an entity-body.) If the entity is shorter than the specified suffix-length, the
     
    783785         to the entity returned as the result of the request:
    784786      </p>
    785       <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.20"></span>  Range = "Range" ":" ranges-specifier
     787      <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>
    786788</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,
    787789         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  
    255255
    256256<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"/>
    257260<t>
    258261  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    262265</t>
    263266<figure><artwork type="abnf2616">
    264   DIGIT      = &lt;DIGIT, defined in &basic-rules;&gt;
    265   SP         = &lt;SP, defined in &basic-rules;&gt;
     267  <x:ref>DIGIT</x:ref>      = &lt;DIGIT, defined in &basic-rules;&gt;
     268  <x:ref>SP</x:ref>         = &lt;SP, defined in &basic-rules;&gt;
    266269</artwork></figure>
    267270<figure><artwork type="abnf2616">
    268   token      = &lt;token, defined in &basic-rules;&gt;
     271  <x:ref>token</x:ref>      = &lt;token, defined in &basic-rules;&gt;
    269272</artwork></figure>
    270273<t anchor="abnf.dependencies">
     274  <x:anchor-alias value="entity-tag"/>
     275  <x:anchor-alias value="HTTP-date"/>
    271276  The ABNF rules below are defined in other parts:
    272277</t>
    273278<figure><!--Part1--><artwork type="abnf2616">
    274   HTTP-date  = &lt;HTTP-date, defined in &full-date;&gt;
     279  <x:ref>HTTP-date</x:ref>  = &lt;HTTP-date, defined in &full-date;&gt;
    275280</artwork></figure>
    276281<figure><!--Part4--><artwork type="abnf2616">
    277   entity-tag = &lt;entity-tag, defined in &entity-tags;&gt;
     282  <x:ref>entity-tag</x:ref> = &lt;entity-tag, defined in &entity-tags;&gt;
    278283</artwork></figure>
    279284</section>
    280285
    281286<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"/>
    282290<t>
    283291   HTTP/1.1 allows a client to request that only part (a range of) the
     
    288296</t>
    289297<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-unit
    291   bytes-unit       = "bytes"
    292   other-range-unit = token
     298  <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>
    293301</artwork></figure>
    294302<t>
     
    416424  <iref primary="true" item="Accept-Ranges header" x:for-anchor=""/>
    417425  <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"/>
    418428<t>
    419429      The Accept-Ranges response-header field allows the server to
     
    421431</t>
    422432<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-ranges
    424   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"
    425435</artwork></figure>
    426436<t>
     
    450460  <iref primary="true" item="Content-Range header" x:for-anchor=""/>
    451461  <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"/>
    452467<t>
    453468   The Content-Range entity-header is sent with a partial entity-body to
     
    456471</t>
    457472<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-spec
     473  <x:ref>Content-Range</x:ref> = "Content-Range" ":" <x:ref>content-range-spec</x:ref>
    459474 
    460   content-range-spec      = byte-content-range-spec
    461   byte-content-range-spec = bytes-unit SP
    462                             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> | "*" )
    464479 
    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>)
    466481                                 | "*"
    467   instance-length           = 1*DIGIT
     482  <x:ref>instance-length</x:ref>           = 1*<x:ref>DIGIT</x:ref>
    468483</artwork></figure>
    469484<t>
     
    583598  <iref primary="true" item="If-Range header" x:for-anchor=""/>
    584599  <iref primary="true" item="Headers" subitem="If-Range" x:for-anchor=""/>
     600  <x:anchor-alias value="If-Range"/>
    585601<t>
    586602   If a client has a partial copy of an entity in its cache, and wishes
     
    599615</t>
    600616<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> )
    602618</artwork></figure>
    603619<t>
     
    634650   the entity-body (not necessarily the same as the message-body).
    635651</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"/>
    637661   A byte range operation &MAY; specify a single range of bytes, or a set
    638662   of ranges within a single entity.
    639663</t>
    640664<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-specifier
    642   byte-ranges-specifier = bytes-unit "=" byte-range-set
    643   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*DIGIT
    646   last-byte-pos   = 1*DIGIT
     665  <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>
    647671</artwork></figure>
    648672<t>
     
    670694</t>
    671695<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-length
    673   suffix-length = 1*DIGIT
     696  <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>
    674698</artwork></figure>
    675699<t>
     
    717741
    718742<section title="Range Retrieval Requests" anchor="range.retrieval.requests">
     743  <x:anchor-alias value="Range"/>
    719744<t>
    720745   HTTP retrieval requests using conditional or unconditional GET
     
    724749</t>
    725750<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Range"/>
    726   Range = "Range" ":" ranges-specifier
     751  <x:ref>Range</x:ref> = "Range" ":" <x:ref>ranges-specifier</x:ref>
    727752</artwork></figure>
    728753<t>
  • draft-ietf-httpbis/latest/p6-cache.html

    r228 r229  
    684684      <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 &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    685685      </p>
    686       <div id="rfc.figure.u.1"></div><pre class="inline">  DIGIT         = &lt;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>&gt;
    687   DQUOTE        = &lt;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>&gt;
    688   SP            = &lt;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>&gt;
    689 </pre><div id="rfc.figure.u.2"></div><pre class="inline">  quoted-string = &lt;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>&gt;
    690   token         = &lt;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>&gt;
     686      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">DIGIT</a>         = &lt;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>&gt;
     687  <a href="#notation" class="smpl">DQUOTE</a>        = &lt;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>&gt;
     688  <a href="#notation" class="smpl">SP</a>            = &lt;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>&gt;
     689</pre><div id="rfc.figure.u.2"></div><pre class="inline">  <a href="#notation" class="smpl">quoted-string</a> = &lt;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>&gt;
     690  <a href="#notation" class="smpl">token</a>         = &lt;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>&gt;
    691691</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>
    693693      </div>
    694       <div id="rfc.figure.u.3"></div><pre class="inline">  field-name    = &lt;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>&gt;
    695   HTTP-date     = &lt;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>&gt;
    696   port          = &lt;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>&gt;
    697   pseudonym     = &lt;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>&gt;
    698   uri-host      = &lt;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>&gt;
     694      <div id="rfc.figure.u.3"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">field-name</a>    = &lt;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>&gt;
     695  <a href="#abnf.dependencies" class="smpl">HTTP-date</a>     = &lt;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>&gt;
     696  <a href="#abnf.dependencies" class="smpl">port</a>          = &lt;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>&gt;
     697  <a href="#abnf.dependencies" class="smpl">pseudonym</a>     = &lt;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>&gt;
     698  <a href="#abnf.dependencies" class="smpl">uri-host</a>      = &lt;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>&gt;
    699699</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="caching.overview" href="#caching.overview">Overview</a></h1>
    700700      <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="cache.correctness" href="#cache.correctness">Cache Correctness</a></h2>
     
    12071207         are calculated as specified in <a href="#age.calculations" title="Age Calculations">Section&nbsp;4.3</a>.
    12081208      </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>
    12131215</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,
    12141216         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.
     
    12301232         a specific cache.
    12311233      </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-directive
     1234      <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>
    12331235
    1234   cache-directive = cache-request-directive
    1235      | cache-response-directive
     1236  <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>
    12361238
    1237   cache-request-directive =
     1239  <a href="#header.cache-control" class="smpl">cache-request-directive</a> =
    12381240       "no-cache"                          ; <a href="#what.is.cacheable" title="What is Cacheable">Section&nbsp;16.2.1</a>
    12391241     | "no-store"                          ; <a href="#what.may.be.stored.by.caches" title="What May be Stored by Caches">Section&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;16.2.3</a>
    12431245     | "no-transform"                      ; <a href="#no-transform.directive" title="No-Transform Directive">Section&nbsp;16.2.5</a>
    12441246     | "only-if-cached"                    ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section&nbsp;16.2.4</a>
    1245      | cache-extension                     ; <a href="#cache.control.extensions" title="Cache Control Extensions">Section&nbsp;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&nbsp;16.2.6</a>
    12461248
    1247   cache-response-directive =
     1249  <a href="#header.cache-control" class="smpl">cache-response-directive</a> =
    12481250       "public"                               ; <a href="#what.is.cacheable" title="What is Cacheable">Section&nbsp;16.2.1</a>
    1249      | "private" [ "=" DQUOTE 1#field-name DQUOTE ] ; <a href="#what.is.cacheable" title="What is Cacheable">Section&nbsp;16.2.1</a>
    1250      | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ] ; <a href="#what.is.cacheable" title="What is Cacheable">Section&nbsp;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&nbsp;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&nbsp;16.2.1</a>
    12511253     | "no-store"                             ; <a href="#what.may.be.stored.by.caches" title="What May be Stored by Caches">Section&nbsp;16.2.2</a>
    12521254     | "no-transform"                         ; <a href="#no-transform.directive" title="No-Transform Directive">Section&nbsp;16.2.5</a>
    12531255     | "must-revalidate"                      ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section&nbsp;16.2.4</a>
    12541256     | "proxy-revalidate"                     ; <a href="#cache.revalidation.and.reload.controls" title="Cache Revalidation and Reload Controls">Section&nbsp;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&nbsp;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&nbsp;16.2.3</a>
    1257      | cache-extension                        ; <a href="#cache.control.extensions" title="Cache Control Extensions">Section&nbsp;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&nbsp;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&nbsp;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&nbsp;16.2.6</a>
    12581260
    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> ) ]
    12601262</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
    12611263         such a directive appears with a 1#field-name parameter, it applies only to the named field or fields, and not to the rest
     
    15341536      <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.
    15351537      </p>
    1536       <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  Expires = "Expires" ":" HTTP-date
     1538      <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>
    15371539</pre><p id="rfc.section.16.3.p.5">An example of its use is</p>
    15381540      <div id="rfc.figure.u.17"></div><pre class="text">   Expires: Thu, 01 Dec 1994 16:00:00 GMT
     
    15611563         systems <em class="bcp14">MAY</em> require that behavior be consistent with the directives.
    15621564      </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-directive
    1564   pragma-directive  = "no-cache" | extension-pragma
    1565   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> ) ]
    15661568</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
    15671569         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&nbsp;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.
     
    15881590         appropriate representation. See <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section&nbsp;8</a> for use of the Vary header field by caches.
    15891591      </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> )
    15911593</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
    15921594         to properly interpret future requests on that resource and informs the user agent about the presence of negotiation on that
     
    16131615      </p>
    16141616      <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-value
     1617      <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>
    16161618 
    1617   warning-value = warn-code SP warn-agent SP warn-text
    1618                                         [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>]
    16191621 
    1620   warn-code  = 3DIGIT
    1621   warn-agent = ( uri-host [ ":" port ] ) | pseudonym
     1622  <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>
    16221624                  ; the name or pseudonym of the server adding
    16231625                  ; the Warning header, for use in debugging
    1624   warn-text  = quoted-string
    1625   warn-date  = DQUOTE HTTP-date DQUOTE
     1626  <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>
    16261628</pre><p id="rfc.section.16.6.p.4">A response <em class="bcp14">MAY</em> carry more than one Warning header.
    16271629      </p>
  • draft-ietf-httpbis/latest/p6-cache.xml

    r228 r229  
    429429
    430430<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"/>
    431436<t>
    432437  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    436441</t>
    437442<figure><artwork type="abnf2616">
    438   DIGIT         = &lt;DIGIT, defined in &basic-rules;&gt;
    439   DQUOTE        = &lt;DQUOTE, defined in &basic-rules;&gt;
    440   SP            = &lt;SP, defined in &basic-rules;&gt;
     443  <x:ref>DIGIT</x:ref>         = &lt;DIGIT, defined in &basic-rules;&gt;
     444  <x:ref>DQUOTE</x:ref>        = &lt;DQUOTE, defined in &basic-rules;&gt;
     445  <x:ref>SP</x:ref>            = &lt;SP, defined in &basic-rules;&gt;
    441446</artwork></figure>
    442447<figure><artwork type="abnf2616">
    443   quoted-string = &lt;quoted-string, defined in &basic-rules;&gt;
    444   token         = &lt;token, defined in &basic-rules;&gt;
     448  <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &basic-rules;&gt;
     449  <x:ref>token</x:ref>         = &lt;token, defined in &basic-rules;&gt;
    445450</artwork></figure>
    446451<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"/>
    447457  The ABNF rules below are defined in other parts:
    448458</t>
    449459<figure><!--Part1--><artwork type="abnf2616">
    450   field-name    = &lt;field-name, defined in &message-headers;&gt;
    451   HTTP-date     = &lt;HTTP-date, defined in &full-date;&gt;
    452   port          = &lt;port, defined in &general-syntax;&gt;
    453   pseudonym     = &lt;pseudonym, defined in &header-via;&gt;
    454   uri-host      = &lt;uri-host, defined in &general-syntax;&gt;
     460  <x:ref>field-name</x:ref>    = &lt;field-name, defined in &message-headers;&gt;
     461  <x:ref>HTTP-date</x:ref>     = &lt;HTTP-date, defined in &full-date;&gt;
     462  <x:ref>port</x:ref>          = &lt;port, defined in &general-syntax;&gt;
     463  <x:ref>pseudonym</x:ref>     = &lt;pseudonym, defined in &header-via;&gt;
     464  <x:ref>uri-host</x:ref>      = &lt;uri-host, defined in &general-syntax;&gt;
    455465</artwork></figure>
    456466</section>
     
    14931503  <iref primary="true" item="Age header" x:for-anchor=""/>
    14941504  <iref primary="true" item="Headers" subitem="Age" x:for-anchor=""/>
     1505  <x:anchor-alias value="Age"/>
     1506  <x:anchor-alias value="age-value"/>
    14951507<t>
    14961508      The Age response-header field conveys the sender's estimate of the
     
    15011513</t>
    15021514<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="age-value"/>
    1503   Age = "Age" ":" age-value
    1504   age-value = delta-seconds
     1515  <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>
    15051517</artwork></figure>
    1506 <t>
     1518<t anchor="rule.delta-seconds">
     1519  <x:anchor-alias value="delta-seconds"/>
    15071520      Age values are non-negative decimal integers, representing time in
    15081521      seconds.
    15091522</t>
    15101523<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/>
    1511   delta-seconds  = 1*DIGIT
     1524  <x:ref>delta-seconds</x:ref>  = 1*<x:ref>DIGIT</x:ref>
    15121525</artwork></figure>
    15131526<t>
     
    15251538  <iref primary="true" item="Cache-Control header" x:for-anchor=""/>
    15261539  <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"/>
    15271545<t>
    15281546   The Cache-Control general-header field is used to specify directives
     
    15471565</t>
    15481566<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-directive
    1550 
    1551   cache-directive = cache-request-directive
    1552      | cache-response-directive
    1553 
    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> =
    15551573       "no-cache"                          ; <xref target="what.is.cacheable"/>
    15561574     | "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"/>
    15601578     | "no-transform"                      ; <xref target="no-transform.directive"/>
    15611579     | "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> =
    15651583       "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"/>
    15681586     | "no-store"                             ; <xref target="what.may.be.stored.by.caches"/>
    15691587     | "no-transform"                         ; <xref target="no-transform.directive"/>
    15701588     | "must-revalidate"                      ; <xref target="cache.revalidation.and.reload.controls"/>
    15711589     | "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> ) ]
    15771595</artwork></figure>
    15781596<t>
     
    20692087  <iref primary="true" item="Expires header" x:for-anchor=""/>
    20702088  <iref primary="true" item="Headers" subitem="Expires" x:for-anchor=""/>
     2089  <x:anchor-alias value="Expires"/>
    20712090<t>
    20722091   The Expires entity-header field gives the date/time after which the
     
    20872106</t>
    20882107<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/>
    2089   Expires = "Expires" ":" HTTP-date
     2108  <x:ref>Expires</x:ref> = "Expires" ":" <x:ref>HTTP-date</x:ref>
    20902109</artwork></figure>
    20912110<t>
     
    21292148  <iref primary="true" item="Pragma header" x:for-anchor=""/>
    21302149  <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"/>
    21312153<t>
    21322154   The Pragma general-header field is used to include implementation-specific
     
    21372159</t>
    21382160<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-directive
    2140   pragma-directive  = "no-cache" | extension-pragma
    2141   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> ) ]
    21422164</artwork></figure>
    21432165<t>
     
    21732195  <iref primary="true" item="Vary header" x:for-anchor=""/>
    21742196  <iref primary="true" item="Headers" subitem="Vary" x:for-anchor=""/>
     2197  <x:anchor-alias value="Vary"/>
    21752198<t>
    21762199   The Vary field value indicates the set of request-header fields that
     
    21852208</t>
    21862209<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> )
    21882211</artwork></figure>
    21892212<t>
     
    22242247  <iref primary="true" item="Warning header" x:for-anchor=""/>
    22252248  <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"/>
    22262255<t>
    22272256   The Warning general-header field is used to carry additional
     
    22362265</t>
    22372266<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-value
     2267  <x:ref>Warning</x:ref>    = "Warning" ":" 1#<x:ref>warning-value</x:ref>
    22392268 
    2240   warning-value = warn-code SP warn-agent SP warn-text
    2241                                         [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>]
    22422271 
    2243   warn-code  = 3DIGIT
    2244   warn-agent = ( uri-host [ ":" port ] ) | pseudonym
     2272  <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>
    22452274                  ; the name or pseudonym of the server adding
    22462275                  ; the Warning header, for use in debugging
    2247   warn-text  = quoted-string
    2248   warn-date  = DQUOTE HTTP-date DQUOTE
     2276  <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>
    22492278</artwork></figure>
    22502279<t>
  • draft-ietf-httpbis/latest/p7-auth.html

    r228 r229  
    542542      </p>
    543543      <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>
    545545      </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   = &lt;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>&gt;
    547   credentials = &lt;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>&gt;
     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>   = &lt;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>&gt;
     547  <a href="#abnf.dependencies" class="smpl">credentials</a> = &lt;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>&gt;
    548548</pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;Status Code Definitions
    549549      </h1>
     
    571571         containing the authentication information of the user agent for the realm of the resource being requested.
    572572      </p>
    573       <div id="rfc.figure.u.2"></div><pre class="inline"><span id="rfc.iref.g.3"></span>  Authorization  = "Authorization" ":" credentials
     573      <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>
    574574</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,
    575575         such as credentials that vary according to a challenge value or using synchronized clocks).
     
    594594         the authentication scheme and parameters applicable to the proxy for this Request-URI.
    595595      </p>
    596       <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.4"></span>  Proxy-Authenticate  = "Proxy-Authenticate" ":" 1#challenge
     596      <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>
    597597</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
    598598         them from the downstream client, which in some circumstances will appear as if the proxy is forwarding the Proxy-Authenticate
     
    606606         user agent for the proxy and/or realm of the resource being requested.
    607607      </p>
    608       <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.5"></span>  Proxy-Authorization     = "Proxy-Authorization" ":" credentials
     608      <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>
    609609</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
    610610         using the Proxy-Authenticate field. When multiple proxies are used in a chain, the Proxy-Authorization header field is consumed
     
    618618         authentication scheme(s) and parameters applicable to the Request-URI.
    619619      </p>
    620       <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.6"></span>  WWW-Authenticate  = "WWW-Authenticate" ":" 1#challenge
     620      <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>
    621621</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
    622622         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  
    250250</t>
    251251<t anchor="abnf.dependencies">
     252  <x:anchor-alias value="challenge"/>
     253  <x:anchor-alias value="credentials"/>
    252254  The ABNF rules below are defined in other specifications:
    253255</t>
    254256<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="challenge"/><iref primary="true" item="Grammar" subitem="credentials"/>
    255   challenge   = &lt;challenge, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
    256   credentials = &lt;credentials, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
     257  <x:ref>challenge</x:ref>   = &lt;challenge, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
     258  <x:ref>credentials</x:ref> = &lt;credentials, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
    257259</artwork></figure>
    258260</section>
     
    304306  <iref primary="true" item="Authorization header" x:for-anchor=""/>
    305307  <iref primary="true" item="Headers" subitem="Authorization" x:for-anchor=""/>
     308  <x:anchor-alias value="Authorization"/>
    306309<t>
    307310      A user agent that wishes to authenticate itself with a server--
     
    313316</t>
    314317<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Authorization"/>
    315   Authorization  = "Authorization" ":" credentials
     318  <x:ref>Authorization</x:ref>  = "Authorization" ":" <x:ref>credentials</x:ref>
    316319</artwork></figure>
    317320<t>
     
    358361  <iref primary="true" item="Proxy-Authenticate header" x:for-anchor=""/>
    359362  <iref primary="true" item="Headers" subitem="Proxy-Authenticate" x:for-anchor=""/>
     363  <x:anchor-alias value="Proxy-Authenticate"/>
    360364<t>
    361365   The Proxy-Authenticate response-header field &MUST; be included as part
     
    365369</t>
    366370<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authenticate"/>
    367   Proxy-Authenticate  = "Proxy-Authenticate" ":" 1#challenge
     371  <x:ref>Proxy-Authenticate</x:ref>  = "Proxy-Authenticate" ":" 1#<x:ref>challenge</x:ref>
    368372</artwork></figure>
    369373<t>
     
    382386  <iref primary="true" item="Proxy-Authorization header" x:for-anchor=""/>
    383387  <iref primary="true" item="Headers" subitem="Proxy-Authorization" x:for-anchor=""/>
     388  <x:anchor-alias value="Proxy-Authorization"/>
    384389<t>
    385390   The Proxy-Authorization request-header field allows the client to
     
    390395</t>
    391396<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authorization"/>
    392   Proxy-Authorization     = "Proxy-Authorization" ":" credentials
     397  <x:ref>Proxy-Authorization</x:ref>     = "Proxy-Authorization" ":" <x:ref>credentials</x:ref>
    393398</artwork></figure>
    394399<t>
     
    409414  <iref primary="true" item="WWW-Authenticate header" x:for-anchor=""/>
    410415  <iref primary="true" item="Headers" subitem="WWW-Authenticate" x:for-anchor=""/>
     416  <x:anchor-alias value="WWW-Authenticate"/>
    411417<t>
    412418   The WWW-Authenticate response-header field &MUST; be included in 401
     
    416422</t>
    417423<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="WWW-Authenticate"/>
    418   WWW-Authenticate  = "WWW-Authenticate" ":" 1#challenge
     424  <x:ref>WWW-Authenticate</x:ref>  = "WWW-Authenticate" ":" 1#<x:ref>challenge</x:ref>
    419425</artwork></figure>
    420426<t>
Note: See TracChangeset for help on using the changeset viewer.