Changeset 388
- Timestamp:
- 14/11/08 23:52:03 (12 years ago)
- Location:
- draft-ietf-httpbis/latest-roy
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest-roy/p1-messaging.html
r387 r388 377 377 <link rel="Chapter" href="#rfc.section.12" title="12 References"> 378 378 <link rel="Appendix" title="A Tolerant Applications" href="#rfc.section.A"> 379 <link rel="Appendix" title="B Conversion of Date Formats" href="#rfc.section.B"> 380 <link rel="Appendix" title="C Compatibility with Previous Versions" href="#rfc.section.C"> 381 <link rel="Appendix" title="D Terminology" href="#rfc.section.D"> 382 <link rel="Appendix" title="E Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.E"> 379 <link rel="Appendix" title="B Compatibility with Previous Versions" href="#rfc.section.B"> 380 <link rel="Appendix" title="C Terminology" href="#rfc.section.C"> 381 <link rel="Appendix" title="D Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.D"> 383 382 <meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.400, 2008-10-10 14:04:14, XSLT vendor: SAXON 8.9 from Saxonica http://www.saxonica.com/"> 384 383 <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"> … … 477 476 <tr> 478 477 <td class="header left"></td> 479 <td class="header right">November 1 4, 2008</td>478 <td class="header right">November 15, 2008</td> 480 479 </tr> 481 480 </table> … … 510 509 list is at <<a href="http://tools.ietf.org/wg/httpbis/trac/report/11">http://tools.ietf.org/wg/httpbis/trac/report/11</a>> and related documents (including fancy diffs) can be found at <<a href="http://tools.ietf.org/wg/httpbis/">http://tools.ietf.org/wg/httpbis/</a>>. 511 510 </p> 512 <p>The changes in this draft are summarized in <a href="#changes.since.0 4" title="Since draft-ietf-httpbis-p1-messaging-04">Appendix E.6</a>.511 <p>The changes in this draft are summarized in <a href="#changes.since.05" title="Since draft-ietf-httpbis-p1-messaging-05">Appendix D.7</a>. 513 512 </p> 514 513 <hr class="noprint"> … … 643 642 <li class="tocline0"><a href="#rfc.authors">Authors' Addresses</a></li> 644 643 <li class="tocline0">A. <a href="#tolerant.applications">Tolerant Applications</a></li> 645 <li class="tocline0">B. <a href="#conversion.of.date.formats">Conversion of Date Formats</a></li> 646 <li class="tocline0">C. <a href="#compatibility">Compatibility with Previous Versions</a><ul class="toc"> 647 <li class="tocline1">C.1 <a href="#changes.from.1.0">Changes from HTTP/1.0</a><ul class="toc"> 648 <li class="tocline1">C.1.1 <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></li> 644 <li class="tocline0">B. <a href="#compatibility">Compatibility with Previous Versions</a><ul class="toc"> 645 <li class="tocline1">B.1 <a href="#changes.from.1.0">Changes from HTTP/1.0</a><ul class="toc"> 646 <li class="tocline1">B.1.1 <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></li> 649 647 </ul> 650 648 </li> 651 <li class="tocline1"> C.2 <a href="#compatibility.with.http.1.0.persistent.connections">Compatibility with HTTP/1.0 Persistent Connections</a></li>652 <li class="tocline1"> C.3 <a href="#changes.from.rfc.2068">Changes from RFC 2068</a></li>653 <li class="tocline1"> C.4 <a href="#changes.from.rfc.2616">Changes from RFC 2616</a></li>649 <li class="tocline1">B.2 <a href="#compatibility.with.http.1.0.persistent.connections">Compatibility with HTTP/1.0 Persistent Connections</a></li> 650 <li class="tocline1">B.3 <a href="#changes.from.rfc.2068">Changes from RFC 2068</a></li> 651 <li class="tocline1">B.4 <a href="#changes.from.rfc.2616">Changes from RFC 2616</a></li> 654 652 </ul> 655 653 </li> 656 <li class="tocline0">D. <a href="#terminology">Terminology</a></li> 657 <li class="tocline0">E. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul class="toc"> 658 <li class="tocline1">E.1 <a href="#rfc.section.E.1">Since RFC2616</a></li> 659 <li class="tocline1">E.2 <a href="#rfc.section.E.2">Since draft-ietf-httpbis-p1-messaging-00</a></li> 660 <li class="tocline1">E.3 <a href="#rfc.section.E.3">Since draft-ietf-httpbis-p1-messaging-01</a></li> 661 <li class="tocline1">E.4 <a href="#changes.since.02">Since draft-ietf-httpbis-p1-messaging-02</a></li> 662 <li class="tocline1">E.5 <a href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></li> 663 <li class="tocline1">E.6 <a href="#changes.since.04">Since draft-ietf-httpbis-p1-messaging-04</a></li> 654 <li class="tocline0">C. <a href="#terminology">Terminology</a></li> 655 <li class="tocline0">D. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul class="toc"> 656 <li class="tocline1">D.1 <a href="#rfc.section.D.1">Since RFC2616</a></li> 657 <li class="tocline1">D.2 <a href="#rfc.section.D.2">Since draft-ietf-httpbis-p1-messaging-00</a></li> 658 <li class="tocline1">D.3 <a href="#rfc.section.D.3">Since draft-ietf-httpbis-p1-messaging-01</a></li> 659 <li class="tocline1">D.4 <a href="#changes.since.02">Since draft-ietf-httpbis-p1-messaging-02</a></li> 660 <li class="tocline1">D.5 <a href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></li> 661 <li class="tocline1">D.6 <a href="#changes.since.04">Since draft-ietf-httpbis-p1-messaging-04</a></li> 662 <li class="tocline1">D.7 <a href="#changes.since.05">Since draft-ietf-httpbis-p1-messaging-05</a></li> 664 663 </ul> 665 664 </li> … … 726 725 </h4> 727 726 <p id="rfc.section.1.2.1.1.p.1">A construct "#" is defined, similar to "*", for defining lists of elements. The full form is "<n>#<m>element" indicating at 728 least <n> and at most <m> elements, each separated by one or more commas (",") and <em class="bcp14">OPTIONAL</em> linear white space ( LWS). This makes the usual form of lists very easy; a rule such as729 </p> 730 <div id="rfc.figure.u.1"></div><pre class="text"> ( *<a href="#rule. LWS" class="smpl">LWS</a> element *( *<a href="#rule.LWS" class="smpl">LWS</a> "," *<a href="#rule.LWS" class="smpl">LWS</a> element ))</pre><p id="rfc.section.1.2.1.1.p.2">can be shown as </p>727 least <n> and at most <m> elements, each separated by one or more commas (",") and <em class="bcp14">OPTIONAL</em> linear white space (OWS). This makes the usual form of lists very easy; a rule such as 728 </p> 729 <div id="rfc.figure.u.1"></div><pre class="text"> ( *<a href="#rule.whitespace" class="smpl">OWS</a> element *( *<a href="#rule.whitespace" class="smpl">OWS</a> "," *<a href="#rule.whitespace" class="smpl">OWS</a> element ))</pre><p id="rfc.section.1.2.1.1.p.2">can be shown as </p> 731 730 <div id="rfc.figure.u.2"></div><pre class="text"> 1#element</pre><p id="rfc.section.1.2.1.1.p.3">Wherever this construct is used, null elements are allowed, but do not contribute to the count of elements present. That is, 732 731 "(element), , (element) " is permitted, but counts as only two elements. Therefore, where at least one element is required, … … 743 742 <h3 id="rfc.section.1.2.2"><a href="#rfc.section.1.2.2">1.2.2</a> <a id="basic.rules" href="#basic.rules">Basic Rules</a></h3> 744 743 <div id="rule.CRLF"> 745 <p id="rfc.section.1.2.2.p.1"> HTTP/1.1 defines the sequence CRLF as the end-of-line marker for all protocol elements except the entity-body (see <a href="#tolerant.applications" title="Tolerant Applications">Appendix A</a> for tolerant applications). The end-of-line marker within an entity-body is defined by its associated media type, as described744 <p id="rfc.section.1.2.2.p.1"> 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 A</a> for tolerant applications). The end-of-line marker within an entity-body is defined by its associated media type, as described 746 745 in <a href="p3-payload.html#media.types" title="Media Types">Section 3.3</a> of <a href="#Part3" id="rfc.xref.Part3.2"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 747 746 </p> 748 747 </div> 749 748 <div id="rule.LWS"> 750 <p id="rfc.section.1.2.2.p.2"> HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal 751 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. 749 <p id="rfc.section.1.2.2.p.2">All linear white space (LWS) in header field-values has the same semantics as SP. A recipient <em class="bcp14">MAY</em> replace any such linear white space with a single SP before interpreting the field value or forwarding the message downstream. 752 750 </p> 753 751 </div> 754 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.14"></span> <a href="#rule.LWS" class="smpl">LWS</a> = [<a href="#core.rules" class="smpl">CRLF</a>] 1*( <a href="#core.rules" class="smpl">SP</a> / <a href="#core.rules" class="smpl">HTAB</a> ) 752 <p id="rfc.section.1.2.2.p.3">Historically, HTTP/1.1 header field values allow linear white space folding across multiple lines. However, this specification 753 deprecates its use; senders <em class="bcp14">MUST NOT</em> produce messages that include LWS folding (i.e., use the obs-fold rule), except within the message/http media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 9.3.1</a>). Receivers <em class="bcp14">SHOULD</em> still parse folded linear white space. 754 </p> 755 <p id="rfc.section.1.2.2.p.4">This specification uses three rules to denote the use of linear white space; BWS ("Bad" White Space), OWS (Optional White 756 Space), and RWS (Required White Space). 757 </p> 758 <p id="rfc.section.1.2.2.p.5">"Bad" white space is allowed by the BNF, but senders <em class="bcp14">SHOULD NOT</em> produce it in messages. Receivers <em class="bcp14">MUST</em> accept it in incoming messages. 759 </p> 760 <p id="rfc.section.1.2.2.p.6">Required white space is used when at least one linear white space character is required to separate field tokens. In all such 761 cases, a single SP character <em class="bcp14">SHOULD</em> be used. 762 </p> 763 <div id="rule.whitespace"> 764 <p id="rfc.section.1.2.2.p.7"> </p> 765 </div> 766 <div id="rfc.figure.u.3"></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> <a href="#rule.whitespace" class="smpl">OWS</a> = *( [ obs-fold ] <a href="#core.rules" class="smpl">WSP</a> ) 767 ; "optional" white space 768 <a href="#rule.whitespace" class="smpl">RWS</a> = 1*( [ obs-fold ] <a href="#core.rules" class="smpl">WSP</a> ) 769 ; "required" white space 770 <a href="#rule.whitespace" class="smpl">BWS</a> = <a href="#rule.whitespace" class="smpl">OWS</a> 771 ; "bad" white space 772 <a href="#rule.whitespace" class="smpl">obs-fold</a> = <a href="#core.rules" class="smpl">CRLF</a> 755 773 </pre><div id="rule.TEXT"> 756 <p id="rfc.section.1.2.2.p. 4"> The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message774 <p id="rfc.section.1.2.2.p.9"> The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message 757 775 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>. 758 776 </p> 759 777 </div> 760 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.1 5"></span> <a href="#rule.TEXT" class="smpl">TEXT</a> = %x20-7E / %x80-FF / <a href="#rule.LWS" class="smpl">LWS</a>761 ; 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>762 </pre><p id="rfc.section.1.2.2.p. 6">A CRLF is allowed in the definition of TEXT only as part of a header field continuation. It is expected that the folding LWS778 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.17"></span> <a href="#rule.TEXT" class="smpl">TEXT</a> = %x20-7E / %x80-FF / <a href="#rule.whitespace" class="smpl">OWS</a> 779 ; any <a href="#core.rules" class="smpl">OCTET</a> except <a href="#core.rules" class="smpl">CTL</a>s, but including <a href="#rule.whitespace" class="smpl">OWS</a> 780 </pre><p id="rfc.section.1.2.2.p.11">A CRLF is allowed in the definition of TEXT only as part of a header field continuation. It is expected that the folding LWS 763 781 will be replaced with a single SP before interpretation of the TEXT value. 764 782 </p> 765 783 <div id="rule.token.separators"> 766 <p id="rfc.section.1.2.2.p. 7">Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>).784 <p id="rfc.section.1.2.2.p.12"> Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>). 767 785 </p> 768 786 </div> 769 <div id="rfc.figure.u.5"></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> = "(" / ")" / "<" / ">" / "@" 770 / "," / ";" / ":" / "\" / <a href="#core.rules" class="smpl">DQUOTE</a> 771 / "/" / "[" / "]" / "?" / "=" 772 / "{" / "}" / <a href="#core.rules" class="smpl">SP</a> / <a href="#core.rules" class="smpl">HTAB</a> 773 774 <a href="#rule.token.separators" class="smpl">tchar</a> = "!" / "#" / "$" / "%" / "&" / "'" / "*" 787 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> <a href="#rule.token.separators" class="smpl">tchar</a> = "!" / "#" / "$" / "%" / "&" / "'" / "*" 775 788 / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" 776 789 / <a href="#core.rules" class="smpl">DIGIT</a> / <a href="#core.rules" class="smpl">ALPHA</a> 777 ; 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>778 790 779 791 <a href="#rule.token.separators" class="smpl">token</a> = 1*<a href="#rule.token.separators" class="smpl">tchar</a> 780 792 </pre><div id="rule.comment"> 781 <p id="rfc.section.1.2.2.p. 9"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed793 <p id="rfc.section.1.2.2.p.14"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 782 794 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 783 795 of the field value. 784 796 </p> 785 797 </div> 786 <div id="rfc.figure.u.6"></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> ) ")"798 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.20"></span><span id="rfc.iref.g.21"></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> ) ")" 787 799 <a href="#rule.comment" class="smpl">ctext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding "(" and ")"> 788 800 </pre><div id="rule.quoted-string"> 789 <p id="rfc.section.1.2.2.p.1 1"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p>801 <p id="rfc.section.1.2.2.p.16"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p> 790 802 </div> 791 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.2 1"></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> )803 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></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> 792 804 <a href="#rule.quoted-string" class="smpl">qdtext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding <a href="#core.rules" class="smpl">DQUOTE</a> and "\"> 793 805 </pre><div id="rule.quoted-pair"> 794 <p id="rfc.section.1.2.2.p.1 3"> The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs.806 <p id="rfc.section.1.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. 795 807 </p> 796 808 </div> 797 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.2 3"></span><span id="rfc.iref.g.24"></span> <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 /809 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></span> <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 / 798 810 %x0B-0C / 799 811 %x0E-FF ; Characters excluding NUL, <a href="#core.rules" class="smpl">CR</a> and <a href="#core.rules" class="smpl">LF</a> … … 822 834 "path-abempty", "path-absolute", "query", and "authority" from <a href="#RFC3986" id="rfc.xref.RFC3986.4"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>. In addition, we define a partial-URI rule for protocol elements that allow a relative URI without a fragment. 823 835 </p> 824 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.2 5"></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="#uri" class="smpl">URI</a> = <URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.5"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3">Section 3</a>>836 <div id="rfc.figure.u.12"></div><pre class="inline"><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><span id="rfc.iref.g.32"></span> <a href="#uri" class="smpl">URI</a> = <URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.5"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3">Section 3</a>> 825 837 <a href="#uri" class="smpl">URI-reference</a> = <URI-reference, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.6"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.1">Section 4.1</a>> 826 838 <a href="#uri" class="smpl">absolute-URI</a> = <absolute-URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.7"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.3">Section 4.3</a>> … … 846 858 for identifiers using the http or https URI schemes. 847 859 </p> 848 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.3 2"></span> <a href="#http.uri" class="smpl">http-URI</a> = "http:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ]860 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.33"></span> <a href="#http.uri" class="smpl">http-URI</a> = "http:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ] 849 861 </pre><p id="rfc.section.2.1.1.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 850 862 listening for TCP connections on that port of that host, and the request-target for the resource is path-absolute (<a href="#request-target" title="request-target">Section 5.1.2</a>). The use of IP addresses in URLs <em class="bcp14">SHOULD</em> be avoided whenever possible (see <a href="#RFC1900" id="rfc.xref.RFC1900.1"><cite title="Renumbering Needs Work">[RFC1900]</cite></a>). If the path-absolute is not present in the URL, it <em class="bcp14">MUST</em> be given as "/" when used as a request-target for a resource (<a href="#request-target" title="request-target">Section 5.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name. … … 950 962 </p> 951 963 <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> 952 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.3 3"></span><span id="rfc.iref.g.34"></span> <a href="#http.version" class="smpl">HTTP-Version</a> = <a href="#http.version" class="smpl">HTTP-Prot-Name</a> "/" 1*<a href="#core.rules" class="smpl">DIGIT</a> "." 1*<a href="#core.rules" class="smpl">DIGIT</a>964 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span> <a href="#http.version" class="smpl">HTTP-Version</a> = <a href="#http.version" class="smpl">HTTP-Prot-Name</a> "/" 1*<a href="#core.rules" class="smpl">DIGIT</a> "." 1*<a href="#core.rules" class="smpl">DIGIT</a> 953 965 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 954 966 </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. … … 974 986 <h3 id="rfc.section.3.2.1"><a href="#rfc.section.3.2.1">3.2.1</a> <a id="full.date" href="#full.date">Full Date</a></h3> 975 987 <p id="rfc.section.3.2.1.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p> 976 <div id="rfc.figure.u.19"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC1123988 <div id="rfc.figure.u.19"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 977 989 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 978 990 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format 979 </pre><p id="rfc.section.3.2.1.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a> (an update to <a href="#RFC822" id="rfc.xref.RFC822.1"><cite title="Standard for the format of ARPA Internet text messages">[RFC822]</cite></a>). The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers991 </pre><p id="rfc.section.3.2.1.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a>. The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers 980 992 that parse the date value <em class="bcp14">MUST</em> accept all three formats (for compatibility with HTTP/1.0), though they <em class="bcp14">MUST</em> only generate the RFC 1123 format for representing HTTP-date values in header fields. See <a href="#tolerant.applications" title="Tolerant Applications">Appendix A</a> for further information. 981 993 </p> … … 989 1001 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. 990 1002 </p> 991 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.3 5"></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><span id="rfc.iref.g.44"></span><span id="rfc.iref.g.45"></span><span id="rfc.iref.g.46"></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">obsolete-date</a>1003 <div id="rfc.figure.u.20"></div><pre class="inline"><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><span id="rfc.iref.g.44"></span><span id="rfc.iref.g.45"></span><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></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">obsolete-date</a> 992 1004 <a href="#full.date" class="smpl">obsolete-date</a> = <a href="#full.date" class="smpl">rfc850-date</a> / <a href="#full.date" class="smpl">asctime-date</a> 993 1005 <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 … … 1048 1060 is a property of the message, not of the original entity. 1049 1061 </p> 1050 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.4 7"></span><span id="rfc.iref.g.48"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a>1051 <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> )1062 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1063 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#transfer.codings" class="smpl">parameter</a> ) 1052 1064 </pre><div id="rule.parameter"> 1053 1065 <p id="rfc.section.3.3.p.3"> Parameters are in the form of attribute/value pairs.</p> 1054 1066 </div> 1055 <div id="rfc.figure.u.22"></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> <a href="#transfer.codings" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> "="<a href="#rule.parameter" class="smpl">value</a>1067 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span> <a href="#transfer.codings" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> <a href="#rule.whitespace" class="smpl">BWS</a> "=" <a href="#rule.whitespace" class="smpl">BWS</a> <a href="#rule.parameter" class="smpl">value</a> 1056 1068 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1057 1069 <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> … … 1078 1090 necessary for the recipient to verify that it has received the full message. 1079 1091 </p> 1080 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.5 2"></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><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a>1092 <div id="rfc.figure.u.23"></div><pre class="inline"><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><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a> 1081 1093 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> 1082 1094 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> 1083 1095 <a href="#core.rules" class="smpl">CRLF</a> 1084 1096 1085 <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="#core.rules" class="smpl">CRLF</a>1097 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> *WSP [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1086 1098 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> <a href="#core.rules" class="smpl">CRLF</a> 1087 1099 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*<a href="#core.rules" class="smpl">HEXDIG</a> 1088 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="#core.rules" class="smpl">CRLF</a>1100 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") *WSP [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1089 1101 1090 <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> ] ) 1102 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> = *( ";" *WSP <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> 1103 [ "=" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> ] *WSP ) 1091 1104 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1092 1105 <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> … … 1115 1128 </p> 1116 1129 <p id="rfc.section.3.3.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p> 1117 <div id="rfc.figure.u.24"></div><pre class="text"> 1118 read chunk-size, chunk-extension(if any) and CRLF1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 </pre><p id="rfc.section.3.3.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext ensionextensions they do not understand.1130 <div id="rfc.figure.u.24"></div><pre class="text"> length := 0 1131 read chunk-size, chunk-ext (if any) and CRLF 1132 while (chunk-size > 0) { 1133 read chunk-data and CRLF 1134 append chunk-data to entity-body 1135 length := length + chunk-size 1136 read chunk-size and CRLF 1137 } 1138 read entity-header 1139 while (entity-header not empty) { 1140 append entity-header to existing header fields 1141 read entity-header 1142 } 1143 Content-Length := length 1144 Remove "chunked" from Transfer-Encoding 1145 </pre><p id="rfc.section.3.3.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand. 1133 1146 </p> 1134 1147 <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2> … … 1137 1150 space. By convention, the products are listed in order of their significance for identifying the application. 1138 1151 </p> 1139 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.6 1"></span><span id="rfc.iref.g.62"></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>]1152 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></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>] 1140 1153 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1141 1154 </pre><p id="rfc.section.3.4.p.3">Examples:</p> … … 1147 1160 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="message.types" href="#message.types">Message Types</a></h2> 1148 1161 <p id="rfc.section.4.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1149 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.6 3"></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 messages1162 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.64"></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 1150 1163 </pre><p id="rfc.section.4.1.p.3">Request (<a href="#request" title="Request">Section 5</a>) and Response (<a href="#response" title="Response">Section 6</a>) messages use the generic message format of <a href="#RFC5322" id="rfc.xref.RFC5322.2"><cite title="Internet Message Format">[RFC5322]</cite></a> for transferring entities (the payload of the message). Both types of message consist of a start-line, zero or more header 1151 1164 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1152 1165 fields, and possibly a message-body. 1153 1166 </p> 1154 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.6 4"></span><span id="rfc.iref.g.65"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a>1167 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1155 1168 *(<a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a>) 1156 1169 <a href="#core.rules" class="smpl">CRLF</a> … … 1170 1183 forms. 1171 1184 </p> 1172 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.6 6"></span><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></span><span id="rfc.iref.g.69"></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> ]1185 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></span><span id="rfc.iref.g.69"></span><span id="rfc.iref.g.70"></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> ] 1173 1186 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1174 <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> )1187 <a href="#message.headers" class="smpl">field-value</a> = *( <a href="#message.headers" class="smpl">field-content</a> / <a href="#rule.whitespace" class="smpl">OWS</a> ) 1175 1188 <a href="#message.headers" class="smpl">field-content</a> = <field content> 1176 ; the <a href="#core.rules" class="smpl">OCTET</a>s making up the field-value 1177 ; and consisting of either *<a href="#rule.TEXT" class="smpl">TEXT</a> or combinations 1178 ; 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> 1179 </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 1189 </pre><p id="rfc.section.4.2.p.3"> <span class="comment">[rfc.comment.2: whitespace between field-name and colon is an error and MUST NOT be accepted]</span> 1190 </p> 1191 <p id="rfc.section.4.2.p.4">The field-content does not include any leading or trailing LWS: linear white space occurring before the first non-whitespace 1180 1192 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. 1181 1193 </p> 1182 <p id="rfc.section.4.2.p. 4">The order in which header fields with differing field names are received is not significant. However, it is "good practice"1194 <p id="rfc.section.4.2.p.5">The order in which header fields with differing field names are received is not significant. However, it is "good practice" 1183 1195 to send general-header fields first, followed by request-header or response-header fields, and ending with the entity-header 1184 1196 fields. 1185 1197 </p> 1186 <p id="rfc.section.4.2.p. 5">Multiple message-header fields with the same field-name <em class="bcp14">MAY</em> be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e.,1198 <p id="rfc.section.4.2.p.6">Multiple message-header fields with the same field-name <em class="bcp14">MAY</em> be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., 1187 1199 #(values)]. It <em class="bcp14">MUST</em> be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics 1188 1200 of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header … … 1190 1202 thus a proxy <em class="bcp14">MUST NOT</em> change the order of these field values when a message is forwarded. 1191 1203 </p> 1192 <p id="rfc.section.4.2.p. 6"> </p>1204 <p id="rfc.section.4.2.p.7"> </p> 1193 1205 <dl class="empty"> 1194 1206 <dd> <b>Note:</b> the "Set-Cookie" header as implemented in practice (as opposed to how it is specified in <a href="#RFC2109" id="rfc.xref.RFC2109.1"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>) can occur multiple times, but does not use the list syntax, and thus cannot be combined into a single line. (See Appendix … … 1201 1213 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>). 1202 1214 </p> 1203 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.7 0"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a>1215 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.71"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1204 1216 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1205 1217 </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 … … 1269 1281 to the entity being transferred. These header fields apply only to the message being transmitted. 1270 1282 </p> 1271 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.7 1"></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.5"><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>1283 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.72"></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.5"><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> 1272 1284 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1273 1285 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a> … … 1286 1298 resource, the identifier of the resource, and the protocol version in use. 1287 1299 </p> 1288 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.7 2"></span> <a href="#request" class="smpl">Request</a> = <a href="#request-line" class="smpl">Request-Line</a> ; <a href="#request-line" title="Request-Line">Section 5.1</a>1300 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.73"></span> <a href="#request" class="smpl">Request</a> = <a href="#request-line" class="smpl">Request-Line</a> ; <a href="#request-line" title="Request-Line">Section 5.1</a> 1289 1301 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1290 1302 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.6"><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> … … 1296 1308 The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1297 1309 </p> 1298 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.7 3"></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-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a>1310 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.74"></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-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a> 1299 1311 </pre><h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a> <a id="method" href="#method">Method</a></h3> 1300 1312 <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-target. The method is case-sensitive.</p> 1301 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.7 4"></span><span id="rfc.iref.g.75"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a>1313 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.75"></span><span id="rfc.iref.g.76"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1302 1314 </pre><h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a> <a id="request-target" href="#request-target">request-target</a></h3> 1303 1315 <p id="rfc.section.5.1.2.p.1">The request-target is a Uniform Resource Identifier (<a href="#uri" title="Uniform Resource Identifiers">Section 2.1</a>) and identifies the resource upon which to apply the request. 1304 1316 </p> 1305 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.7 6"></span> <a href="#request-target" class="smpl">request-target</a> = "*"1317 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.77"></span> <a href="#request-target" class="smpl">request-target</a> = "*" 1306 1318 / <a href="#uri" class="smpl">absolute-URI</a> 1307 1319 / ( <a href="#uri" class="smpl">path-absolute</a> [ "?" <a href="#uri" class="smpl">query</a> ] ) … … 1352 1364 field. 1353 1365 </p> 1354 <p id="rfc.section.5.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix C.1.1</a> for other requirements on Host support in HTTP/1.1.)1366 <p id="rfc.section.5.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix B.1.1</a> for other requirements on Host support in HTTP/1.1.) 1355 1367 </p> 1356 1368 <p id="rfc.section.5.2.p.3">An origin server that does differentiate resources based on the host requested (sometimes referred to as virtual hosts or … … 1371 1383 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="response" href="#response">Response</a></h1> 1372 1384 <p id="rfc.section.6.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1373 <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.7 7"></span> <a href="#response" class="smpl">Response</a> = <a href="#status-line" class="smpl">Status-Line</a> ; <a href="#status-line" title="Status-Line">Section 6.1</a>1385 <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.78"></span> <a href="#response" class="smpl">Response</a> = <a href="#status-line" class="smpl">Status-Line</a> ; <a href="#status-line" title="Status-Line">Section 6.1</a> 1374 1386 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1375 1387 / <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> … … 1382 1394 CRLF sequence. 1383 1395 </p> 1384 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.7 8"></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="#core.rules" class="smpl">CRLF</a>1396 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.79"></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="#core.rules" class="smpl">CRLF</a> 1385 1397 </pre><h3 id="rfc.section.6.1.1"><a href="#rfc.section.6.1.1">6.1.1</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h3> 1386 1398 <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 … … 1399 1411 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1400 1412 </ul> 1401 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g. 79"></span><span id="rfc.iref.g.80"></span><span id="rfc.iref.g.81"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a>1413 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.80"></span><span id="rfc.iref.g.81"></span><span id="rfc.iref.g.82"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1402 1414 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *<<a href="#rule.TEXT" class="smpl">TEXT</a>, excluding <a href="#core.rules" class="smpl">CR</a>, <a href="#core.rules" class="smpl">LF</a>> 1403 1415 </pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> … … 1446 1458 connection. 1447 1459 </p> 1448 <p id="rfc.section.7.1.2.1.p.4">Clients and servers <em class="bcp14">SHOULD NOT</em> assume that a persistent connection is maintained for HTTP versions less than 1.1 unless it is explicitly signaled. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix C.2</a> for more information on backward compatibility with HTTP/1.0 clients.1460 <p id="rfc.section.7.1.2.1.p.4">Clients and servers <em class="bcp14">SHOULD NOT</em> assume that a persistent connection is maintained for HTTP versions less than 1.1 unless it is explicitly signaled. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a> for more information on backward compatibility with HTTP/1.0 clients. 1449 1461 </p> 1450 1462 <p id="rfc.section.7.1.2.1.p.5">In order to remain persistent, all messages on the connection <em class="bcp14">MUST</em> have a self-defined message length (i.e., one not defined by closure of the connection), as described in <a href="#message.length" title="Message Length">Section 4.4</a>. … … 1587 1599 <div id="rfc.iref.h.3"></div> 1588 1600 <h2 id="rfc.section.8.1"><a href="#rfc.section.8.1">8.1</a> <a id="header.connection" href="#header.connection">Connection</a></h2> 1589 <p id="rfc.section.8.1.p.1">The Connection general-header field allows the sender to specify options that are desired for that particular connection and <em class="bcp14">MUST NOT</em> be communicated by proxies over further connections. 1590 </p> 1591 <p id="rfc.section.8.1.p.2">The Connection header has the following grammar:</p> 1592 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" 1#(<a href="#header.connection" class="smpl">connection-token</a>) 1593 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 1601 <p id="rfc.section.8.1.p.1">The general-header field "Connection" allows the sender to specify options that are desired for that particular connection 1602 and <em class="bcp14">MUST NOT</em> be communicated by proxies over further connections. 1603 </p> 1604 <p id="rfc.section.8.1.p.2">The Connection header's value has the following grammar:</p> 1605 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.83"></span><span id="rfc.iref.g.84"></span><span id="rfc.iref.g.85"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.connection" class="smpl">Connection-v</a> 1606 <a href="#header.connection" class="smpl">Connection-v</a> = 1#<a href="#header.connection" class="smpl">connection-token</a> 1607 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 1594 1608 </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 1595 1609 field(s) from the message with the same name as the connection-token. Connection options are signaled by the presence of a … … 1602 1616 of the response. For example, 1603 1617 </p> 1604 <div id="rfc.figure.u.43"></div><pre class="text"> 1618 <div id="rfc.figure.u.43"></div><pre class="text"> Connection: close 1605 1619 </pre><p id="rfc.section.8.1.p.8">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered `persistent' (<a href="#persistent.connections" title="Persistent Connections">Section 7.1</a>) after the current request/response is complete. 1606 1620 </p> … … 1610 1624 </p> 1611 1625 <p id="rfc.section.8.1.p.11">A system receiving an HTTP/1.0 (or lower-version) message that includes a Connection header <em class="bcp14">MUST</em>, for each connection-token in this field, remove and ignore any header field(s) from the message with the same name as the 1612 connection-token. This protects against mistaken forwarding of such header fields by pre-HTTP/1.1 proxies. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix C.2</a>.1626 connection-token. This protects against mistaken forwarding of such header fields by pre-HTTP/1.1 proxies. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a>. 1613 1627 </p> 1614 1628 <div id="rfc.iref.c.2"></div> 1615 1629 <div id="rfc.iref.h.4"></div> 1616 1630 <h2 id="rfc.section.8.2"><a href="#rfc.section.8.2">8.2</a> <a id="header.content-length" href="#header.content-length">Content-Length</a></h2> 1617 <p id="rfc.section.8.2.p.1">The Content-Length entity-header fieldindicates the size of the entity-body, in decimal number of OCTETs, sent to the recipient1631 <p id="rfc.section.8.2.p.1">The entity-header field "Content-Length" indicates the size of the entity-body, in decimal number of OCTETs, sent to the recipient 1618 1632 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. 1619 1633 </p> 1620 <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.84"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" 1*<a href="#core.rules" class="smpl">DIGIT</a> 1634 <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.86"></span><span id="rfc.iref.g.87"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" <a href="#rule.whitespace" class="smpl">OWS</a> 1*<a href="#header.content-length" class="smpl">Content-Length-v</a> 1635 <a href="#header.content-length" class="smpl">Content-Length-v</a> = 1*<a href="#core.rules" class="smpl">DIGIT</a> 1621 1636 </pre><p id="rfc.section.8.2.p.3">An example is</p> 1622 <div id="rfc.figure.u.45"></div><pre class="text"> 1637 <div id="rfc.figure.u.45"></div><pre class="text"> Content-Length: 3495 1623 1638 </pre><p id="rfc.section.8.2.p.5">Applications <em class="bcp14">SHOULD</em> use this field to indicate the transfer-length of the message-body, unless this is prohibited by the rules in <a href="#message.length" title="Message Length">Section 4.4</a>. 1624 1639 </p> … … 1632 1647 <div id="rfc.iref.h.5"></div> 1633 1648 <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a> <a id="header.date" href="#header.date">Date</a></h2> 1634 <p id="rfc.section.8.3.p.1">The Date general-header fieldrepresents the date and time at which the message was originated, having the same semantics1649 <p id="rfc.section.8.3.p.1">The general-header field "Date" represents the date and time at which the message was originated, having the same semantics 1635 1650 as orig-date in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.1">Section 3.6.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as described in <a href="#full.date" title="Full Date">Section 3.2.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1636 1651 </p> 1637 <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.85"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#full.date" class="smpl">HTTP-date</a> 1652 <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.88"></span><span id="rfc.iref.g.89"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.date" class="smpl">Date-v</a> 1653 <a href="#header.date" class="smpl">Date-v</a> = <a href="#full.date" class="smpl">HTTP-date</a> 1638 1654 </pre><p id="rfc.section.8.3.p.3">An example is</p> 1639 <div id="rfc.figure.u.47"></div><pre class="text"> 1655 <div id="rfc.figure.u.47"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 1640 1656 </pre><p id="rfc.section.8.3.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases: 1641 1657 </p> … … 1668 1684 <div id="rfc.iref.h.7"></div> 1669 1685 <h2 id="rfc.section.8.4"><a href="#rfc.section.8.4">8.4</a> <a id="header.host" href="#header.host">Host</a></h2> 1670 <p id="rfc.section.8.4.p.1">The Host request-header fieldspecifies the Internet host and port number of the resource being requested, as obtained from1686 <p id="rfc.section.8.4.p.1">The request-header field "Host" specifies the Internet host and port number of the resource being requested, as obtained from 1671 1687 the original URI given by the user or referring resource (generally an http URI, as described in <a href="#http.uri" title="http URI scheme">Section 2.1.1</a>). The Host field value <em class="bcp14">MUST</em> represent the naming authority of the origin server or gateway given by the original URL. This allows the origin server or 1672 1688 gateway to differentiate between internally-ambiguous URLs, such as the root "/" URL of a server for multiple host names on 1673 1689 a single IP address. 1674 1690 </p> 1675 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.86"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2.1.1</a> 1691 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.90"></span><span id="rfc.iref.g.91"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.host" class="smpl">Host-v</a> 1692 <a href="#header.host" class="smpl">Host-v</a> = <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2.1.1</a> 1676 1693 </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 1677 1694 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: 1678 1695 </p> 1679 <div id="rfc.figure.u.49"></div><pre class="text"> 1680 1696 <div id="rfc.figure.u.49"></div><pre class="text"> GET /pub/WWW/ HTTP/1.1 1697 Host: www.example.org 1681 1698 </pre><p id="rfc.section.8.4.p.5">A client <em class="bcp14">MUST</em> include a Host header field in all HTTP/1.1 request messages. If the requested URI does not include an Internet host name 1682 1699 for the service being requested, then the Host header field <em class="bcp14">MUST</em> be given with an empty value. An HTTP/1.1 proxy <em class="bcp14">MUST</em> ensure that any request message it forwards does contain an appropriate Host header field that identifies the service being 1683 1700 requested by the proxy. All Internet-based HTTP/1.1 servers <em class="bcp14">MUST</em> respond with a 400 (Bad Request) status code to any HTTP/1.1 request message which lacks a Host header field. 1684 1701 </p> 1685 <p id="rfc.section.8.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request">5.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses"> C.1.1</a> for other requirements relating to Host.1702 <p id="rfc.section.8.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request">5.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">B.1.1</a> for other requirements relating to Host. 1686 1703 </p> 1687 1704 <div id="rfc.iref.t.1"></div> 1688 1705 <div id="rfc.iref.h.8"></div> 1689 1706 <h2 id="rfc.section.8.5"><a href="#rfc.section.8.5">8.5</a> <a id="header.te" href="#header.te">TE</a></h2> 1690 <p id="rfc.section.8.5.p.1">The TE request-header fieldindicates what extension transfer-codings it is willing to accept in the response and whether1707 <p id="rfc.section.8.5.p.1">The request-header field "TE" indicates what extension transfer-codings it is willing to accept in the response and whether 1691 1708 or not it is willing to accept trailer fields in a chunked transfer-coding. Its value may consist of the keyword "trailers" 1692 1709 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>). 1693 1710 </p> 1694 <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" #( <a href="#header.te" class="smpl">t-codings</a> ) 1711 <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.te" class="smpl">TE-v</a> 1712 <a href="#header.te" class="smpl">TE-v</a> = #<a href="#header.te" class="smpl">t-codings</a> 1695 1713 <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> ] ) 1696 1714 </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, … … 1698 1716 </p> 1699 1717 <p id="rfc.section.8.5.p.4">Examples of its use are:</p> 1700 <div id="rfc.figure.u.51"></div><pre class="text"> 1701 1702 1718 <div id="rfc.figure.u.51"></div><pre class="text"> TE: deflate 1719 TE: 1720 TE: trailers, deflate;q=0.5 1703 1721 </pre><p id="rfc.section.8.5.p.6">The TE header field only applies to the immediate connection. Therefore, the keyword <em class="bcp14">MUST</em> be supplied within a Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.4" title="Connection">Section 8.1</a>) whenever TE is present in an HTTP/1.1 message. 1704 1722 </p> … … 1732 1750 <div id="rfc.iref.h.9"></div> 1733 1751 <h2 id="rfc.section.8.6"><a href="#rfc.section.8.6">8.6</a> <a id="header.trailer" href="#header.trailer">Trailer</a></h2> 1734 <p id="rfc.section.8.6.p.1">The Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded 1735 with chunked transfer-coding. 1736 </p> 1737 <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.89"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" 1#<a href="#message.headers" class="smpl">field-name</a> 1752 <p id="rfc.section.8.6.p.1">The general field "Trailer" indicates that the given set of header fields is present in the trailer of a message encoded with 1753 chunked transfer-coding. 1754 </p> 1755 <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.trailer" class="smpl">Trailer-v</a> 1756 <a href="#header.trailer" class="smpl">Trailer-v</a> = 1#<a href="#message.headers" class="smpl">field-name</a> 1738 1757 </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 1739 1758 to know which header fields to expect in the trailer. … … 1751 1770 <div id="rfc.iref.h.10"></div> 1752 1771 <h2 id="rfc.section.8.7"><a href="#rfc.section.8.7">8.7</a> <a id="header.transfer-encoding" href="#header.transfer-encoding">Transfer-Encoding</a></h2> 1753 <p id="rfc.section.8.7.p.1">The Transfer-Encoding general-headerfield indicates what (if any) type of transformation has been applied to the message1772 <p id="rfc.section.8.7.p.1">The general-header "Transfer-Encoding" field indicates what (if any) type of transformation has been applied to the message 1754 1773 body in order to safely transfer it between the sender and the recipient. This differs from the content-coding in that the 1755 1774 transfer-coding is a property of the message, not of the entity. 1756 1775 </p> 1757 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.90"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1776 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.97"></span><span id="rfc.iref.g.98"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" <a href="#rule.whitespace" class="smpl">OWS</a> 1777 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> 1778 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> = 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1758 1779 </pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>. An example is: 1759 1780 </p> … … 1765 1786 <div id="rfc.iref.h.11"></div> 1766 1787 <h2 id="rfc.section.8.8"><a href="#rfc.section.8.8">8.8</a> <a id="header.upgrade" href="#header.upgrade">Upgrade</a></h2> 1767 <p id="rfc.section.8.8.p.1">The Upgrade general-headerallows the client to specify what additional communication protocols it supports and would like1788 <p id="rfc.section.8.8.p.1">The general-header "Upgrade" allows the client to specify what additional communication protocols it supports and would like 1768 1789 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. 1769 1790 </p> 1770 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.91"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" 1#<a href="#product.tokens" class="smpl">product</a> 1791 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.99"></span><span id="rfc.iref.g.100"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.upgrade" class="smpl">Upgrade-v</a> 1792 <a href="#header.upgrade" class="smpl">Upgrade-v</a> = 1#<a href="#product.tokens" class="smpl">product</a> 1771 1793 </pre><p id="rfc.section.8.8.p.3">For example,</p> 1772 <div id="rfc.figure.u.56"></div><pre class="text"> 1794 <div id="rfc.figure.u.56"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 1773 1795 </pre><p id="rfc.section.8.8.p.5">The Upgrade header field is intended to provide a simple mechanism for transition from HTTP/1.1 to some other, incompatible 1774 1796 protocol. It does so by allowing the client to advertise its desire to use another protocol, such as a later version of HTTP … … 1795 1817 <div id="rfc.iref.h.12"></div> 1796 1818 <h2 id="rfc.section.8.9"><a href="#rfc.section.8.9">8.9</a> <a id="header.via" href="#header.via">Via</a></h2> 1797 <p id="rfc.section.8.9.p.1">The Via general-header field<em class="bcp14">MUST</em> be used by gateways and proxies to indicate the intermediate protocols and recipients between the user agent and the server1819 <p id="rfc.section.8.9.p.1">The general-header field "Via" <em class="bcp14">MUST</em> be used by gateways and proxies to indicate the intermediate protocols and recipients between the user agent and the server 1798 1820 on requests, and between the origin server and the client on responses. It is analogous to the "Received" field defined in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.7">Section 3.6.7</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.5"><cite title="Internet Message Format">[RFC5322]</cite></a> and is intended to be used for tracking message forwards, avoiding request loops, and identifying the protocol capabilities 1799 1821 of all senders along the request/response chain. 1800 1822 </p> 1801 <div id="rfc.figure.u.57"></div><pre class="inline"><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span><span id="rfc.iref.g.97"></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> ] ) 1823 <div id="rfc.figure.u.57"></div><pre class="inline"><span id="rfc.iref.g.101"></span><span id="rfc.iref.g.102"></span><span id="rfc.iref.g.103"></span><span id="rfc.iref.g.104"></span><span id="rfc.iref.g.105"></span><span id="rfc.iref.g.106"></span><span id="rfc.iref.g.107"></span> <a href="#header.via" class="smpl">Via</a> = "Via" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.via" class="smpl">Via-v</a> 1824 <a href="#header.via" class="smpl">Via-v</a> = 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#header.via" class="smpl">received-by</a> 1825 [ <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#rule.comment" class="smpl">comment</a> ] ) 1802 1826 <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> 1803 1827 <a href="#header.via" class="smpl">protocol-name</a> = <a href="#rule.token.separators" class="smpl">token</a> … … 1822 1846 server at www.example.com. The request received by www.example.com would then have the following Via header field: 1823 1847 </p> 1824 <div id="rfc.figure.u.58"></div><pre class="text"> 1848 <div id="rfc.figure.u.58"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 1825 1849 </pre><p id="rfc.section.8.9.p.9">Proxies and gateways used as a portal through a network firewall <em class="bcp14">SHOULD NOT</em>, by default, forward the names and ports of hosts within the firewall region. This information <em class="bcp14">SHOULD</em> only be propagated if explicitly enabled. If not enabled, the received-by host of any host behind the firewall <em class="bcp14">SHOULD</em> be replaced by an appropriate pseudonym for that host. 1826 1850 </p> … … 1828 1852 For example, 1829 1853 </p> 1830 <div id="rfc.figure.u.59"></div><pre class="text"> 1854 <div id="rfc.figure.u.59"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 1831 1855 </pre><p id="rfc.section.8.9.p.12">could be collapsed to</p> 1832 <div id="rfc.figure.u.60"></div><pre class="text"> 1856 <div id="rfc.figure.u.60"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 1833 1857 </pre><p id="rfc.section.8.9.p.14">Applications <em class="bcp14">SHOULD NOT</em> combine multiple entries unless they are all under the same organizational control and the hosts have already been replaced 1834 1858 by pseudonyms. Applications <em class="bcp14">MUST NOT</em> combine entries which have different received-protocol values. … … 2194 2218 <h2 id="rfc.references.2"><a href="#rfc.section.12.2" id="rfc.section.12.2">12.2</a> Informative References 2195 2219 </h2> 2196 <table summary="Informative References"> 2220 <table summary="Informative References"> 2197 2221 <tr> 2198 2222 <td class="reference"><b id="Kri2001">[Kri2001]</b></td> … … 2289 2313 <td class="reference"><b id="RFC5322">[RFC5322]</b></td> 2290 2314 <td class="top">Resnick, P., “<a href="http://tools.ietf.org/html/rfc5322">Internet Message Format</a>”, RFC 5322, October 2008. 2291 </td>2292 </tr>2293 <tr>2294 <td class="reference"><b id="RFC822">[RFC822]</b></td>2295 <td class="top"><a title="University of Delaware, Dept. of Electrical Engineering">Crocker, D.H.</a>, “<a href="http://tools.ietf.org/html/rfc822">Standard for the format of ARPA Internet text messages</a>”, STD 11, RFC 822, August 1982.2296 2315 </td> 2297 2316 </tr> … … 2358 2377 </li> 2359 2378 </ul> 2360 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="conversion.of.date.formats" href="#conversion.of.date.formats">Conversion of Date Formats</a></h1> 2361 <p id="rfc.section.B.p.1">HTTP/1.1 uses a restricted set of date formats (<a href="#full.date" title="Full Date">Section 3.2.1</a>) to simplify the process of date comparison. Proxies and gateways from other protocols <em class="bcp14">SHOULD</em> ensure that any Date header field present in a message conforms to one of the HTTP/1.1 formats and rewrite the date if necessary. 2362 </p> 2363 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="compatibility" href="#compatibility">Compatibility with Previous Versions</a></h1> 2364 <p id="rfc.section.C.p.1">HTTP has been in use by the World-Wide Web global information initiative since 1990. The first version of HTTP, later referred 2379 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="compatibility" href="#compatibility">Compatibility with Previous Versions</a></h1> 2380 <p id="rfc.section.B.p.1">HTTP has been in use by the World-Wide Web global information initiative since 1990. The first version of HTTP, later referred 2365 2381 to as HTTP/0.9, was a simple protocol for hypertext data transfer across the Internet with only a single method and no metadata. 2366 2382 HTTP/1.0, as defined by <a href="#RFC1945" id="rfc.xref.RFC1945.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.0">[RFC1945]</cite></a>, added a range of request methods and MIME-like messaging that could include metadata about the data transferred and modifiers … … 2370 2386 to determine each other's true capabilities. 2371 2387 </p> 2372 <p id="rfc.section. C.p.2">HTTP/1.1 remains compatible with HTTP/1.0 by including more stringent requirements that enable reliable implementations, adding2388 <p id="rfc.section.B.p.2">HTTP/1.1 remains compatible with HTTP/1.0 by including more stringent requirements that enable reliable implementations, adding 2373 2389 only those new features that will either be safely ignored by an HTTP/1.0 recipient or only sent when communicating with a 2374 2390 party advertising compliance with HTTP/1.1. 2375 2391 </p> 2376 <p id="rfc.section. C.p.3">It is beyond the scope of a protocol specification to mandate compliance with previous versions. HTTP/1.1 was deliberately2392 <p id="rfc.section.B.p.3">It is beyond the scope of a protocol specification to mandate compliance with previous versions. HTTP/1.1 was deliberately 2377 2393 designed, however, to make supporting previous versions easy. It is worth noting that, at the time of composing this specification 2378 2394 (1996), we would expect commercial HTTP/1.1 servers to: … … 2383 2399 <li>respond appropriately with a message in the same major version used by the client.</li> 2384 2400 </ul> 2385 <p id="rfc.section. C.p.4">And we would expect HTTP/1.1 clients to: </p>2401 <p id="rfc.section.B.p.4">And we would expect HTTP/1.1 clients to: </p> 2386 2402 <ul> 2387 2403 <li>recognize the format of the Status-Line for HTTP/1.0 and 1.1 responses;</li> 2388 2404 <li>understand any valid response in the format of HTTP/0.9, 1.0, or 1.1.</li> 2389 2405 </ul> 2390 <p id="rfc.section. C.p.5">For most implementations of HTTP/1.0, each connection is established by the client prior to the request and closed by the2406 <p id="rfc.section.B.p.5">For most implementations of HTTP/1.0, each connection is established by the client prior to the request and closed by the 2391 2407 server after sending the response. Some implementations implement the Keep-Alive version of persistent connections described 2392 2408 in <a href="http://tools.ietf.org/html/rfc2068#section-19.7.1">Section 19.7.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.6"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>. 2393 2409 </p> 2394 <h2 id="rfc.section. C.1"><a href="#rfc.section.C.1">C.1</a> <a id="changes.from.1.0" href="#changes.from.1.0">Changes from HTTP/1.0</a></h2>2395 <p id="rfc.section. C.1.p.1">This section summarizes major differences between versions HTTP/1.0 and HTTP/1.1.</p>2396 <h3 id="rfc.section. C.1.1"><a href="#rfc.section.C.1.1">C.1.1</a> <a id="changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></h3>2397 <p id="rfc.section. C.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 8.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 5.1.2</a>) are among the most important changes defined by this specification.2398 </p> 2399 <p id="rfc.section. C.1.1.p.2">Older HTTP/1.0 clients assumed a one-to-one relationship of IP addresses and servers; there was no other established mechanism2410 <h2 id="rfc.section.B.1"><a href="#rfc.section.B.1">B.1</a> <a id="changes.from.1.0" href="#changes.from.1.0">Changes from HTTP/1.0</a></h2> 2411 <p id="rfc.section.B.1.p.1">This section summarizes major differences between versions HTTP/1.0 and HTTP/1.1.</p> 2412 <h3 id="rfc.section.B.1.1"><a href="#rfc.section.B.1.1">B.1.1</a> <a id="changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></h3> 2413 <p id="rfc.section.B.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 8.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 5.1.2</a>) are among the most important changes defined by this specification. 2414 </p> 2415 <p id="rfc.section.B.1.1.p.2">Older HTTP/1.0 clients assumed a one-to-one relationship of IP addresses and servers; there was no other established mechanism 2400 2416 for distinguishing the intended server of a request than the IP address to which that request was directed. The changes outlined 2401 2417 above will allow the Internet, once older HTTP clients are no longer common, to support multiple Web sites from a single IP … … 2416 2432 </li> 2417 2433 </ul> 2418 <h2 id="rfc.section. C.2"><a href="#rfc.section.C.2">C.2</a> <a id="compatibility.with.http.1.0.persistent.connections" href="#compatibility.with.http.1.0.persistent.connections">Compatibility with HTTP/1.0 Persistent Connections</a></h2>2419 <p id="rfc.section. C.2.p.1">Some clients and servers might wish to be compatible with some previous implementations of persistent connections in HTTP/1.02434 <h2 id="rfc.section.B.2"><a href="#rfc.section.B.2">B.2</a> <a id="compatibility.with.http.1.0.persistent.connections" href="#compatibility.with.http.1.0.persistent.connections">Compatibility with HTTP/1.0 Persistent Connections</a></h2> 2435 <p id="rfc.section.B.2.p.1">Some clients and servers might wish to be compatible with some previous implementations of persistent connections in HTTP/1.0 2420 2436 clients and servers. Persistent connections in HTTP/1.0 are explicitly negotiated as they are not the default behavior. HTTP/1.0 2421 2437 experimental implementations of persistent connections are faulty, and the new facilities in HTTP/1.1 are designed to rectify … … 2425 2441 from using Keep-Alive when talking to proxies. 2426 2442 </p> 2427 <p id="rfc.section. C.2.p.2">However, talking to proxies is the most important use of persistent connections, so that prohibition is clearly unacceptable.2443 <p id="rfc.section.B.2.p.2">However, talking to proxies is the most important use of persistent connections, so that prohibition is clearly unacceptable. 2428 2444 Therefore, we need some other mechanism for indicating a persistent connection is desired, which is safe to use even when 2429 2445 talking to an old proxy that ignores Connection. Persistent connections are the default for HTTP/1.1 messages; we introduce 2430 2446 a new keyword (Connection: close) for declaring non-persistence. See <a href="#header.connection" id="rfc.xref.header.connection.7" title="Connection">Section 8.1</a>. 2431 2447 </p> 2432 <p id="rfc.section. C.2.p.3">The original HTTP/1.0 form of persistent connections (the Connection: Keep-Alive and Keep-Alive header) is documented in <a href="#RFC2068" id="rfc.xref.RFC2068.7"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>.2433 </p> 2434 <h2 id="rfc.section. C.3"><a href="#rfc.section.C.3">C.3</a> <a id="changes.from.rfc.2068" href="#changes.from.rfc.2068">Changes from RFC 2068</a></h2>2435 <p id="rfc.section. C.3.p.1">This specification has been carefully audited to correct and disambiguate key word usage; RFC 2068 had many problems in respect2448 <p id="rfc.section.B.2.p.3">The original HTTP/1.0 form of persistent connections (the Connection: Keep-Alive and Keep-Alive header) is documented in <a href="#RFC2068" id="rfc.xref.RFC2068.7"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>. 2449 </p> 2450 <h2 id="rfc.section.B.3"><a href="#rfc.section.B.3">B.3</a> <a id="changes.from.rfc.2068" href="#changes.from.rfc.2068">Changes from RFC 2068</a></h2> 2451 <p id="rfc.section.B.3.p.1">This specification has been carefully audited to correct and disambiguate key word usage; RFC 2068 had many problems in respect 2436 2452 to the conventions laid out in <a href="#RFC2119" id="rfc.xref.RFC2119.2"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>. 2437 2453 </p> 2438 <p id="rfc.section. C.3.p.2">Transfer-coding and message lengths all interact in ways that required fixing exactly when chunked encoding is used (to allow2454 <p id="rfc.section.B.3.p.2">Transfer-coding and message lengths all interact in ways that required fixing exactly when chunked encoding is used (to allow 2439 2455 for transfer encoding that may not be self delimiting); it was important to straighten out exactly how message lengths are 2440 2456 computed. (Sections <a href="#transfer.codings" title="Transfer Codings">3.3</a>, <a href="#message.length" title="Message Length">4.4</a>, <a href="#header.content-length" id="rfc.xref.header.content-length.3" title="Content-Length">8.2</a>, see also <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="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> and <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) 2441 2457 </p> 2442 <p id="rfc.section. C.3.p.3">The use and interpretation of HTTP version numbers has been clarified by <a href="#RFC2145" id="rfc.xref.RFC2145.3"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. Require proxies to upgrade requests to highest protocol version they support to deal with problems discovered in HTTP/1.02458 <p id="rfc.section.B.3.p.3">The use and interpretation of HTTP version numbers has been clarified by <a href="#RFC2145" id="rfc.xref.RFC2145.3"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. Require proxies to upgrade requests to highest protocol version they support to deal with problems discovered in HTTP/1.0 2443 2459 implementations (<a href="#http.version" title="HTTP Version">Section 3.1</a>) 2444 2460 </p> 2445 <p id="rfc.section. C.3.p.4">Transfer-coding had significant problems, particularly with interactions with chunked encoding. The solution is that transfer-codings2461 <p id="rfc.section.B.3.p.4">Transfer-coding had significant problems, particularly with interactions with chunked encoding. The solution is that transfer-codings 2446 2462 become as full fledged as content-codings. This involves adding an IANA registry for transfer-codings (separate from content 2447 2463 codings), a new header field (TE) and enabling trailer headers in the future. Transfer encoding is a major performance benefit, … … 2449 2465 authentication trailers, chunked encoding and HTTP/1.0 clients.(Section <a href="#transfer.codings" title="Transfer Codings">3.3</a>, <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">3.3.1</a>, and <a href="#header.te" id="rfc.xref.header.te.4" title="TE">8.5</a>) 2450 2466 </p> 2451 <h2 id="rfc.section.C.4"><a href="#rfc.section.C.4">C.4</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> 2452 <p id="rfc.section.C.4.p.1">The CHAR rule does not allow the NUL character anymore (this affects the comment and quoted-string rules). Furthermore, the 2453 quoted-pair rule does not allow escaping NUL, CR or LF anymore. (<a href="#basic.rules" title="Basic Rules">Section 1.2.2</a>) 2454 </p> 2455 <p id="rfc.section.C.4.p.2">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 3.1</a>) 2456 </p> 2457 <p id="rfc.section.C.4.p.3">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings">3.3</a> and <a href="#message.length" title="Message Length">4.4</a>) 2458 </p> 2459 <p id="rfc.section.C.4.p.4">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>) 2460 </p> 2461 <p id="rfc.section.C.4.p.5">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 5.1.2</a>) 2462 </p> 2463 <p id="rfc.section.C.4.p.6">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.8" title="Connection">Section 8.1</a>) 2464 </p> 2465 <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="terminology" href="#terminology">Terminology</a></h1> 2466 <p id="rfc.section.D.p.1">This specification uses a number of terms to refer to the roles played by participants in, and objects of, the HTTP communication.</p> 2467 <p id="rfc.section.D.p.2"> <span id="rfc.iref.c.3"></span> <dfn>connection</dfn> 2467 <h2 id="rfc.section.B.4"><a href="#rfc.section.B.4">B.4</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> 2468 <p id="rfc.section.B.4.p.1">Rules about implicit linear white space between certain grammar productions have been removed; now it's only allowed when 2469 specifically pointed out in the ABNF. The CHAR rule does not allow the NUL character anymore (this affects the comment and 2470 quoted-string rules). Furthermore, the quoted-pair rule does not allow escaping NUL, CR or LF anymore. (<a href="#basic.rules" title="Basic Rules">Section 1.2.2</a>) 2471 </p> 2472 <p id="rfc.section.B.4.p.2">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 3.1</a>) 2473 </p> 2474 <p id="rfc.section.B.4.p.3">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings">3.3</a> and <a href="#message.length" title="Message Length">4.4</a>) 2475 </p> 2476 <p id="rfc.section.B.4.p.4">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>) 2477 </p> 2478 <p id="rfc.section.B.4.p.5">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 5.1.2</a>) 2479 </p> 2480 <p id="rfc.section.B.4.p.6">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.8" title="Connection">Section 8.1</a>) 2481 </p> 2482 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="terminology" href="#terminology">Terminology</a></h1> 2483 <p id="rfc.section.C.p.1">This specification uses a number of terms to refer to the roles played by participants in, and objects of, the HTTP communication.</p> 2484 <p id="rfc.section.C.p.2"> <span id="rfc.iref.c.3"></span> <dfn>connection</dfn> 2468 2485 </p> 2469 2486 <dl class="empty"> 2470 2487 <dd>A transport layer virtual circuit established between two programs for the purpose of communication.</dd> 2471 2488 </dl> 2472 <p id="rfc.section. D.p.3"> <span id="rfc.iref.m.4"></span> <dfn>message</dfn>2489 <p id="rfc.section.C.p.3"> <span id="rfc.iref.m.4"></span> <dfn>message</dfn> 2473 2490 </p> 2474 2491 <dl class="empty"> … … 2476 2493 </dd> 2477 2494 </dl> 2478 <p id="rfc.section. D.p.4"> <span id="rfc.iref.r.1"></span> <dfn>request</dfn>2495 <p id="rfc.section.C.p.4"> <span id="rfc.iref.r.1"></span> <dfn>request</dfn> 2479 2496 </p> 2480 2497 <dl class="empty"> … … 2482 2499 </dd> 2483 2500 </dl> 2484 <p id="rfc.section. D.p.5"> <span id="rfc.iref.r.2"></span> <dfn>response</dfn>2501 <p id="rfc.section.C.p.5"> <span id="rfc.iref.r.2"></span> <dfn>response</dfn> 2485 2502 </p> 2486 2503 <dl class="empty"> … … 2488 2505 </dd> 2489 2506 </dl> 2490 <p id="rfc.section. D.p.6"> <span id="rfc.iref.r.3"></span> <dfn>resource</dfn>2507 <p id="rfc.section.C.p.6"> <span id="rfc.iref.r.3"></span> <dfn>resource</dfn> 2491 2508 </p> 2492 2509 <dl class="empty"> … … 2495 2512 </dd> 2496 2513 </dl> 2497 <p id="rfc.section. D.p.7"> <span id="rfc.iref.e.1"></span> <dfn>entity</dfn>2514 <p id="rfc.section.C.p.7"> <span id="rfc.iref.e.1"></span> <dfn>entity</dfn> 2498 2515 </p> 2499 2516 <dl class="empty"> … … 2502 2519 </dd> 2503 2520 </dl> 2504 <p id="rfc.section. D.p.8"> <span id="rfc.iref.r.4"></span> <dfn>representation</dfn>2521 <p id="rfc.section.C.p.8"> <span id="rfc.iref.r.4"></span> <dfn>representation</dfn> 2505 2522 </p> 2506 2523 <dl class="empty"> … … 2508 2525 </dd> 2509 2526 </dl> 2510 <p id="rfc.section. D.p.9"> <span id="rfc.iref.c.4"></span> <dfn>content negotiation</dfn>2527 <p id="rfc.section.C.p.9"> <span id="rfc.iref.c.4"></span> <dfn>content negotiation</dfn> 2511 2528 </p> 2512 2529 <dl class="empty"> … … 2514 2531 </dd> 2515 2532 </dl> 2516 <p id="rfc.section. D.p.10"> <span id="rfc.iref.v.2"></span> <dfn>variant</dfn>2533 <p id="rfc.section.C.p.10"> <span id="rfc.iref.v.2"></span> <dfn>variant</dfn> 2517 2534 </p> 2518 2535 <dl class="empty"> … … 2521 2538 </dd> 2522 2539 </dl> 2523 <p id="rfc.section. D.p.11"> <span id="rfc.iref.c.5"></span> <dfn>client</dfn>2540 <p id="rfc.section.C.p.11"> <span id="rfc.iref.c.5"></span> <dfn>client</dfn> 2524 2541 </p> 2525 2542 <dl class="empty"> 2526 2543 <dd>A program that establishes connections for the purpose of sending requests.</dd> 2527 2544 </dl> 2528 <p id="rfc.section. D.p.12"> <span id="rfc.iref.u.4"></span> <dfn>user agent</dfn>2545 <p id="rfc.section.C.p.12"> <span id="rfc.iref.u.4"></span> <dfn>user agent</dfn> 2529 2546 </p> 2530 2547 <dl class="empty"> … … 2533 2550 </dd> 2534 2551 </dl> 2535 <p id="rfc.section. D.p.13"> <span id="rfc.iref.s.1"></span> <dfn>server</dfn>2552 <p id="rfc.section.C.p.13"> <span id="rfc.iref.s.1"></span> <dfn>server</dfn> 2536 2553 </p> 2537 2554 <dl class="empty"> … … 2542 2559 </dd> 2543 2560 </dl> 2544 <p id="rfc.section. D.p.14"> <span id="rfc.iref.o.1"></span> <dfn>origin server</dfn>2561 <p id="rfc.section.C.p.14"> <span id="rfc.iref.o.1"></span> <dfn>origin server</dfn> 2545 2562 </p> 2546 2563 <dl class="empty"> 2547 2564 <dd>The server on which a given resource resides or is to be created.</dd> 2548 2565 </dl> 2549 <p id="rfc.section. D.p.15"> <span id="rfc.iref.p.1"></span> <dfn>proxy</dfn>2566 <p id="rfc.section.C.p.15"> <span id="rfc.iref.p.1"></span> <dfn>proxy</dfn> 2550 2567 </p> 2551 2568 <dl class="empty"> … … 2558 2575 </dd> 2559 2576 </dl> 2560 <p id="rfc.section. D.p.16"> <span id="rfc.iref.g.98"></span> <dfn>gateway</dfn>2577 <p id="rfc.section.C.p.16"> <span id="rfc.iref.g.108"></span> <dfn>gateway</dfn> 2561 2578 </p> 2562 2579 <dl class="empty"> … … 2565 2582 </dd> 2566 2583 </dl> 2567 <p id="rfc.section. D.p.17"> <span id="rfc.iref.t.4"></span> <dfn>tunnel</dfn>2584 <p id="rfc.section.C.p.17"> <span id="rfc.iref.t.4"></span> <dfn>tunnel</dfn> 2568 2585 </p> 2569 2586 <dl class="empty"> … … 2573 2590 </dd> 2574 2591 </dl> 2575 <p id="rfc.section. D.p.18"> <span id="rfc.iref.c.6"></span> <dfn>cache</dfn>2592 <p id="rfc.section.C.p.18"> <span id="rfc.iref.c.6"></span> <dfn>cache</dfn> 2576 2593 </p> 2577 2594 <dl class="empty"> … … 2581 2598 </dd> 2582 2599 </dl> 2583 <p id="rfc.section. D.p.19"> <span id="rfc.iref.c.7"></span> <dfn>cacheable</dfn>2600 <p id="rfc.section.C.p.19"> <span id="rfc.iref.c.7"></span> <dfn>cacheable</dfn> 2584 2601 </p> 2585 2602 <dl class="empty"> … … 2589 2606 </dd> 2590 2607 </dl> 2591 <p id="rfc.section. D.p.20"> <span id="rfc.iref.u.5"></span> <span id="rfc.iref.d.2"></span> <dfn>upstream</dfn>/<dfn>downstream</dfn>2608 <p id="rfc.section.C.p.20"> <span id="rfc.iref.u.5"></span> <span id="rfc.iref.d.2"></span> <dfn>upstream</dfn>/<dfn>downstream</dfn> 2592 2609 </p> 2593 2610 <dl class="empty"> 2594 2611 <dd>Upstream and downstream describe the flow of a message: all messages flow from upstream to downstream.</dd> 2595 2612 </dl> 2596 <p id="rfc.section. D.p.21"> <span id="rfc.iref.i.2"></span> <span id="rfc.iref.o.2"></span> <dfn>inbound</dfn>/<dfn>outbound</dfn>2613 <p id="rfc.section.C.p.21"> <span id="rfc.iref.i.2"></span> <span id="rfc.iref.o.2"></span> <dfn>inbound</dfn>/<dfn>outbound</dfn> 2597 2614 </p> 2598 2615 <dl class="empty"> … … 2601 2618 </dd> 2602 2619 </dl> 2603 <h1 id="rfc.section. E"><a href="#rfc.section.E">E.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1>2604 <h2 id="rfc.section. E.1"><a href="#rfc.section.E.1">E.1</a> Since RFC26162620 <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1> 2621 <h2 id="rfc.section.D.1"><a href="#rfc.section.D.1">D.1</a> Since RFC2616 2605 2622 </h2> 2606 <p id="rfc.section. E.1.p.1">Extracted relevant partitions from <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>.2607 </p> 2608 <h2 id="rfc.section. E.2"><a href="#rfc.section.E.2">E.2</a> Since draft-ietf-httpbis-p1-messaging-002623 <p id="rfc.section.D.1.p.1">Extracted relevant partitions from <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>. 2624 </p> 2625 <h2 id="rfc.section.D.2"><a href="#rfc.section.D.2">D.2</a> Since draft-ietf-httpbis-p1-messaging-00 2609 2626 </h2> 2610 <p id="rfc.section. E.2.p.1">Closed issues: </p>2627 <p id="rfc.section.D.2.p.1">Closed issues: </p> 2611 2628 <ul> 2612 2629 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/1">http://tools.ietf.org/wg/httpbis/trac/ticket/1</a>>: "HTTP Version should be case sensitive" (<<a href="http://purl.org/NET/http-errata#verscase">http://purl.org/NET/http-errata#verscase</a>>) … … 2649 2666 </li> 2650 2667 </ul> 2651 <p id="rfc.section. E.2.p.2">Other changes: </p>2668 <p id="rfc.section.D.2.p.2">Other changes: </p> 2652 2669 <ul> 2653 2670 <li>Update media type registrations to use RFC4288 template.</li> … … 2655 2672 </li> 2656 2673 </ul> 2657 <h2 id="rfc.section. E.3"><a href="#rfc.section.E.3">E.3</a> Since draft-ietf-httpbis-p1-messaging-012674 <h2 id="rfc.section.D.3"><a href="#rfc.section.D.3">D.3</a> Since draft-ietf-httpbis-p1-messaging-01 2658 2675 </h2> 2659 <p id="rfc.section. E.3.p.1">Closed issues: </p>2676 <p id="rfc.section.D.3.p.1">Closed issues: </p> 2660 2677 <ul> 2661 2678 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/19">http://tools.ietf.org/wg/httpbis/trac/ticket/19</a>>: "Bodies on GET (and other) requests" … … 2668 2685 </li> 2669 2686 </ul> 2670 <p id="rfc.section. E.3.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>):2687 <p id="rfc.section.D.3.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>): 2671 2688 </p> 2672 2689 <ul> 2673 2690 <li>Get rid of duplicate BNF rule names ("host" -> "uri-host", "trailer" -> "trailer-part").</li> 2674 <li>Avoid underscore character in rule names ("http_URL" -> "http-UR I", "abs_path" -> "path-absolute").</li>2675 <li>Add rules for terms imported from URI spec ("absolute -URI", "authority", "path-abempty", "path-absolute", "uri-host", "port",2676 "query").2691 <li>Avoid underscore character in rule names ("http_URL" -> "http-URL", "abs_path" -> "path-absolute").</li> 2692 <li>Add rules for terms imported from URI spec ("absoluteURI", "authority", "path-absolute", "port", "query", "relativeURI", "host) 2693 -- these will have to be updated when switching over to RFC3986. 2677 2694 </li> 2678 2695 <li>Synchronize core rules with RFC5234 (this includes a change to CHAR which now excludes NUL).</li> … … 2683 2700 <li>Rewrite prose rule "token" in terms of "tchar", rewrite prose rule "TEXT".</li> 2684 2701 </ul> 2685 <h2 id="rfc.section. E.4"><a href="#rfc.section.E.4">E.4</a> <a id="changes.since.02" href="#changes.since.02">Since draft-ietf-httpbis-p1-messaging-02</a></h2>2686 <p id="rfc.section. E.4.p.1">Closed issues: </p>2702 <h2 id="rfc.section.D.4"><a href="#rfc.section.D.4">D.4</a> <a id="changes.since.02" href="#changes.since.02">Since draft-ietf-httpbis-p1-messaging-02</a></h2> 2703 <p id="rfc.section.D.4.p.1">Closed issues: </p> 2687 2704 <ul> 2688 2705 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/51">http://tools.ietf.org/wg/httpbis/trac/ticket/51</a>>: "HTTP-date vs. rfc1123-date" … … 2691 2708 </li> 2692 2709 </ul> 2693 <p id="rfc.section. E.4.p.2">Ongoing work on IANA Message Header Registration (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/40">http://tools.ietf.org/wg/httpbis/trac/ticket/40</a>>):2710 <p id="rfc.section.D.4.p.2">Ongoing work on IANA Message Header Registration (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/40">http://tools.ietf.org/wg/httpbis/trac/ticket/40</a>>): 2694 2711 </p> 2695 2712 <ul> 2696 2713 <li>Reference RFC 3984, and update header registrations for headers defined in this document.</li> 2697 2714 </ul> 2698 <p id="rfc.section. E.4.p.3">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>):2715 <p id="rfc.section.D.4.p.3">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>): 2699 2716 </p> 2700 2717 <ul> 2701 2718 <li>Replace string literals when the string really is case-sensitive (HTTP-Version).</li> 2702 2719 </ul> 2703 <h2 id="rfc.section. E.5"><a href="#rfc.section.E.5">E.5</a> <a id="changes.since.03" href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></h2>2704 <p id="rfc.section. E.5.p.1">Closed issues: </p>2720 <h2 id="rfc.section.D.5"><a href="#rfc.section.D.5">D.5</a> <a id="changes.since.03" href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></h2> 2721 <p id="rfc.section.D.5.p.1">Closed issues: </p> 2705 2722 <ul> 2706 2723 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/28">http://tools.ietf.org/wg/httpbis/trac/ticket/28</a>>: "Connection closing" … … 2717 2734 </li> 2718 2735 </ul> 2719 <p id="rfc.section. E.5.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>):2736 <p id="rfc.section.D.5.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>): 2720 2737 </p> 2721 2738 <ul> … … 2723 2740 <li>Replace HEX by HEXDIG for future consistence with RFC 5234's core rules.</li> 2724 2741 </ul> 2725 <h2 id="rfc.section. E.6"><a href="#rfc.section.E.6">E.6</a> <a id="changes.since.04" href="#changes.since.04">Since draft-ietf-httpbis-p1-messaging-04</a></h2>2726 <p id="rfc.section. E.6.p.1">Closed issues: </p>2742 <h2 id="rfc.section.D.6"><a href="#rfc.section.D.6">D.6</a> <a id="changes.since.04" href="#changes.since.04">Since draft-ietf-httpbis-p1-messaging-04</a></h2> 2743 <p id="rfc.section.D.6.p.1">Closed issues: </p> 2727 2744 <ul> 2745 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/34">http://tools.ietf.org/wg/httpbis/trac/ticket/34</a>>: "Out-of-date reference for URIs" 2746 </li> 2728 2747 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/132">http://tools.ietf.org/wg/httpbis/trac/ticket/132</a>>: "RFC 2822 is updated by RFC 5322" 2729 2748 </li> 2730 2749 </ul> 2731 <p id="rfc.section. E.6.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>):2750 <p id="rfc.section.D.6.p.2">Ongoing work on ABNF conversion (<<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>): 2732 2751 </p> 2733 2752 <ul> 2734 2753 <li>Use "/" instead of "|" for alternatives.</li> 2735 2754 <li>Get rid of RFC822 dependency; use RFC5234 plus extensions instead.</li> 2755 <li>Only reference RFC 5234's core rules.</li> 2756 <li>Introduce new ABNF rules for "bad" whitespace ("BWS"), optional whitespace ("OWS") and required whitespace ("RWS").</li> 2757 <li>Rewrite ABNFs to spell out whitespace rules, factor out header value format definitions.</li> 2758 </ul> 2759 <h2 id="rfc.section.D.7"><a href="#rfc.section.D.7">D.7</a> <a id="changes.since.05" href="#changes.since.05">Since draft-ietf-httpbis-p1-messaging-05</a></h2> 2760 <p id="rfc.section.D.7.p.1">Closed issues: </p> 2761 <ul> 2762 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/118">http://tools.ietf.org/wg/httpbis/trac/ticket/118</a>>: "Join "Differences Between HTTP Entities and RFC 2045 Entities"?" 2763 </li> 2764 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/134">http://tools.ietf.org/wg/httpbis/trac/ticket/134</a>>: "RFC822 reference left in discussion of date formats" 2765 </li> 2736 2766 </ul> 2737 2767 <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1> … … 2769 2799 </li> 2770 2800 <li class="indline0"><a id="rfc.index.C" href="#rfc.index.C"><b>C</b></a><ul class="ind"> 2771 <li class="indline1">cache <a class="iref" href="#rfc.iref.c.6"> D</a></li>2772 <li class="indline1">cacheable <a class="iref" href="#rfc.iref.c.7"> D</a></li>2773 <li class="indline1">client <a class="iref" href="#rfc.iref.c.5"> D</a></li>2774 <li class="indline1">connection <a class="iref" href="#rfc.iref.c.3"> D</a></li>2775 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1">4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.c.1"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7"> C.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">C.4</a></li>2776 <li class="indline1">content negotiation <a class="iref" href="#rfc.iref.c.4"> D</a></li>2777 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1">4.4</a>, <a class="iref" href="#rfc.iref.c.2"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3"> C.3</a></li>2801 <li class="indline1">cache <a class="iref" href="#rfc.iref.c.6">C</a></li> 2802 <li class="indline1">cacheable <a class="iref" href="#rfc.iref.c.7">C</a></li> 2803 <li class="indline1">client <a class="iref" href="#rfc.iref.c.5">C</a></li> 2804 <li class="indline1">connection <a class="iref" href="#rfc.iref.c.3">C</a></li> 2805 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1">4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.c.1"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 2806 <li class="indline1">content negotiation <a class="iref" href="#rfc.iref.c.4">C</a></li> 2807 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1">4.4</a>, <a class="iref" href="#rfc.iref.c.2"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 2778 2808 </ul> 2779 2809 </li> 2780 2810 <li class="indline0"><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul class="ind"> 2781 2811 <li class="indline1">Date header <a class="iref" href="#rfc.xref.header.date.1">4.5</a>, <a class="iref" href="#rfc.iref.d.1"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li> 2782 <li class="indline1">downstream <a class="iref" href="#rfc.iref.d.2"> D</a></li>2812 <li class="indline1">downstream <a class="iref" href="#rfc.iref.d.2">C</a></li> 2783 2813 </ul> 2784 2814 </li> 2785 2815 <li class="indline0"><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul class="ind"> 2786 <li class="indline1">entity <a class="iref" href="#rfc.iref.e.1"> D</a></li>2816 <li class="indline1">entity <a class="iref" href="#rfc.iref.e.1">C</a></li> 2787 2817 </ul> 2788 2818 </li> 2789 2819 <li class="indline0"><a id="rfc.index.G" href="#rfc.index.G"><b>G</b></a><ul class="ind"> 2790 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g. 98">D</a></li>2820 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g.108">C</a></li> 2791 2821 <li class="indline1"><tt>Grammar</tt> 2792 2822 <ul class="ind"> 2793 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.2 6"><b>2.1</b></a></li>2823 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.27"><b>2.1</b></a></li> 2794 2824 <li class="indline1">ALPHA <a class="iref" href="#rfc.iref.g.1"><b>1.2</b></a></li> 2795 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.2.1</b></a></li> 2796 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.50"><b>3.3</b></a></li> 2797 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.27"><b>2.1</b></a></li> 2825 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.2.1</b></a></li> 2826 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.51"><b>3.3</b></a></li> 2827 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.28"><b>2.1</b></a></li> 2828 <li class="indline1"><tt>BWS</tt> <a class="iref" href="#rfc.iref.g.16"><b>1.2.2</b></a></li> 2798 2829 <li class="indline1">CHAR <a class="iref" href="#rfc.iref.g.2"><b>1.2</b></a></li> 2799 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.53"><b>3.3.1</b></a></li> 2800 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.59"><b>3.3.1</b></a></li> 2801 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.57"><b>3.3.1</b></a></li> 2802 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.58"><b>3.3.1</b></a></li> 2803 <li class="indline1"><tt>chunk-extension</tt> <a class="iref" href="#rfc.iref.g.56"><b>3.3.1</b></a></li> 2804 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.54"><b>3.3.1</b></a></li> 2805 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.52"><b>3.3.1</b></a></li> 2806 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.19"><b>1.2.2</b></a></li> 2807 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.82"><b>8.1</b></a></li> 2808 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.83"><b>8.1</b></a></li> 2809 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.84"><b>8.2</b></a></li> 2830 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.54"><b>3.3.1</b></a></li> 2831 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.60"><b>3.3.1</b></a></li> 2832 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.57"><b>3.3.1</b></a></li> 2833 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.58"><b>3.3.1</b></a></li> 2834 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.59"><b>3.3.1</b></a></li> 2835 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.55"><b>3.3.1</b></a></li> 2836 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.53"><b>3.3.1</b></a></li> 2837 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.20"><b>1.2.2</b></a></li> 2838 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.83"><b>8.1</b></a></li> 2839 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.85"><b>8.1</b></a></li> 2840 <li class="indline1"><tt>Connection-v</tt> <a class="iref" href="#rfc.iref.g.84"><b>8.1</b></a></li> 2841 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.86"><b>8.2</b></a></li> 2842 <li class="indline1"><tt>Content-Length-v</tt> <a class="iref" href="#rfc.iref.g.87"><b>8.2</b></a></li> 2810 2843 <li class="indline1">CR <a class="iref" href="#rfc.iref.g.3"><b>1.2</b></a></li> 2811 2844 <li class="indline1">CRLF <a class="iref" href="#rfc.iref.g.4"><b>1.2</b></a></li> 2812 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.2 0"><b>1.2.2</b></a></li>2845 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.21"><b>1.2.2</b></a></li> 2813 2846 <li class="indline1">CTL <a class="iref" href="#rfc.iref.g.5"><b>1.2</b></a></li> 2814 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.85"><b>8.3</b></a></li> 2815 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.2.1</b></a></li> 2816 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.2.1</b></a></li> 2817 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.2.1</b></a></li> 2847 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.88"><b>8.3</b></a></li> 2848 <li class="indline1"><tt>Date-v</tt> <a class="iref" href="#rfc.iref.g.89"><b>8.3</b></a></li> 2849 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.2.1</b></a></li> 2850 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.2.1</b></a></li> 2851 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.2.1</b></a></li> 2818 2852 <li class="indline1">DIGIT <a class="iref" href="#rfc.iref.g.6"><b>1.2</b></a></li> 2819 2853 <li class="indline1">DQUOTE <a class="iref" href="#rfc.iref.g.7"><b>1.2</b></a></li> 2820 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.8 0"><b>6.1.1</b></a></li>2821 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.7 5"><b>5.1.1</b></a></li>2822 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g. 69"><b>4.2</b></a></li>2823 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.6 7"><b>4.2</b></a></li>2824 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.6 8"><b>4.2</b></a></li>2825 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.7 1"><b>4.5</b></a></li>2826 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.6 4"><b>4.1</b></a></li>2854 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.81"><b>6.1.1</b></a></li> 2855 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.76"><b>5.1.1</b></a></li> 2856 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.70"><b>4.2</b></a></li> 2857 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.68"><b>4.2</b></a></li> 2858 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.69"><b>4.2</b></a></li> 2859 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.72"><b>4.5</b></a></li> 2860 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.65"><b>4.1</b></a></li> 2827 2861 <li class="indline1">HEXDIG <a class="iref" href="#rfc.iref.g.8"><b>1.2</b></a></li> 2828 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.86"><b>8.4</b></a></li> 2862 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.90"><b>8.4</b></a></li> 2863 <li class="indline1"><tt>Host-v</tt> <a class="iref" href="#rfc.iref.g.91"><b>8.4</b></a></li> 2829 2864 <li class="indline1">HTAB <a class="iref" href="#rfc.iref.g.9"><b>1.2</b></a></li> 2830 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.3 5"><b>3.2.1</b></a></li>2831 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.6 3"><b>4.1</b></a></li>2832 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.3 4"><b>3.1</b></a></li>2833 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.3 2"><b>2.1.1</b></a></li>2834 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.3 3"><b>3.1</b></a></li>2835 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.5 5"><b>3.3.1</b></a></li>2865 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.2.1</b></a></li> 2866 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.64"><b>4.1</b></a></li> 2867 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.35"><b>3.1</b></a></li> 2868 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.33"><b>2.1.1</b></a></li> 2869 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.34"><b>3.1</b></a></li> 2870 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.56"><b>3.3.1</b></a></li> 2836 2871 <li class="indline1">LF <a class="iref" href="#rfc.iref.g.10"><b>1.2</b></a></li> 2837 <li class="indline1"><tt>LWS</tt> <a class="iref" href="#rfc.iref.g.14"><b>1.2.2</b></a></li> 2838 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.70"><b>4.3</b></a></li> 2839 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.66"><b>4.2</b></a></li> 2840 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.74"><b>5.1.1</b></a></li> 2841 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.2.1</b></a></li> 2842 <li class="indline1"><tt>obsolete-date</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.2.1</b></a></li> 2872 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.71"><b>4.3</b></a></li> 2873 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.67"><b>4.2</b></a></li> 2874 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.75"><b>5.1.1</b></a></li> 2875 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.2.1</b></a></li> 2876 <li class="indline1"><tt>obsolete-date</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.2.1</b></a></li> 2843 2877 <li class="indline1">OCTET <a class="iref" href="#rfc.iref.g.11"><b>1.2</b></a></li> 2844 <li class="indline1"><tt>parameter</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.3</b></a></li> 2845 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.28"><b>2.1</b></a></li> 2846 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.29"><b>2.1</b></a></li> 2847 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.61"><b>3.4</b></a></li> 2848 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.62"><b>3.4</b></a></li> 2849 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.94"><b>8.9</b></a></li> 2850 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.95"><b>8.9</b></a></li> 2851 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.97"><b>8.9</b></a></li> 2852 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.22"><b>1.2.2</b></a></li> 2853 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.30"><b>2.1</b></a></li> 2854 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.24"><b>1.2.2</b></a></li> 2855 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.21"><b>1.2.2</b></a></li> 2856 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.23"><b>1.2.2</b></a></li> 2857 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.81"><b>6.1.1</b></a></li> 2858 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.96"><b>8.9</b></a></li> 2859 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.93"><b>8.9</b></a></li> 2860 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.72"><b>5</b></a></li> 2861 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.73"><b>5.1</b></a></li> 2862 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.76"><b>5.1.2</b></a></li> 2863 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.77"><b>6</b></a></li> 2864 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.2.1</b></a></li> 2865 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.2.1</b></a></li> 2866 <li class="indline1"><tt>separators</tt> <a class="iref" href="#rfc.iref.g.18"><b>1.2.2</b></a></li> 2878 <li class="indline1"><tt>OWS</tt> <a class="iref" href="#rfc.iref.g.14"><b>1.2.2</b></a></li> 2879 <li class="indline1"><tt>parameter</tt> <a class="iref" href="#rfc.iref.g.50"><b>3.3</b></a></li> 2880 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.29"><b>2.1</b></a></li> 2881 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.30"><b>2.1</b></a></li> 2882 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.62"><b>3.4</b></a></li> 2883 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.63"><b>3.4</b></a></li> 2884 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.104"><b>8.9</b></a></li> 2885 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.105"><b>8.9</b></a></li> 2886 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.107"><b>8.9</b></a></li> 2887 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.23"><b>1.2.2</b></a></li> 2888 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.31"><b>2.1</b></a></li> 2889 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.25"><b>1.2.2</b></a></li> 2890 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.22"><b>1.2.2</b></a></li> 2891 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.24"><b>1.2.2</b></a></li> 2892 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.82"><b>6.1.1</b></a></li> 2893 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.106"><b>8.9</b></a></li> 2894 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.103"><b>8.9</b></a></li> 2895 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.73"><b>5</b></a></li> 2896 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.74"><b>5.1</b></a></li> 2897 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.77"><b>5.1.2</b></a></li> 2898 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.78"><b>6</b></a></li> 2899 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.2.1</b></a></li> 2900 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.2.1</b></a></li> 2901 <li class="indline1"><tt>RWS</tt> <a class="iref" href="#rfc.iref.g.15"><b>1.2.2</b></a></li> 2867 2902 <li class="indline1">SP <a class="iref" href="#rfc.iref.g.12"><b>1.2</b></a></li> 2868 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.65"><b>4.1</b></a></li> 2869 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.1.1</b></a></li> 2870 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.78"><b>6.1</b></a></li> 2871 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.88"><b>8.5</b></a></li> 2872 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.17"><b>1.2.2</b></a></li> 2873 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.87"><b>8.5</b></a></li> 2874 <li class="indline1"><tt>TEXT</tt> <a class="iref" href="#rfc.iref.g.15"><b>1.2.2</b></a></li> 2875 <li class="indline1"><tt>time</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.2.1</b></a></li> 2876 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.16"><b>1.2.2</b></a></li> 2877 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.89"><b>8.6</b></a></li> 2878 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.60"><b>3.3.1</b></a></li> 2879 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.3</b></a></li> 2880 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.90"><b>8.7</b></a></li> 2881 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.3</b></a></li> 2882 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.91"><b>8.8</b></a></li> 2883 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.31"><b>2.1</b></a></li> 2884 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.25"><b>2.1</b></a></li> 2885 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.51"><b>3.3</b></a></li> 2886 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.92"><b>8.9</b></a></li> 2887 <li class="indline1"><tt>weekday</tt> <a class="iref" href="#rfc.iref.g.45"><b>3.2.1</b></a></li> 2888 <li class="indline1"><tt>wkday</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.2.1</b></a></li> 2903 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.66"><b>4.1</b></a></li> 2904 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.80"><b>6.1.1</b></a></li> 2905 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.1</b></a></li> 2906 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.94"><b>8.5</b></a></li> 2907 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.19"><b>1.2.2</b></a></li> 2908 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.92"><b>8.5</b></a></li> 2909 <li class="indline1"><tt>TE-v</tt> <a class="iref" href="#rfc.iref.g.93"><b>8.5</b></a></li> 2910 <li class="indline1"><tt>TEXT</tt> <a class="iref" href="#rfc.iref.g.17"><b>1.2.2</b></a></li> 2911 <li class="indline1"><tt>time</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.2.1</b></a></li> 2912 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.18"><b>1.2.2</b></a></li> 2913 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.95"><b>8.6</b></a></li> 2914 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.61"><b>3.3.1</b></a></li> 2915 <li class="indline1"><tt>Trailer-v</tt> <a class="iref" href="#rfc.iref.g.96"><b>8.6</b></a></li> 2916 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.3</b></a></li> 2917 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.97"><b>8.7</b></a></li> 2918 <li class="indline1"><tt>Transfer-Encoding-v</tt> <a class="iref" href="#rfc.iref.g.98"><b>8.7</b></a></li> 2919 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.3</b></a></li> 2920 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.99"><b>8.8</b></a></li> 2921 <li class="indline1"><tt>Upgrade-v</tt> <a class="iref" href="#rfc.iref.g.100"><b>8.8</b></a></li> 2922 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.32"><b>2.1</b></a></li> 2923 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.26"><b>2.1</b></a></li> 2924 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.52"><b>3.3</b></a></li> 2925 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.101"><b>8.9</b></a></li> 2926 <li class="indline1"><tt>Via-v</tt> <a class="iref" href="#rfc.iref.g.102"><b>8.9</b></a></li> 2927 <li class="indline1"><tt>weekday</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.2.1</b></a></li> 2928 <li class="indline1"><tt>wkday</tt> <a class="iref" href="#rfc.iref.g.45"><b>3.2.1</b></a></li> 2889 2929 <li class="indline1">WSP <a class="iref" href="#rfc.iref.g.13"><b>1.2</b></a></li> 2890 2930 </ul> … … 2895 2935 <li class="indline1">Headers 2896 2936 <ul class="ind"> 2897 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1">4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.h.3"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7"> C.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">C.4</a></li>2898 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1">4.4</a>, <a class="iref" href="#rfc.iref.h.4"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3"> C.3</a></li>2937 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1">4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.h.3"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 2938 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1">4.4</a>, <a class="iref" href="#rfc.iref.h.4"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 2899 2939 <li class="indline1">Date <a class="iref" href="#rfc.xref.header.date.1">4.5</a>, <a class="iref" href="#rfc.iref.h.5"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li> 2900 <li class="indline1">Host <a class="iref" href="#rfc.iref.h.7"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2"> C.1.1</a></li>2901 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1">3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.iref.h.8"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.3">9.1</a>, <a class="iref" href="#rfc.xref.header.te.4"> C.3</a></li>2940 <li class="indline1">Host <a class="iref" href="#rfc.iref.h.7"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 2941 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1">3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.iref.h.8"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.3">9.1</a>, <a class="iref" href="#rfc.xref.header.te.4">B.3</a></li> 2902 2942 <li class="indline1">Trailer <a class="iref" href="#rfc.xref.header.trailer.1">3.3.1</a>, <a class="iref" href="#rfc.xref.header.trailer.2">4.5</a>, <a class="iref" href="#rfc.iref.h.9"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li> 2903 2943 <li class="indline1">Transfer-Encoding <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">4.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">4.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">4.5</a>, <a class="iref" href="#rfc.iref.h.10"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li> … … 2906 2946 </ul> 2907 2947 </li> 2908 <li class="indline1">Host header <a class="iref" href="#rfc.iref.h.6"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2"> C.1.1</a></li>2948 <li class="indline1">Host header <a class="iref" href="#rfc.iref.h.6"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 2909 2949 <li class="indline1">http URI scheme <a class="iref" href="#rfc.iref.h.1"><b>2.1.1</b></a></li> 2910 2950 <li class="indline1">https URI scheme <a class="iref" href="#rfc.iref.h.2">2.1.1</a></li> … … 2913 2953 <li class="indline0"><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul class="ind"> 2914 2954 <li class="indline1">implied *LWS <a class="iref" href="#rfc.iref.i.1"><b>1.2.1.2</b></a></li> 2915 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.2"> D</a></li>2955 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.2">C</a></li> 2916 2956 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1">1.2.2</a>, <a class="iref" href="#ISO-8859-1"><b>12.1</b></a></li> 2917 2957 </ul> … … 2928 2968 </ul> 2929 2969 </li> 2930 <li class="indline1">message <a class="iref" href="#rfc.iref.m.4"> D</a></li>2970 <li class="indline1">message <a class="iref" href="#rfc.iref.m.4">C</a></li> 2931 2971 <li class="indline1">message/http Media Type <a class="iref" href="#rfc.iref.m.2"><b>9.3.1</b></a></li> 2932 2972 </ul> 2933 2973 </li> 2934 2974 <li class="indline0"><a id="rfc.index.N" href="#rfc.index.N"><b>N</b></a><ul class="ind"> 2935 <li class="indline1"><em>Nie1997</em> <a class="iref" href="#rfc.xref.Nie1997.1">7.1.1</a>, <a class="iref" href="#Nie1997"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.Nie1997.2"> C.3</a></li>2975 <li class="indline1"><em>Nie1997</em> <a class="iref" href="#rfc.xref.Nie1997.1">7.1.1</a>, <a class="iref" href="#Nie1997"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.Nie1997.2">B.3</a></li> 2936 2976 </ul> 2937 2977 </li> 2938 2978 <li class="indline0"><a id="rfc.index.O" href="#rfc.index.O"><b>O</b></a><ul class="ind"> 2939 <li class="indline1">origin server <a class="iref" href="#rfc.iref.o.1"> D</a></li>2940 <li class="indline1">outbound <a class="iref" href="#rfc.iref.o.2"> D</a></li>2979 <li class="indline1">origin server <a class="iref" href="#rfc.iref.o.1">C</a></li> 2980 <li class="indline1">outbound <a class="iref" href="#rfc.iref.o.2">C</a></li> 2941 2981 </ul> 2942 2982 </li> … … 2956 2996 </ul> 2957 2997 </li> 2958 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.6">3.3</a>, <a class="iref" href="#rfc.xref.Part3.7">3.3</a>, <a class="iref" href="#rfc.xref.Part3.8">4.2</a>, <a class="iref" href="#rfc.xref.Part3.9">5</a>, <a class="iref" href="#rfc.xref.Part3.10">6</a>, <a class="iref" href="#rfc.xref.Part3.11">8.5</a>, <a class="iref" href="#Part3"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part3.12">A</a>, <a class="iref" href="#rfc.xref.Part3.13"> C.3</a>, <a class="iref" href="#rfc.xref.Part3.14">D</a>, <a class="iref" href="#rfc.xref.Part3.15">D</a>, <a class="iref" href="#rfc.xref.Part3.16">D</a><ul class="ind">2998 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.6">3.3</a>, <a class="iref" href="#rfc.xref.Part3.7">3.3</a>, <a class="iref" href="#rfc.xref.Part3.8">4.2</a>, <a class="iref" href="#rfc.xref.Part3.9">5</a>, <a class="iref" href="#rfc.xref.Part3.10">6</a>, <a class="iref" href="#rfc.xref.Part3.11">8.5</a>, <a class="iref" href="#Part3"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part3.12">A</a>, <a class="iref" href="#rfc.xref.Part3.13">B.3</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a>, <a class="iref" href="#rfc.xref.Part3.15">C</a>, <a class="iref" href="#rfc.xref.Part3.16">C</a><ul class="ind"> 2959 2999 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part3.6">3.3</a>, <a class="iref" href="#rfc.xref.Part3.7">3.3</a></li> 2960 3000 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a></li> 2961 3001 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part3.11">8.5</a></li> 2962 3002 <li class="indline1"><em>Section 4.1</em> <a class="iref" href="#rfc.xref.Part3.5">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.8">4.2</a>, <a class="iref" href="#rfc.xref.Part3.9">5</a>, <a class="iref" href="#rfc.xref.Part3.10">6</a></li> 2963 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.14"> D</a></li>3003 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.14">C</a></li> 2964 3004 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a></li> 2965 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part3.15"> D</a>, <a class="iref" href="#rfc.xref.Part3.16">D</a></li>3005 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part3.15">C</a>, <a class="iref" href="#rfc.xref.Part3.16">C</a></li> 2966 3006 <li class="indline1"><em>Section 6.1</em> <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a></li> 2967 3007 <li class="indline1"><em>Appendix A</em> <a class="iref" href="#rfc.xref.Part3.1">1</a></li> 2968 3008 </ul> 2969 3009 </li> 2970 <li class="indline1"><em>Part5</em> <a class="iref" href="#Part5"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part5.1"> C.3</a></li>2971 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2.2</a>, <a class="iref" href="#rfc.xref.Part6.5">4.5</a>, <a class="iref" href="#rfc.xref.Part6.6">4.5</a>, <a class="iref" href="#rfc.xref.Part6.7">4.5</a>, <a class="iref" href="#Part6"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8"> C.3</a>, <a class="iref" href="#rfc.xref.Part6.9">D</a><ul class="ind">2972 <li class="indline1"><em>Section 1</em> <a class="iref" href="#rfc.xref.Part6.4">2.2</a>, <a class="iref" href="#rfc.xref.Part6.9"> D</a></li>3010 <li class="indline1"><em>Part5</em> <a class="iref" href="#Part5"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part5.1">B.3</a></li> 3011 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2.2</a>, <a class="iref" href="#rfc.xref.Part6.5">4.5</a>, <a class="iref" href="#rfc.xref.Part6.6">4.5</a>, <a class="iref" href="#rfc.xref.Part6.7">4.5</a>, <a class="iref" href="#Part6"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8">B.3</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a><ul class="ind"> 3012 <li class="indline1"><em>Section 1</em> <a class="iref" href="#rfc.xref.Part6.4">2.2</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a></li> 2973 3013 <li class="indline1"><em>Section 16.2</em> <a class="iref" href="#rfc.xref.Part6.5">4.5</a></li> 2974 3014 <li class="indline1"><em>Section 16.4</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.6">4.5</a></li> … … 2976 3016 </ul> 2977 3017 </li> 2978 <li class="indline1">proxy <a class="iref" href="#rfc.iref.p.1"> D</a></li>3018 <li class="indline1">proxy <a class="iref" href="#rfc.iref.p.1">C</a></li> 2979 3019 </ul> 2980 3020 </li> 2981 3021 <li class="indline0"><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul class="ind"> 2982 <li class="indline1">representation <a class="iref" href="#rfc.iref.r.4"> D</a></li>2983 <li class="indline1">request <a class="iref" href="#rfc.iref.r.1"> D</a></li>2984 <li class="indline1">resource <a class="iref" href="#rfc.iref.r.3"> D</a></li>2985 <li class="indline1">response <a class="iref" href="#rfc.iref.r.2"> D</a></li>3022 <li class="indline1">representation <a class="iref" href="#rfc.iref.r.4">C</a></li> 3023 <li class="indline1">request <a class="iref" href="#rfc.iref.r.1">C</a></li> 3024 <li class="indline1">resource <a class="iref" href="#rfc.iref.r.3">C</a></li> 3025 <li class="indline1">response <a class="iref" href="#rfc.iref.r.2">C</a></li> 2986 3026 <li class="indline1"><em>RFC1123</em> <a class="iref" href="#rfc.xref.RFC1123.1">3.2.1</a>, <a class="iref" href="#RFC1123"><b>12.2</b></a></li> 2987 3027 <li class="indline1"><em>RFC1305</em> <a class="iref" href="#rfc.xref.RFC1305.1">8.3</a>, <a class="iref" href="#RFC1305"><b>12.2</b></a></li> 2988 3028 <li class="indline1"><em>RFC1436</em> <a class="iref" href="#rfc.xref.RFC1436.1">1</a>, <a class="iref" href="#RFC1436"><b>12.2</b></a></li> 2989 3029 <li class="indline1"><em>RFC1900</em> <a class="iref" href="#rfc.xref.RFC1900.1">2.1.1</a>, <a class="iref" href="#rfc.xref.RFC1900.2">10.4</a>, <a class="iref" href="#RFC1900"><b>12.2</b></a></li> 2990 <li class="indline1"><em>RFC1945</em> <a class="iref" href="#RFC1945"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC1945.1"> C</a></li>3030 <li class="indline1"><em>RFC1945</em> <a class="iref" href="#RFC1945"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC1945.1">B</a></li> 2991 3031 <li class="indline1"><em>RFC2045</em> <a class="iref" href="#rfc.xref.RFC2045.1">1</a>, <a class="iref" href="#rfc.xref.RFC2045.2">3.3</a>, <a class="iref" href="#rfc.xref.RFC2045.3">11</a>, <a class="iref" href="#RFC2045"><b>12.1</b></a></li> 2992 3032 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1">1.2.2</a>, <a class="iref" href="#RFC2047"><b>12.1</b></a></li> 2993 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1">3.1</a>, <a class="iref" href="#rfc.xref.RFC2068.2">7.1.1</a>, <a class="iref" href="#rfc.xref.RFC2068.3">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">7.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.5">11</a>, <a class="iref" href="#RFC2068"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.6"> C</a>, <a class="iref" href="#rfc.xref.RFC2068.7">C.2</a><ul class="ind">2994 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.6"> C</a></li>3033 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1">3.1</a>, <a class="iref" href="#rfc.xref.RFC2068.2">7.1.1</a>, <a class="iref" href="#rfc.xref.RFC2068.3">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">7.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.5">11</a>, <a class="iref" href="#RFC2068"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.6">B</a>, <a class="iref" href="#rfc.xref.RFC2068.7">B.2</a><ul class="ind"> 3034 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.6">B</a></li> 2995 3035 </ul> 2996 3036 </li> 2997 3037 <li class="indline1"><em>RFC2109</em> <a class="iref" href="#rfc.xref.RFC2109.1">4.2</a>, <a class="iref" href="#RFC2109"><b>12.2</b></a></li> 2998 <li class="indline1"><em>RFC2119</em> <a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.RFC2119.2"> C.3</a></li>2999 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1">3.1</a>, <a class="iref" href="#rfc.xref.RFC2145.2">3.1</a>, <a class="iref" href="#RFC2145"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3"> C.3</a></li>3000 <li class="indline1"><em>RFC2616</em> <a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2">11</a>, <a class="iref" href="#RFC2616"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3"> E.1</a></li>3038 <li class="indline1"><em>RFC2119</em> <a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.RFC2119.2">B.3</a></li> 3039 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1">3.1</a>, <a class="iref" href="#rfc.xref.RFC2145.2">3.1</a>, <a class="iref" href="#RFC2145"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3">B.3</a></li> 3040 <li class="indline1"><em>RFC2616</em> <a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2">11</a>, <a class="iref" href="#RFC2616"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3">D.1</a></li> 3001 3041 <li class="indline1"><em>RFC2818</em> <a class="iref" href="#rfc.xref.RFC2818.1">2.1.1</a>, <a class="iref" href="#RFC2818"><b>12.2</b></a></li> 3002 3042 <li class="indline1"><em>RFC2965</em> <a class="iref" href="#rfc.xref.RFC2965.1">4.2</a>, <a class="iref" href="#RFC2965"><b>12.2</b></a></li> … … 3030 3070 </ul> 3031 3071 </li> 3032 <li class="indline1"><em>RFC822</em> <a class="iref" href="#rfc.xref.RFC822.1">3.2.1</a>, <a class="iref" href="#RFC822"><b>12.2</b></a></li>3033 3072 <li class="indline1"><em>RFC959</em> <a class="iref" href="#rfc.xref.RFC959.1">1</a>, <a class="iref" href="#RFC959"><b>12.2</b></a></li> 3034 3073 </ul> 3035 3074 </li> 3036 3075 <li class="indline0"><a id="rfc.index.S" href="#rfc.index.S"><b>S</b></a><ul class="ind"> 3037 <li class="indline1">server <a class="iref" href="#rfc.iref.s.1"> D</a></li>3076 <li class="indline1">server <a class="iref" href="#rfc.iref.s.1">C</a></li> 3038 3077 <li class="indline1"><em>Spe</em> <a class="iref" href="#rfc.xref.Spe.1">7.1.1</a>, <a class="iref" href="#Spe"><b>12.2</b></a></li> 3039 3078 </ul> 3040 3079 </li> 3041 3080 <li class="indline0"><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul class="ind"> 3042 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1">3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.iref.t.1"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.3">9.1</a>, <a class="iref" href="#rfc.xref.header.te.4"> C.3</a></li>3081 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1">3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.iref.t.1"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.3">9.1</a>, <a class="iref" href="#rfc.xref.header.te.4">B.3</a></li> 3043 3082 <li class="indline1"><em>Tou1998</em> <a class="iref" href="#rfc.xref.Tou1998.1">7.1.1</a>, <a class="iref" href="#Tou1998"><b>12.2</b></a></li> 3044 3083 <li class="indline1">Trailer header <a class="iref" href="#rfc.xref.header.trailer.1">3.3.1</a>, <a class="iref" href="#rfc.xref.header.trailer.2">4.5</a>, <a class="iref" href="#rfc.iref.t.2"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li> 3045 3084 <li class="indline1">Transfer-Encoding header <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">4.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">4.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">4.5</a>, <a class="iref" href="#rfc.iref.t.3"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li> 3046 <li class="indline1">tunnel <a class="iref" href="#rfc.iref.t.4"> D</a></li>3085 <li class="indline1">tunnel <a class="iref" href="#rfc.iref.t.4">C</a></li> 3047 3086 </ul> 3048 3087 </li> 3049 3088 <li class="indline0"><a id="rfc.index.U" href="#rfc.index.U"><b>U</b></a><ul class="ind"> 3050 3089 <li class="indline1">Upgrade header <a class="iref" href="#rfc.xref.header.upgrade.1">4.5</a>, <a class="iref" href="#rfc.iref.u.3"><b>8.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">9.1</a></li> 3051 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u.5"> D</a></li>3090 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u.5">C</a></li> 3052 3091 <li class="indline1">URI scheme 3053 3092 <ul class="ind"> … … 3057 3096 </li> 3058 3097 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#USASCII"><b>12.1</b></a></li> 3059 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u.4"> D</a></li>3098 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u.4">C</a></li> 3060 3099 </ul> 3061 3100 </li> 3062 3101 <li class="indline0"><a id="rfc.index.V" href="#rfc.index.V"><b>V</b></a><ul class="ind"> 3063 <li class="indline1">variant <a class="iref" href="#rfc.iref.v.2"> D</a></li>3102 <li class="indline1">variant <a class="iref" href="#rfc.iref.v.2">C</a></li> 3064 3103 <li class="indline1">Via header <a class="iref" href="#rfc.xref.header.via.1">4.5</a>, <a class="iref" href="#rfc.iref.v.1"><b>8.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">9.1</a></li> 3065 3104 </ul> -
draft-ietf-httpbis/latest-roy/p1-messaging.xml
r387 r388 221 221 </t> 222 222 <t> 223 The changes in this draft are summarized in <xref target="changes.since.0 4"/>.223 The changes in this draft are summarized in <xref target="changes.since.05"/>. 224 224 </t> 225 225 </note> … … 353 353 elements. The full form is "<n>#<m>element" indicating at least 354 354 <n> and at most <m> elements, each separated by one or more commas 355 (",") and &OPTIONAL; linear white space ( LWS). This makes the usual355 (",") and &OPTIONAL; linear white space (OWS). This makes the usual 356 356 form of lists very easy; a rule such as 357 357 <figure><artwork type="example"> 358 ( *<x:ref> LWS</x:ref> element *( *<x:ref>LWS</x:ref> "," *<x:ref>LWS</x:ref> element ))</artwork></figure>358 ( *<x:ref>OWS</x:ref> element *( *<x:ref>OWS</x:ref> "," *<x:ref>OWS</x:ref> element ))</artwork></figure> 359 359 </t> 360 360 <t> … … 392 392 <section title="Basic Rules" anchor="basic.rules"> 393 393 <t anchor="rule.CRLF"> 394 HTTP/1.1 defines the sequence CRLF as the end-of-line marker for all 394 <x:anchor-alias value="CRLF"/> 395 HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all 395 396 protocol elements except the entity-body (see <xref target="tolerant.applications"/> for 396 397 tolerant applications). The end-of-line marker within an entity-body … … 398 399 </t> 399 400 <t anchor="rule.LWS"> 400 <x:anchor-alias value="LWS"/> 401 HTTP/1.1 header field values can be folded onto multiple lines if the 402 continuation line begins with a space or horizontal tab. All linear 403 white space, including folding, has the same semantics as SP. A 404 recipient &MAY; replace any linear white space with a single SP before 401 All linear white space (LWS) in header field-values has the same semantics as SP. A 402 recipient &MAY; replace any such linear white space with a single SP before 405 403 interpreting the field value or forwarding the message downstream. 406 404 </t> 407 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS"/> 408 <x:ref>LWS</x:ref> = [<x:ref>CRLF</x:ref>] 1*( <x:ref>SP</x:ref> / <x:ref>HTAB</x:ref> ) 405 <t> 406 Historically, HTTP/1.1 header field values allow linear white space folding across 407 multiple lines. However, this specification deprecates its use; senders &MUST-NOT; 408 produce messages that include LWS folding (i.e., use the obs-fold rule), except 409 within the message/http media type (<xref target="internet.media.type.message.http"/>). 410 Receivers &SHOULD; still parse folded linear white space. 411 </t> 412 <t> 413 This specification uses three rules to denote the use of linear white space; 414 BWS ("Bad" White Space), OWS (Optional White Space), and RWS (Required White Space). 415 </t> 416 <t> 417 "Bad" white space is allowed by the BNF, but senders &SHOULD-NOT; produce it in messages. 418 Receivers &MUST; accept it in incoming messages. 419 </t> 420 <t> 421 Required white space is used when at least one linear white space character 422 is required to separate field tokens. In all such cases, a single SP character 423 &SHOULD; be used. 424 </t> 425 <t anchor="rule.whitespace"> 426 <x:anchor-alias value="BWS"/> 427 <x:anchor-alias value="OWS"/> 428 <x:anchor-alias value="RWS"/> 429 <x:anchor-alias value="obs-fold"/> 430 </t> 431 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OWS"/><iref primary="true" item="Grammar" subitem="RWS"/><iref primary="true" item="Grammar" subitem="BWS"/> 432 <x:ref>OWS</x:ref> = *( [ obs-fold ] <x:ref>WSP</x:ref> ) 433 ; "optional" white space 434 <x:ref>RWS</x:ref> = 1*( [ obs-fold ] <x:ref>WSP</x:ref> ) 435 ; "required" white space 436 <x:ref>BWS</x:ref> = <x:ref>OWS</x:ref> 437 ; "bad" white space 438 <x:ref>obs-fold</x:ref> = <x:ref>CRLF</x:ref> 409 439 </artwork></figure> 410 440 <t anchor="rule.TEXT"> … … 417 447 </t> 418 448 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/> 419 <x:ref>TEXT</x:ref> = %x20-7E / %x80-FF / <x:ref> LWS</x:ref>420 ; any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s, but including <x:ref> LWS</x:ref>449 <x:ref>TEXT</x:ref> = %x20-7E / %x80-FF / <x:ref>OWS</x:ref> 450 ; any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s, but including <x:ref>OWS</x:ref> 421 451 </artwork></figure> 422 452 <t> … … 428 458 <x:anchor-alias value="tchar"/> 429 459 <x:anchor-alias value="token"/> 430 <x:anchor-alias value="separators"/>431 460 Many HTTP/1.1 header field values consist of words separated by LWS 432 461 or special characters. These special characters &MUST; be in a quoted … … 434 463 <xref target="transfer.codings"/>). 435 464 </t> 436 <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"/> 437 <x:ref>separators</x:ref> = "(" / ")" / "<" / ">" / "@" 438 / "," / ";" / ":" / "\" / <x:ref>DQUOTE</x:ref> 439 / "/" / "[" / "]" / "?" / "=" 440 / "{" / "}" / <x:ref>SP</x:ref> / <x:ref>HTAB</x:ref> 441 465 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token"/><iref primary="true" item="Grammar" subitem="tchar"/> 442 466 <x:ref>tchar</x:ref> = "!" / "#" / "$" / "%" / "&" / "'" / "*" 443 467 / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" 444 468 / <x:ref>DIGIT</x:ref> / <x:ref>ALPHA</x:ref> 445 ; any <x:ref>CHAR</x:ref> except <x:ref>CTL</x:ref>s or <x:ref>separators</x:ref>446 469 447 470 <x:ref>token</x:ref> = 1*<x:ref>tchar</x:ref> … … 467 490 </t> 468 491 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/> 469 <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> )492 <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> 470 493 <x:ref>qdtext</x:ref> = <any <x:ref>TEXT</x:ref> excluding <x:ref>DQUOTE</x:ref> and "\"> 471 494 </artwork></figure> … … 867 890 </t> 868 891 <figure><artwork type="example"> 869 Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC1123892 Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 870 893 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 871 894 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format … … 873 896 <t> 874 897 The first format is preferred as an Internet standard and represents 875 a fixed-length subset of that defined by <xref target="RFC1123"/> (an update to876 <xref target="RFC822"/>). Theother formats are described here only for898 a fixed-length subset of that defined by <xref target="RFC1123"/>. The 899 other formats are described here only for 877 900 compatibility with obsolete implementations. 878 901 HTTP/1.1 clients and servers that parse the date value &MUST; accept … … 972 995 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/> 973 996 <x:ref>transfer-coding</x:ref> = "chunked" / <x:ref>transfer-extension</x:ref> 974 <x:ref>transfer-extension</x:ref> = <x:ref>token</x:ref> *( ";"<x:ref>parameter</x:ref> )997 <x:ref>transfer-extension</x:ref> = <x:ref>token</x:ref> *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>parameter</x:ref> ) 975 998 </artwork></figure> 976 999 <t anchor="rule.parameter"> … … 981 1004 </t> 982 1005 <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"/> 983 <x:ref>parameter</x:ref> = <x:ref>attribute</x:ref> "="<x:ref>value</x:ref>1006 <x:ref>parameter</x:ref> = <x:ref>attribute</x:ref> <x:ref>BWS</x:ref> "=" <x:ref>BWS</x:ref> <x:ref>value</x:ref> 984 1007 <x:ref>attribute</x:ref> = <x:ref>token</x:ref> 985 1008 <x:ref>value</x:ref> = <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> … … 1029 1052 <x:anchor-alias value="Chunked-Body"/> 1030 1053 <x:anchor-alias value="chunk-data"/> 1031 <x:anchor-alias value="chunk-ext ension"/>1054 <x:anchor-alias value="chunk-ext"/> 1032 1055 <x:anchor-alias value="chunk-ext-name"/> 1033 1056 <x:anchor-alias value="chunk-ext-val"/> … … 1043 1066 received the full message. 1044 1067 </t> 1045 <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-ext ension"/><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"/>1068 <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-ext"/><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"/> 1046 1069 <x:ref>Chunked-Body</x:ref> = *<x:ref>chunk</x:ref> 1047 1070 <x:ref>last-chunk</x:ref> … … 1049 1072 <x:ref>CRLF</x:ref> 1050 1073 1051 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref>1074 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> *WSP [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref> 1052 1075 <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref> 1053 1076 <x:ref>chunk-size</x:ref> = 1*<x:ref>HEXDIG</x:ref> 1054 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref>1077 <x:ref>last-chunk</x:ref> = 1*("0") *WSP [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref> 1055 1078 1056 <x:ref>chunk-extension</x:ref>= *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 1079 <x:ref>chunk-ext</x:ref> = *( ";" *WSP <x:ref>chunk-ext-name</x:ref> 1080 [ "=" <x:ref>chunk-ext-val</x:ref> ] *WSP ) 1057 1081 <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref> 1058 1082 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> … … 1100 1124 </t> 1101 1125 <figure><artwork type="code"> 1102 1103 read chunk-size, chunk-extension(if any) and CRLF1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1126 length := 0 1127 read chunk-size, chunk-ext (if any) and CRLF 1128 while (chunk-size > 0) { 1129 read chunk-data and CRLF 1130 append chunk-data to entity-body 1131 length := length + chunk-size 1132 read chunk-size and CRLF 1133 } 1134 read entity-header 1135 while (entity-header not empty) { 1136 append entity-header to existing header fields 1137 read entity-header 1138 } 1139 Content-Length := length 1140 Remove "chunked" from Transfer-Encoding 1117 1141 </artwork></figure> 1118 1142 <t> 1119 1143 All HTTP/1.1 applications &MUST; be able to receive and decode the 1120 "chunked" transfer-coding, and &MUST; ignore chunk-ext ensionextensions1144 "chunked" transfer-coding, and &MUST; ignore chunk-ext extensions 1121 1145 they do not understand. 1122 1146 </t> … … 1222 1246 <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ <x:ref>field-value</x:ref> ] 1223 1247 <x:ref>field-name</x:ref> = <x:ref>token</x:ref> 1224 <x:ref>field-value</x:ref> = *( <x:ref>field-content</x:ref> / <x:ref> LWS</x:ref> )1248 <x:ref>field-value</x:ref> = *( <x:ref>field-content</x:ref> / <x:ref>OWS</x:ref> ) 1225 1249 <x:ref>field-content</x:ref> = <field content> 1226 ; the <x:ref>OCTET</x:ref>s making up the field-value 1227 ; and consisting of either *<x:ref>TEXT</x:ref> or combinations 1228 ; of <x:ref>token</x:ref>, <x:ref>separators</x:ref>, and <x:ref>quoted-string</x:ref>1229 </ artwork></figure>1250 </artwork></figure> 1251 <t> 1252 <cref>whitespace between field-name and colon is an error and MUST NOT be accepted</cref> 1253 </t> 1230 1254 <t> 1231 1255 The field-content does not include any leading or trailing LWS: … … 2101 2125 <x:anchor-alias value="Connection"/> 2102 2126 <x:anchor-alias value="connection-token"/> 2103 <t> 2104 The Connection general-header field allows the sender to specify 2127 <x:anchor-alias value="Connection-v"/> 2128 <t> 2129 The general-header field "Connection" allows the sender to specify 2105 2130 options that are desired for that particular connection and &MUST-NOT; 2106 2131 be communicated by proxies over further connections. 2107 2132 </t> 2108 2133 <t> 2109 The Connection header has the following grammar: 2110 </t> 2111 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/> 2112 <x:ref>Connection</x:ref> = "Connection" ":" 1#(<x:ref>connection-token</x:ref>) 2113 <x:ref>connection-token</x:ref> = <x:ref>token</x:ref> 2134 The Connection header's value has the following grammar: 2135 </t> 2136 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="Connection-v"/><iref primary="true" item="Grammar" subitem="connection-token"/> 2137 <x:ref>Connection</x:ref> = "Connection" ":" <x:ref>OWS</x:ref> <x:ref>Connection-v</x:ref> 2138 <x:ref>Connection-v</x:ref> = 1#<x:ref>connection-token</x:ref> 2139 <x:ref>connection-token</x:ref> = <x:ref>token</x:ref> 2114 2140 </artwork></figure> 2115 2141 <t> … … 2133 2159 </t> 2134 2160 <figure><artwork type="example"> 2135 2161 Connection: close 2136 2162 </artwork></figure> 2137 2163 <t> … … 2162 2188 <iref primary="true" item="Headers" subitem="Content-Length" x:for-anchor=""/> 2163 2189 <x:anchor-alias value="Content-Length"/> 2164 <t> 2165 The Content-Length entity-header field indicates the size of the 2190 <x:anchor-alias value="Content-Length-v"/> 2191 <t> 2192 The entity-header field "Content-Length" indicates the size of the 2166 2193 entity-body, in decimal number of OCTETs, sent to the recipient or, 2167 2194 in the case of the HEAD method, the size of the entity-body that 2168 2195 would have been sent had the request been a GET. 2169 2196 </t> 2170 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/> 2171 <x:ref>Content-Length</x:ref> = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref> 2197 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/><iref primary="true" item="Grammar" subitem="Content-Length-v"/> 2198 <x:ref>Content-Length</x:ref> = "Content-Length" ":" <x:ref>OWS</x:ref> 1*<x:ref>Content-Length-v</x:ref> 2199 <x:ref>Content-Length-v</x:ref> = 1*<x:ref>DIGIT</x:ref> 2172 2200 </artwork></figure> 2173 2201 <t> … … 2175 2203 </t> 2176 2204 <figure><artwork type="example"> 2177 2205 Content-Length: 3495 2178 2206 </artwork></figure> 2179 2207 <t> … … 2200 2228 <iref primary="true" item="Headers" subitem="Date" x:for-anchor=""/> 2201 2229 <x:anchor-alias value="Date"/> 2202 <t> 2203 The Date general-header field represents the date and time at which 2230 <x:anchor-alias value="Date-v"/> 2231 <t> 2232 The general-header field "Date" represents the date and time at which 2204 2233 the message was originated, having the same semantics as orig-date in 2205 2234 <xref target="RFC5322" x:fmt="of" x:sec="3.6.1"/>. The field value is an … … 2207 2236 it &MUST; be sent in rfc1123-date format. 2208 2237 </t> 2209 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/> 2210 <x:ref>Date</x:ref> = "Date" ":" <x:ref>HTTP-date</x:ref> 2238 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/><iref primary="true" item="Grammar" subitem="Date-v"/> 2239 <x:ref>Date</x:ref> = "Date" ":" <x:ref>OWS</x:ref> <x:ref>Date-v</x:ref> 2240 <x:ref>Date-v</x:ref> = <x:ref>HTTP-date</x:ref> 2211 2241 </artwork></figure> 2212 2242 <t> … … 2214 2244 </t> 2215 2245 <figure><artwork type="example"> 2216 2246 Date: Tue, 15 Nov 1994 08:12:31 GMT 2217 2247 </artwork></figure> 2218 2248 <t> … … 2278 2308 <iref primary="true" item="Headers" subitem="Host" x:for-anchor=""/> 2279 2309 <x:anchor-alias value="Host"/> 2280 <t> 2281 The Host request-header field specifies the Internet host and port 2310 <x:anchor-alias value="Host-v"/> 2311 <t> 2312 The request-header field "Host" specifies the Internet host and port 2282 2313 number of the resource being requested, as obtained from the original 2283 2314 URI given by the user or referring resource (generally an http URI, … … 2288 2319 URL of a server for multiple host names on a single IP address. 2289 2320 </t> 2290 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/> 2291 <x:ref>Host</x:ref> = "Host" ":" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ; <xref target="http.uri"/> 2321 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/><iref primary="true" item="Grammar" subitem="Host-v"/> 2322 <x:ref>Host</x:ref> = "Host" ":" <x:ref>OWS</x:ref> <x:ref>Host-v</x:ref> 2323 <x:ref>Host-v</x:ref> = <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ; <xref target="http.uri"/> 2292 2324 </artwork></figure> 2293 2325 <t> … … 2298 2330 </t> 2299 2331 <figure><artwork type="example"> 2300 2301 2332 GET /pub/WWW/ HTTP/1.1 2333 Host: www.example.org 2302 2334 </artwork></figure> 2303 2335 <t> … … 2323 2355 <iref primary="true" item="Headers" subitem="TE" x:for-anchor=""/> 2324 2356 <x:anchor-alias value="TE"/> 2357 <x:anchor-alias value="TE-v"/> 2325 2358 <x:anchor-alias value="t-codings"/> 2326 2359 <t> 2327 The TE request-header fieldindicates what extension transfer-codings2360 The request-header field "TE" indicates what extension transfer-codings 2328 2361 it is willing to accept in the response and whether or not it is 2329 2362 willing to accept trailer fields in a chunked transfer-coding. Its … … 2332 2365 parameters (as described in <xref target="transfer.codings"/>). 2333 2366 </t> 2334 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/> 2335 <x:ref>TE</x:ref> = "TE" ":" #( <x:ref>t-codings</x:ref> ) 2367 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="TE-v"/><iref primary="true" item="Grammar" subitem="t-codings"/> 2368 <x:ref>TE</x:ref> = "TE" ":" <x:ref>OWS</x:ref> <x:ref>TE-v</x:ref> 2369 <x:ref>TE-v</x:ref> = #<x:ref>t-codings</x:ref> 2336 2370 <x:ref>t-codings</x:ref> = "trailers" / ( <x:ref>transfer-extension</x:ref> [ <x:ref>accept-params</x:ref> ] ) 2337 2371 </artwork></figure> … … 2347 2381 </t> 2348 2382 <figure><artwork type="example"> 2349 2350 2351 2383 TE: deflate 2384 TE: 2385 TE: trailers, deflate;q=0.5 2352 2386 </artwork></figure> 2353 2387 <t> … … 2399 2433 <iref primary="true" item="Headers" subitem="Trailer" x:for-anchor=""/> 2400 2434 <x:anchor-alias value="Trailer"/> 2401 <t> 2402 The Trailer general field value indicates that the given set of 2435 <x:anchor-alias value="Trailer-v"/> 2436 <t> 2437 The general field "Trailer" indicates that the given set of 2403 2438 header fields is present in the trailer of a message encoded with 2404 2439 chunked transfer-coding. 2405 2440 </t> 2406 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/> 2407 <x:ref>Trailer</x:ref> = "Trailer" ":" 1#<x:ref>field-name</x:ref> 2441 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/><iref primary="true" item="Grammar" subitem="Trailer-v"/> 2442 <x:ref>Trailer</x:ref> = "Trailer" ":" <x:ref>OWS</x:ref> <x:ref>Trailer-v</x:ref> 2443 <x:ref>Trailer-v</x:ref> = 1#<x:ref>field-name</x:ref> 2408 2444 </artwork></figure> 2409 2445 <t> … … 2433 2469 <iref primary="true" item="Headers" subitem="Transfer-Encoding" x:for-anchor=""/> 2434 2470 <x:anchor-alias value="Transfer-Encoding"/> 2435 <t> 2436 The Transfer-Encoding general-header field indicates what (if any) 2471 <x:anchor-alias value="Transfer-Encoding-v"/> 2472 <t> 2473 The general-header "Transfer-Encoding" field indicates what (if any) 2437 2474 type of transformation has been applied to the message body in order 2438 2475 to safely transfer it between the sender and the recipient. This … … 2440 2477 property of the message, not of the entity. 2441 2478 </t> 2442 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/> 2443 <x:ref>Transfer-Encoding</x:ref> = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref> 2479 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/><iref primary="true" item="Grammar" subitem="Transfer-Encoding-v"/> 2480 <x:ref>Transfer-Encoding</x:ref> = "Transfer-Encoding" ":" <x:ref>OWS</x:ref> 2481 <x:ref>Transfer-Encoding-v</x:ref> 2482 <x:ref>Transfer-Encoding-v</x:ref> = 1#<x:ref>transfer-coding</x:ref> 2444 2483 </artwork></figure> 2445 2484 <t> … … 2465 2504 <iref primary="true" item="Headers" subitem="Upgrade" x:for-anchor=""/> 2466 2505 <x:anchor-alias value="Upgrade"/> 2467 <t> 2468 The Upgrade general-header allows the client to specify what 2506 <x:anchor-alias value="Upgrade-v"/> 2507 <t> 2508 The general-header "Upgrade" allows the client to specify what 2469 2509 additional communication protocols it supports and would like to use 2470 2510 if the server finds it appropriate to switch protocols. The server … … 2472 2512 response to indicate which protocol(s) are being switched. 2473 2513 </t> 2474 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/> 2475 <x:ref>Upgrade</x:ref> = "Upgrade" ":" 1#<x:ref>product</x:ref> 2514 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/><iref primary="true" item="Grammar" subitem="Upgrade-v"/> 2515 <x:ref>Upgrade</x:ref> = "Upgrade" ":" <x:ref>OWS</x:ref> <x:ref>Upgrade-v</x:ref> 2516 <x:ref>Upgrade-v</x:ref> = 1#<x:ref>product</x:ref> 2476 2517 </artwork></figure> 2477 2518 <t> … … 2479 2520 </t> 2480 2521 <figure><artwork type="example"> 2481 2522 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 2482 2523 </artwork></figure> 2483 2524 <t> … … 2534 2575 <x:anchor-alias value="received-protocol"/> 2535 2576 <x:anchor-alias value="Via"/> 2536 <t> 2537 The Via general-header field &MUST; be used by gateways and proxies to 2577 <x:anchor-alias value="Via-v"/> 2578 <t> 2579 The general-header field "Via" &MUST; be used by gateways and proxies to 2538 2580 indicate the intermediate protocols and recipients between the user 2539 2581 agent and the server on requests, and between the origin server and … … 2543 2585 all senders along the request/response chain. 2544 2586 </t> 2545 <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"/> 2546 <x:ref>Via</x:ref> = "Via" ":" 1#( <x:ref>received-protocol</x:ref> <x:ref>received-by</x:ref> [ <x:ref>comment</x:ref> ] ) 2587 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Via"/><iref primary="true" item="Grammar" subitem="Via-v"/><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"/> 2588 <x:ref>Via</x:ref> = "Via" ":" <x:ref>OWS</x:ref> <x:ref>Via-v</x:ref> 2589 <x:ref>Via-v</x:ref> = 1#( <x:ref>received-protocol</x:ref> <x:ref>RWS</x:ref> <x:ref>received-by</x:ref> 2590 [ <x:ref>RWS</x:ref> <x:ref>comment</x:ref> ] ) 2547 2591 <x:ref>received-protocol</x:ref> = [ <x:ref>protocol-name</x:ref> "/" ] <x:ref>protocol-version</x:ref> 2548 2592 <x:ref>protocol-name</x:ref> = <x:ref>token</x:ref> … … 2589 2633 </t> 2590 2634 <figure><artwork type="example"> 2591 2635 Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 2592 2636 </artwork></figure> 2593 2637 <t> … … 2606 2650 </t> 2607 2651 <figure><artwork type="example"> 2608 2652 Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 2609 2653 </artwork></figure> 2610 2654 <t> … … 2612 2656 </t> 2613 2657 <figure><artwork type="example"> 2614 2658 Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 2615 2659 </artwork></figure> 2616 2660 <t> … … 3412 3456 </reference> 3413 3457 3414 <reference anchor="RFC822">3415 <front>3416 <title abbrev="Standard for ARPA Internet Text Messages">Standard for the format of ARPA Internet text messages</title>3417 <author initials="D.H." surname="Crocker" fullname="David H. Crocker">3418 <organization>University of Delaware, Dept. of Electrical Engineering</organization>3419 <address><email>DCrocker@UDel-Relay</email></address>3420 </author>3421 <date month="August" day="13" year="1982"/>3422 </front>3423 <seriesInfo name="STD" value="11"/>3424 <seriesInfo name="RFC" value="822"/>3425 </reference>3426 3427 3458 <reference anchor="RFC959"> 3428 3459 <front> … … 3885 3916 </section> 3886 3917 3887 <section title="Conversion of Date Formats" anchor="conversion.of.date.formats">3888 <t>3889 HTTP/1.1 uses a restricted set of date formats (<xref target="full.date"/>) to3890 simplify the process of date comparison. Proxies and gateways from3891 other protocols &SHOULD; ensure that any Date header field present in a3892 message conforms to one of the HTTP/1.1 formats and rewrite the date3893 if necessary.3894 </t>3895 </section>3896 3897 3918 <section title="Compatibility with Previous Versions" anchor="compatibility"> 3898 3919 <t> … … 4065 4086 <section title="Changes from RFC 2616" anchor="changes.from.rfc.2616"> 4066 4087 <t> 4088 Rules about implicit linear white space between certain grammar productions 4089 have been removed; now it's only allowed when specifically pointed out 4090 in the ABNF. 4067 4091 The CHAR rule does not allow the NUL character anymore (this affects 4068 4092 the comment and quoted-string rules). Furthermore, the quoted-pair … … 4489 4513 <t> 4490 4514 Avoid underscore character in rule names ("http_URL" -> 4491 "http-URI", "abs_path" -> "path-absolute"). 4492 </t> 4493 <t> 4494 Add rules for terms imported from URI spec ("absolute-URI", "authority", 4495 "path-abempty", "path-absolute", "uri-host", "port", "query"). 4515 "http-URL", "abs_path" -> "path-absolute"). 4516 </t> 4517 <t> 4518 Add rules for terms imported from URI spec ("absoluteURI", "authority", 4519 "path-absolute", "port", "query", "relativeURI", "host) -- these will 4520 have to be updated when switching over to RFC3986. 4496 4521 </t> 4497 4522 <t> … … 4600 4625 <list style="symbols"> 4601 4626 <t> 4627 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/34"/>: 4628 "Out-of-date reference for URIs" 4629 </t> 4630 <t> 4602 4631 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/132"/>: 4603 4632 "RFC 2822 is updated by RFC 5322" … … 4614 4643 Get rid of RFC822 dependency; use RFC5234 plus extensions instead. 4615 4644 </t> 4645 <t> 4646 Only reference RFC 5234's core rules. 4647 </t> 4648 <t> 4649 Introduce new ABNF rules for "bad" whitespace ("BWS"), optional 4650 whitespace ("OWS") and required whitespace ("RWS"). 4651 </t> 4652 <t> 4653 Rewrite ABNFs to spell out whitespace rules, factor out 4654 header value format definitions. 4655 </t> 4656 </list> 4657 </t> 4658 </section> 4659 4660 <section title="Since draft-ietf-httpbis-p1-messaging-05" anchor="changes.since.05"> 4661 <t> 4662 Closed issues: 4663 <list style="symbols"> 4664 <t> 4665 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/118"/>: 4666 "Join "Differences Between HTTP Entities and RFC 2045 Entities"?" 4667 </t> 4668 <t> 4669 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/134"/>: 4670 "RFC822 reference left in discussion of date formats" 4671 </t> 4616 4672 </list> 4617 4673 </t>
Note: See TracChangeset
for help on using the changeset viewer.