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.

File:
1 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
Note: See TracChangeset for help on using the changeset viewer.