Changeset 437 for draft-ietf-httpbis/latest-roy
- Timestamp:
- 11/12/08 16:02:40 (14 years ago)
- Location:
- draft-ietf-httpbis/latest-roy
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest-roy/Makefile
r308 r437 13 13 p6-cache.html \ 14 14 p7-auth.html \ 15 p8-cookies.html \16 15 p1-messaging.redxml \ 17 16 p2-semantics.redxml \ … … 21 20 p6-cache.redxml \ 22 21 p7-auth.redxml \ 23 p8-cookies.redxml \24 22 p1-messaging.txt \ 25 23 p2-semantics.txt \ … … 29 27 p6-cache.txt \ 30 28 p7-auth.txt \ 31 p8-cookies.txt \32 29 p1-messaging.iana-headers \ 33 30 p2-semantics.iana-headers \ -
draft-ietf-httpbis/latest-roy/p1-messaging.html
r388 r437 333 333 } 334 334 @top-right { 335 content: " November 2008";335 content: "December 2008"; 336 336 } 337 337 @top-center { … … 379 379 <link rel="Appendix" title="B Compatibility with Previous Versions" href="#rfc.section.B"> 380 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"> 381 <link rel="Appendix" title="D Collected ABNF" href="#rfc.section.D"> 382 <link rel="Appendix" title="E Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.E"> 382 383 <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/"> 383 384 <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"> … … 392 393 <meta name="DC.Creator" content="Reschke, J. F."> 393 394 <meta name="DC.Identifier" content="urn:ietf:id:draft-ietf-httpbis-p1-messaging-latest"> 394 <meta name="DC.Date.Issued" scheme="ISO8601" content="2008-1 1">395 <meta name="DC.Date.Issued" scheme="ISO8601" content="2008-12"> 395 396 <meta name="DC.Relation.Replaces" content="urn:ietf:rfc:2616"> 396 397 <meta name="DC.Description.Abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 1 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 1 provides an overview of HTTP and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the generic message syntax and parsing requirements for HTTP message frames, and describes general security concerns for implementations."> … … 423 424 </tr> 424 425 <tr> 425 <td class="header left">Expires: May2009</td>426 <td class="header left">Expires: June 2009</td> 426 427 <td class="header right">HP</td> 427 428 </tr> … … 476 477 <tr> 477 478 <td class="header left"></td> 478 <td class="header right"> November 15, 2008</td>479 <td class="header right">December 11, 2008</td> 479 480 </tr> 480 481 </table> … … 496 497 <p>The list of Internet-Draft Shadow Directories can be accessed at <<a href="http://www.ietf.org/shadow.html">http://www.ietf.org/shadow.html</a>>. 497 498 </p> 498 <p>This Internet-Draft will expire in May2009.</p>499 <p>This Internet-Draft will expire in June 2009.</p> 499 500 <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> 500 501 <p>The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information … … 509 510 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>>. 510 511 </p> 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>.512 <p>The changes in this draft are summarized in <a href="#changes.since.05" title="Since draft-ietf-httpbis-p1-messaging-05">Appendix E.7</a>. 512 513 </p> 513 514 <hr class="noprint"> … … 517 518 <li class="tocline1">1.1 <a href="#intro.requirements">Requirements</a></li> 518 519 <li class="tocline1">1.2 <a href="#notation">Syntax Notation</a><ul class="toc"> 519 <li class="tocline1">1.2.1 <a href="#notation.abnf">ABNF Extensions</a><ul class="toc"> 520 <li class="tocline1">1.2.1.1 <a href="#rfc.section.1.2.1.1">#rule</a></li> 521 <li class="tocline1">1.2.1.2 <a href="#implied.LWS">implied *LWS</a></li> 522 </ul> 523 </li> 520 <li class="tocline1">1.2.1 <a href="#notation.abnf">ABNF Extension: #rule</a></li> 524 521 <li class="tocline1">1.2.2 <a href="#basic.rules">Basic Rules</a></li> 525 522 <li class="tocline1">1.2.3 <a href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></li> … … 653 650 </li> 654 651 <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> 652 <li class="tocline0">D. <a href="#collected.abnf">Collected ABNF</a></li> 653 <li class="tocline0">E. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul class="toc"> 654 <li class="tocline1">E.1 <a href="#rfc.section.E.1">Since RFC2616</a></li> 655 <li class="tocline1">E.2 <a href="#rfc.section.E.2">Since draft-ietf-httpbis-p1-messaging-00</a></li> 656 <li class="tocline1">E.3 <a href="#rfc.section.E.3">Since draft-ietf-httpbis-p1-messaging-01</a></li> 657 <li class="tocline1">E.4 <a href="#changes.since.02">Since draft-ietf-httpbis-p1-messaging-02</a></li> 658 <li class="tocline1">E.5 <a href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></li> 659 <li class="tocline1">E.6 <a href="#changes.since.04">Since draft-ietf-httpbis-p1-messaging-04</a></li> 660 <li class="tocline1">E.7 <a href="#changes.since.05">Since draft-ietf-httpbis-p1-messaging-05</a></li> 663 661 </ul> 664 662 </li> … … 711 709 <div id="rfc.iref.g.11"></div> 712 710 <div id="rfc.iref.g.12"></div> 713 <div id="rfc.iref.g.13"></div>714 711 <h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a> <a id="notation" href="#notation">Syntax Notation</a></h2> 715 712 <div id="core.rules"> 716 <p id="rfc.section.1.2.p.1"> This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. The following core rules are included by reference, as defined in <a href="#RFC5234" id="rfc.xref.RFC5234.2"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>, <a href="http://tools.ietf.org/html/rfc5234#section-B.1">Appendix B.1</a>: ALPHA (letters), CHAR (any <a href="#USASCII" id="rfc.xref.USASCII.1"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a> character, excluding NUL), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), 717 HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), LF (line feed), OCTET (any 8-bit sequence of data), SP (space) and 718 WSP (white space). 713 <p id="rfc.section.1.2.p.1"> This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. The following core rules are included by reference, as defined in <a href="#RFC5234" id="rfc.xref.RFC5234.2"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>, <a href="http://tools.ietf.org/html/rfc5234#section-B.1">Appendix B.1</a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 714 (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), VCHAR (any visible <a href="#USASCII" id="rfc.xref.USASCII.1"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a> character), and WSP (whitespace). 719 715 </p> 720 716 </div> 721 <h3 id="rfc.section.1.2.1"><a href="#rfc.section.1.2.1">1.2.1</a> <a id="notation.abnf" href="#notation.abnf">ABNF Extensions</a></h3> 722 <p id="rfc.section.1.2.1.p.1">Two extensions to the ABNF rules of <a href="#RFC5234" id="rfc.xref.RFC5234.3"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> are used to improve readability.<span class="comment">[rfc.comment.1: The current plan is to remove these extensions prior to the last call draft.]</span> 723 </p> 724 <h4 id="rfc.section.1.2.1.1"><a href="#rfc.section.1.2.1.1">1.2.1.1</a> #rule 725 </h4> 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 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> 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, 731 "(element), , (element) " is permitted, but counts as only two elements. Therefore, where at least one element is required, 732 at least one non-null element <em class="bcp14">MUST</em> be present. Default values are 0 and infinity so that "#element" allows any number, including zero; "1#element" requires at 733 least one; and "1#2element" allows one or two. 734 </p> 735 <div id="rfc.iref.i.1"></div> 736 <h4 id="rfc.section.1.2.1.2"><a href="#rfc.section.1.2.1.2">1.2.1.2</a> <a id="implied.LWS" href="#implied.LWS">implied *LWS</a></h4> 737 <p id="rfc.section.1.2.1.2.p.1">The grammar described by this specification is word-based. Except where noted otherwise, linear white space (LWS) can be included 738 between any two adjacent words (token or quoted-string), and between adjacent words and separators, without changing the interpretation 739 of a field. At least one delimiter (LWS and/or separators) <em class="bcp14">MUST</em> exist between any two tokens (for the definition of "token" below), since they would otherwise be interpreted as a single 740 token. 717 <h3 id="rfc.section.1.2.1"><a href="#rfc.section.1.2.1">1.2.1</a> <a id="notation.abnf" href="#notation.abnf">ABNF Extension: #rule</a></h3> 718 <p id="rfc.section.1.2.1.p.1">One extension to the ABNF rules of <a href="#RFC5234" id="rfc.xref.RFC5234.3"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> is used to improve readability. 719 </p> 720 <p id="rfc.section.1.2.1.p.2">A construct "#" is defined, similar to "*", for defining lists of elements. The full form is "<n>#<m>element" indicating at 721 least <n> and at most <m> elements, each separated by a single comma (",") and optional whitespace (OWS). 722 </p> 723 <div id="rfc.figure.u.1"></div> 724 <p>Thus,</p><pre class="text"> 1#element => element *( OWS "," OWS element ) 725 </pre><div id="rfc.figure.u.2"></div> 726 <p>and:</p><pre class="text"> #element => [ 1#element ] 727 </pre><div id="rfc.figure.u.3"></div> 728 <p>and for n >= 1 and m > 1:</p><pre class="text"> <n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element ) 729 </pre><p id="rfc.section.1.2.1.p.6">For compatibility with legacy list rules, recipients <em class="bcp14">SHOULD</em> accept empty list elements. In other words, consumers would follow the list productions: 730 </p> 731 <div id="rfc.figure.u.4"></div><pre class="text">#element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ] 732 733 1#element => *( "," OWS ) element *( OWS "," [ OWS element ] ) 734 </pre><p id="rfc.section.1.2.1.p.8"> <a href="#collected.abnf" title="Collected ABNF">Appendix D</a> shows the collected ABNF, with the list rules expanded as explained above. 741 735 </p> 742 736 <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> 743 737 <div id="rule.CRLF"> 744 738 <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 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>.739 in <a href="p3-payload.html#media.types" title="Media Types">Section 2.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>. 746 740 </p> 747 741 </div> 748 742 <div id="rule.LWS"> 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. 743 <p id="rfc.section.1.2.2.p.2">This specification uses three rules to denote the use of linear whitespace: OWS (optional whitespace), RWS (required whitespace), 744 and BWS ("bad" whitespace). 750 745 </p> 751 746 </div> 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. 747 <p id="rfc.section.1.2.2.p.3">The OWS rule is used where zero or more linear whitespace characters may appear. OWS <em class="bcp14">SHOULD</em> either not be produced or be produced as a single SP character. Multiple OWS characters that occur within field-content <em class="bcp14">SHOULD</em> be replaced with a single SP before interpreting the field value or forwarding the message downstream. 748 </p> 749 <p id="rfc.section.1.2.2.p.4">RWS is used when at least one linear whitespace character is required to separate field tokens. RWS <em class="bcp14">SHOULD</em> be produced as a single SP character. Multiple RWS characters that occur within field-content <em class="bcp14">SHOULD</em> be replaced with a single SP before interpreting the field value or forwarding the message downstream. 750 </p> 751 <p id="rfc.section.1.2.2.p.5">BWS is used where the grammar allows optional whitespace for historical reasons but senders <em class="bcp14">SHOULD NOT</em> produce it in messages. HTTP/1.1 recipients <em class="bcp14">MUST</em> accept such bad optional whitespace and remove it before interpreting the field value or forwarding the message downstream. 762 752 </p> 763 753 <div id="rule.whitespace"> 764 <p id="rfc.section.1.2.2.p. 7"> </p>754 <p id="rfc.section.1.2.2.p.6"> </p> 765 755 </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 756 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span> <a href="#rule.whitespace" class="smpl">OWS</a> = *( [ obs-fold ] <a href="#core.rules" class="smpl">WSP</a> ) 757 ; "optional" whitespace 768 758 <a href="#rule.whitespace" class="smpl">RWS</a> = 1*( [ obs-fold ] <a href="#core.rules" class="smpl">WSP</a> ) 769 ; "required" white 759 ; "required" whitespace 770 760 <a href="#rule.whitespace" class="smpl">BWS</a> = <a href="#rule.whitespace" class="smpl">OWS</a> 771 ; "bad" white 761 ; "bad" whitespace 772 762 <a href="#rule.whitespace" class="smpl">obs-fold</a> = <a href="#core.rules" class="smpl">CRLF</a> 773 </pre><div id="rule.TEXT">774 <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 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>.763 ; see <a href="#message.headers" title="Message Headers">Section 4.2</a> 764 </pre><div id="rule.token.separators"> 765 <p id="rfc.section.1.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by whitespace 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>). 776 766 </p> 777 767 </div> 778 <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 781 will be replaced with a single SP before interpretation of the TEXT value. 782 </p> 783 <div id="rule.token.separators"> 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>). 785 </p> 786 </div> 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> = "!" / "#" / "$" / "%" / "&" / "'" / "*" 768 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span> <a href="#rule.token.separators" class="smpl">tchar</a> = "!" / "#" / "$" / "%" / "&" / "'" / "*" 788 769 / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" 789 770 / <a href="#core.rules" class="smpl">DIGIT</a> / <a href="#core.rules" class="smpl">ALPHA</a> 790 771 791 772 <a href="#rule.token.separators" class="smpl">token</a> = 1*<a href="#rule.token.separators" class="smpl">tchar</a> 792 </pre><div id="rule.comment"> 793 <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 794 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 795 of the field value. 773 </pre><div id="rule.quoted-string"> 774 <p id="rfc.section.1.2.2.p.10"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p> 775 </div> 776 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></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> 777 <a href="#rule.quoted-string" class="smpl">qdtext</a> = *( <a href="#rule.whitespace" class="smpl">OWS</a> / %x21 / %x23-5B / %x5D-7E / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 778 <a href="#rule.quoted-string" class="smpl">obs-text</a> = %x80-FF 779 </pre><div id="rule.quoted-pair"> 780 <p id="rfc.section.1.2.2.p.12"> The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs. 796 781 </p> 797 782 </div> 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> ) ")" 799 <a href="#rule.comment" class="smpl">ctext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding "(" and ")"> 800 </pre><div id="rule.quoted-string"> 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> 802 </div> 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> 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 "\"> 805 </pre><div id="rule.quoted-pair"> 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. 807 </p> 808 </div> 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 / 783 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.21"></span><span id="rfc.iref.g.22"></span> <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 / 810 784 %x0B-0C / 811 785 %x0E-FF ; Characters excluding NUL, <a href="#core.rules" class="smpl">CR</a> and <a href="#core.rules" class="smpl">LF</a> … … 813 787 </pre><h3 id="rfc.section.1.2.3"><a href="#rfc.section.1.2.3">1.2.3</a> <a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h3> 814 788 <p id="rfc.section.1.2.3.p.1">The ABNF rules below are defined in other parts:</p> 815 <div id="rfc.figure.u.9"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">request-header</a> = <request-header, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a>>816 <a href="#abnf.dependencies" class="smpl">response-header</a> = <response-header, defined in <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a>>817 </pre><div id="rfc.figure.u.10"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">accept-params</a> = <accept-params, defined in <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>>818 <a href="#abnf.dependencies" class="smpl">entity-body</a> = <entity-body, defined in <a href="#Part3" id="rfc.xref.Part3.4"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.body" title="Entity Body">Section 4.2</a>>819 <a href="#abnf.dependencies" class="smpl">entity-header</a> = <entity-header, defined in <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>>820 </pre><div id="rfc.figure.u.11"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>>821 <a href="#abnf.dependencies" class="smpl">Pragma</a> = <Pragma, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>>822 <a href="#abnf.dependencies" class="smpl">Warning</a> = <Warning, defined in <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>>789 <div id="rfc.figure.u.9"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">request-header</a> = <request-header, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 3</a>> 790 <a href="#abnf.dependencies" class="smpl">response-header</a> = <response-header, defined in <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 5</a>> 791 </pre><div id="rfc.figure.u.10"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">accept-params</a> = <accept-params, defined in <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 5.1</a>> 792 <a href="#abnf.dependencies" class="smpl">entity-body</a> = <entity-body, defined in <a href="#Part3" id="rfc.xref.Part3.4"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.body" title="Entity Body">Section 3.2</a>> 793 <a href="#abnf.dependencies" class="smpl">entity-header</a> = <entity-header, defined in <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a>> 794 </pre><div id="rfc.figure.u.11"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 4.4</a>> 795 <a href="#abnf.dependencies" class="smpl">Pragma</a> = <Pragma, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 4.4</a>> 796 <a href="#abnf.dependencies" class="smpl">Warning</a> = <Warning, defined in <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 4.6</a>> 823 797 </pre><h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="architecture" href="#architecture">HTTP architecture</a></h1> 824 798 <p id="rfc.section.2.p.1">HTTP was created with a specific architecture in mind, the World Wide Web, and has evolved over time to support the scalability … … 834 808 "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. 835 809 </p> 836 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.2 6"></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>>810 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.23"></span><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></span><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span> <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>> 837 811 <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>> 838 812 <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>> … … 858 832 for identifiers using the http or https URI schemes. 859 833 </p> 860 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.3 3"></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> ]834 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.30"></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> ] 861 835 </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 862 836 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. … … 944 918 </p> 945 919 <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> <a id="http.proxy" href="#http.proxy">Use of HTTP for proxy communication</a></h2> 946 <p id="rfc.section.2.3.p.1">Configured to use HTTP to proxy HTTP or other protocols.</p> 920 <p id="rfc.section.2.3.p.1"> <span class="comment">[rfc.comment.1: TBD: Configured to use HTTP to proxy HTTP or other protocols.]</span> 921 </p> 947 922 <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4</a> <a id="http.intercept" href="#http.intercept">Interception of HTTP for access control</a></h2> 948 <p id="rfc.section.2.4.p.1">Interception of HTTP traffic for initiating access control.</p> 923 <p id="rfc.section.2.4.p.1"> <span class="comment">[rfc.comment.2: TBD: Interception of HTTP traffic for initiating access control.]</span> 924 </p> 949 925 <h2 id="rfc.section.2.5"><a href="#rfc.section.2.5">2.5</a> <a id="http.others" href="#http.others">Use of HTTP by other protocols</a></h2> 950 <p id="rfc.section.2.5.p.1">Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.</p> 926 <p id="rfc.section.2.5.p.1"> <span class="comment">[rfc.comment.3: TBD: Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.]</span> 927 </p> 951 928 <h2 id="rfc.section.2.6"><a href="#rfc.section.2.6">2.6</a> <a id="http.media" href="#http.media">Use of HTTP by media type specification</a></h2> 952 <p id="rfc.section.2.6.p.1">Instructions on composing HTTP requests via hypertext formats.</p> 929 <p id="rfc.section.2.6.p.1"> <span class="comment">[rfc.comment.4: TBD: Instructions on composing HTTP requests via hypertext formats.]</span> 930 </p> 953 931 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 954 932 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="http.version" href="#http.version">HTTP Version</a></h2> … … 962 940 </p> 963 941 <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> 964 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.3 4"></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>942 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.31"></span><span id="rfc.iref.g.32"></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> 965 943 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 966 944 </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. … … 999 977 <p id="rfc.section.3.2.1.p.5">All HTTP date/time stamps <em class="bcp14">MUST</em> be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated 1000 978 Universal Time). This is indicated in the first two formats by the inclusion of "GMT" as the three-letter abbreviation for 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 LWSbeyond that specifically included as SP in the grammar.1002 </p> 1003 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.3 6"></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>979 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 whitespace beyond that specifically included as SP in the grammar. 980 </p> 981 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span><span id="rfc.iref.g.39"></span><span id="rfc.iref.g.40"></span><span id="rfc.iref.g.41"></span><span id="rfc.iref.g.42"></span><span id="rfc.iref.g.43"></span><span id="rfc.iref.g.44"></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> 1004 982 <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> 1005 983 <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 … … 1060 1038 is a property of the message, not of the original entity. 1061 1039 </p> 1062 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.4 8"></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>1040 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.45"></span><span id="rfc.iref.g.46"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1063 1041 <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> ) 1064 1042 </pre><div id="rule.parameter"> 1065 1043 <p id="rfc.section.3.3.p.3"> Parameters are in the form of attribute/value pairs.</p> 1066 1044 </div> 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>1045 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></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> 1068 1046 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1069 1047 <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> … … 1079 1057 </p> 1080 1058 <p id="rfc.section.3.3.p.8">The Internet Assigned Numbers Authority (IANA) acts as a registry for transfer-coding value tokens. Initially, the registry 1081 contains the following tokens: "chunked" (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>), "gzip", "compress", and "deflate" (<a href="p3-payload.html#content.codings" title="Content Codings">Section 3.2</a> of <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>).1082 </p> 1083 <p id="rfc.section.3.3.p.9">New transfer-coding value tokens <em class="bcp14">SHOULD</em> be registered in the same way as new content-coding value tokens (<a href="p3-payload.html#content.codings" title="Content Codings">Section 3.2</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>).1059 contains the following tokens: "chunked" (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>), "gzip", "compress", and "deflate" (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>). 1060 </p> 1061 <p id="rfc.section.3.3.p.9">New transfer-coding value tokens <em class="bcp14">SHOULD</em> be registered in the same way as new content-coding value tokens (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>). 1084 1062 </p> 1085 1063 <p id="rfc.section.3.3.p.10">A server which receives an entity-body with a transfer-coding it does not understand <em class="bcp14">SHOULD</em> return 501 (Not Implemented), and close the connection. A server <em class="bcp14">MUST NOT</em> send transfer-codings to an HTTP/1.0 client. … … 1090 1068 necessary for the recipient to verify that it has received the full message. 1091 1069 </p> 1092 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.5 3"></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>1070 <div id="rfc.figure.u.23"></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><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> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a> 1093 1071 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> 1094 1072 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> … … 1105 1083 <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> 1106 1084 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> = 1*<a href="#core.rules" class="smpl">OCTET</a> ; a sequence of chunk-size octets 1107 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> = *( <a href="#abnf.dependencies" class="smpl">entity-header</a> <a href="#core.rules" class="smpl">CRLF</a>)1085 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> = *( <a href="#abnf.dependencies" class="smpl">entity-header</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1108 1086 </pre><p id="rfc.section.3.3.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended 1109 1087 by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line. … … 1147 1125 <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> 1148 1126 <p id="rfc.section.3.4.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields 1149 using product tokens also allow sub-products which form a significant part of the application to be listed, separated by white 1150 space.By convention, the products are listed in order of their significance for identifying the application.1151 </p> 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>]1127 using product tokens also allow sub-products which form a significant part of the application to be listed, separated by whitespace. 1128 By convention, the products are listed in order of their significance for identifying the application. 1129 </p> 1130 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></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>] 1153 1131 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1154 1132 </pre><p id="rfc.section.3.4.p.3">Examples:</p> … … 1160 1138 <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> 1161 1139 <p id="rfc.section.4.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1162 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.6 4"></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 messages1140 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.61"></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 1163 1141 </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 1164 1142 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1165 1143 fields, and possibly a message-body. 1166 1144 </p> 1167 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.6 5"></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>1168 *( <a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a>)1145 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1146 *( <a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1169 1147 <a href="#core.rules" class="smpl">CRLF</a> 1170 1148 [ <a href="#message.body" class="smpl">message-body</a> ] … … 1176 1154 by the BNF, an HTTP/1.1 client <em class="bcp14">MUST NOT</em> preface or follow a request with an extra CRLF. 1177 1155 </p> 1156 <p id="rfc.section.4.1.p.7">Whitespace (WSP) <em class="bcp14">MUST NOT</em> be sent between the start-line and the first header field. The presence of whitespace might be an attempt to trick a noncompliant 1157 implementation of HTTP into ignoring that field or processing the next line as a new request, either of which may result in 1158 security issues when implementations within the request chain interpret the same message differently. HTTP/1.1 servers <em class="bcp14">MUST</em> reject such a message with a 400 (Bad Request) response. 1159 </p> 1178 1160 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="message.headers" href="#message.headers">Message Headers</a></h2> 1179 <p id="rfc.section.4.2.p.1">HTTP header fields, which include general-header (<a href="#general.header.fields" title="General Header Fields">Section 4.5</a>), request-header (<a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>), response-header (<a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 6</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>), and entity-header (<a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a> of <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) fields, follow the same generic format as that given in <a href="http://tools.ietf.org/html/rfc5322#section-2.1">Section 2.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>. Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. The 1180 field value <em class="bcp14">MAY</em> be preceded by any amount of LWS, though a single SP is preferred. Header fields can be extended over multiple lines by preceding 1181 each extra line with at least one SP or HTAB. Applications ought to follow "common form", where one is known or indicated, 1182 when generating HTTP constructs, since there might exist some implementations that fail to accept anything beyond the common 1183 forms. 1184 </p> 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> ] 1161 <p id="rfc.section.4.2.p.1">HTTP header fields follow the same general format as Internet messages in <a href="http://tools.ietf.org/html/rfc5322#section-2.1">Section 2.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>. Each header field consists of a name followed by a colon (":"), optional whitespace, and the field value. Field names are 1162 case-insensitive. 1163 </p> 1164 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span> <a href="#message.headers" class="smpl">message-header</a> = <a href="#message.headers" class="smpl">field-name</a> ":" OWS [ <a href="#message.headers" class="smpl">field-value</a> ] OWS 1186 1165 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1187 1166 <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> ) 1188 <a href="#message.headers" class="smpl">field-content</a> = <field content> 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 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. 1193 </p> 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" 1167 <a href="#message.headers" class="smpl">field-content</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1168 </pre><p id="rfc.section.4.2.p.3">Historically, HTTP has allowed field-content with text in the 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> character encoding (allowing other character sets through use 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> encoding). In practice, most HTTP header field-values use only a subset of the US-ASCII charset <a href="#USASCII" id="rfc.xref.USASCII.2"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. Newly defined header fields <em class="bcp14">SHOULD</em> constrain their field-values to US-ASCII characters. Recipients <em class="bcp14">SHOULD</em> treat other (obs-text) octets in field-content as opaque data. 1169 </p> 1170 <p id="rfc.section.4.2.p.4">No whitespace is allowed between the header field-name and colon. For security reasons, any request message received containing 1171 such whitespace <em class="bcp14">MUST</em> be rejected with a response code of 400 (Bad Request) and any such whitespace in a response message <em class="bcp14">MUST</em> be removed. 1172 </p> 1173 <p id="rfc.section.4.2.p.5">The field value <em class="bcp14">MAY</em> be preceded by optional whitespace; a single SP is preferred. The field-value does not include any leading or trailing white 1174 space: OWS occurring before the first non-whitespace character of the field-value or after the last non-whitespace character 1175 of the field-value is ignored and <em class="bcp14">MAY</em> be removed without changing the meaning of the header field. 1176 </p> 1177 <p id="rfc.section.4.2.p.6">Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one 1178 space or horizontal tab character (line folding). This specification deprecates such line folding except within the message/http 1179 media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 9.3.1</a>). HTTP/1.1 senders <em class="bcp14">MUST NOT</em> produce messages that include line folding (i.e., that contain any field-content that matches the obs-fold rule) unless the 1180 message is intended for packaging within the message/http media type. HTTP/1.1 recipients <em class="bcp14">SHOULD</em> accept line folding and replace any embedded obs-fold whitespace with a single SP prior to interpreting the field value or 1181 forwarding the message downstream. 1182 </p> 1183 <div id="rule.comment"> 1184 <p id="rfc.section.4.2.p.7"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 1185 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 1186 of the field value. 1187 </p> 1188 </div> 1189 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.68"></span><span id="rfc.iref.g.69"></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> ) ")" 1190 <a href="#rule.comment" class="smpl">ctext</a> = *( <a href="#rule.whitespace" class="smpl">OWS</a> / %x21-27 / %x2A-7E / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1191 </pre><p id="rfc.section.4.2.p.9">The order in which header fields with differing field names are received is not significant. However, it is "good practice" 1195 1192 to send general-header fields first, followed by request-header or response-header fields, and ending with the entity-header 1196 1193 fields. 1197 1194 </p> 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.,1195 <p id="rfc.section.4.2.p.10">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., 1199 1196 #(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 1200 1197 of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header … … 1202 1199 thus a proxy <em class="bcp14">MUST NOT</em> change the order of these field values when a message is forwarded. 1203 1200 </p> 1204 <p id="rfc.section.4.2.p. 7"> </p>1201 <p id="rfc.section.4.2.p.11"> </p> 1205 1202 <dl class="empty"> 1206 1203 <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 … … 1213 1210 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>). 1214 1211 </p> 1215 <div id="rfc.figure.u.3 0"></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>1212 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.70"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1216 1213 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1217 1214 </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 … … 1220 1217 <p id="rfc.section.4.3.p.4">The rules for when a message-body is allowed in a message differ for requests and responses.</p> 1221 1218 <p id="rfc.section.4.3.p.5">The presence of a message-body in a request is signaled by the inclusion of a Content-Length or Transfer-Encoding header field 1222 in the request's message-headers. A message-body <em class="bcp14">MUST NOT</em> be included in a request if the specification of the request method (<a href="p2-semantics.html#method" title="Method">Section 3</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) explicitly disallows an entity-body in requests. When a request message contains both a message-body of non-zero length1219 in the request's message-headers. A message-body <em class="bcp14">MUST NOT</em> be included in a request if the specification of the request method (<a href="p2-semantics.html#method" title="Method">Section 2</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) explicitly disallows an entity-body in requests. When a request message contains both a message-body of non-zero length 1223 1220 and a method that does not define any semantics for that request message-body, then an origin server <em class="bcp14">SHOULD</em> either ignore the message-body or respond with an appropriate error message (e.g., 413). A proxy or gateway, when presented 1224 1221 the same request, <em class="bcp14">SHOULD</em> either forward the request inbound with the message-body or ignore the message-body when determining a response. … … 1281 1278 to the entity being transferred. These header fields apply only to the message being transmitted. 1282 1279 </p> 1283 <div id="rfc.figure.u.3 1"></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>1280 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.71"></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 4.2</a> 1284 1281 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1285 1282 / <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 / <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>1283 / <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 4.4</a> 1287 1284 / <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 8.6</a> 1288 1285 / <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 8.7</a> 1289 1286 / <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 8.8</a> 1290 1287 / <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 8.9</a> 1291 / <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>1288 / <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 4.6</a> 1292 1289 </pre><p id="rfc.section.4.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new 1293 1290 or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize … … 1298 1295 resource, the identifier of the resource, and the protocol version in use. 1299 1296 </p> 1300 <div id="rfc.figure.u.3 2"></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>1297 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.72"></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> 1301 1298 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 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>1303 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>1299 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.4"><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 3</a> 1300 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1304 1301 <a href="#core.rules" class="smpl">CRLF</a> 1305 1302 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> … … 1308 1305 The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1309 1306 </p> 1310 <div id="rfc.figure.u.3 3"></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>1307 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.73"></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> 1311 1308 </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> 1312 1309 <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> 1313 <div id="rfc.figure.u.3 4"></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>1310 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1314 1311 </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> 1315 1312 <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. 1316 1313 </p> 1317 <div id="rfc.figure.u.3 5"></div><pre class="inline"><span id="rfc.iref.g.77"></span> <a href="#request-target" class="smpl">request-target</a>= "*"1314 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.76"></span> <a href="#request-target" class="smpl">request-target</a> = "*" 1318 1315 / <a href="#uri" class="smpl">absolute-URI</a> 1319 1316 / ( <a href="#uri" class="smpl">path-absolute</a> [ "?" <a href="#uri" class="smpl">query</a> ] ) … … 1323 1320 apply to a resource. One example would be 1324 1321 </p> 1325 <div id="rfc.figure.u.3 6"></div><pre class="text">OPTIONS * HTTP/1.11322 <div id="rfc.figure.u.37"></div><pre class="text"> OPTIONS * HTTP/1.1 1326 1323 </pre><p id="rfc.section.5.1.2.p.5">The absolute-URI form is <em class="bcp14">REQUIRED</em> when the request is being made to a proxy. The proxy is requested to forward the request or service it from a valid cache, 1327 1324 and return the response. Note that the proxy <em class="bcp14">MAY</em> forward the request on to another proxy or directly to the server specified by the absolute-URI. In order to avoid request … … 1329 1326 Request-Line would be: 1330 1327 </p> 1331 <div id="rfc.figure.u.3 7"></div><pre class="text">GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.11328 <div id="rfc.figure.u.38"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1332 1329 </pre><p id="rfc.section.5.1.2.p.7">To allow for transition to absolute-URIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absolute-URI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies. 1333 1330 </p> 1334 <p id="rfc.section.5.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 8.9</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>).1331 <p id="rfc.section.5.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 7.9</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1335 1332 </p> 1336 1333 <p id="rfc.section.5.1.2.p.9">The most common form of request-target is that used to identify a resource on an origin server or gateway. In this case the … … 1338 1335 server would create a TCP connection to port 80 of the host "www.example.org" and send the lines: 1339 1336 </p> 1340 <div id="rfc.figure.u.3 8"></div><pre class="text">GET /pub/WWW/TheProject.html HTTP/1.11341 1337 <div id="rfc.figure.u.39"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.1 1338 Host: www.example.org 1342 1339 </pre><p id="rfc.section.5.1.2.p.11">followed by the remainder of the Request. Note that the absolute path cannot be empty; if none is present in the original 1343 1340 URI, it <em class="bcp14">MUST</em> be given as "/" (the server root). 1344 1341 </p> 1345 <p id="rfc.section.5.1.2.p.12">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.1.1</a>. If the request-target is encoded using the "% <a href="#core.rules" class="smpl">HEXDIG</a> <a href="#core.rules" class="smpl">HEXDIG</a>" encoding (<a href="#RFC3986" id="rfc.xref.RFC3986.17"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.4">Section 2.4</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code. 1346 </p> 1347 <p id="rfc.section.5.1.2.p.13">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted 1342 <p id="rfc.section.5.1.2.p.12">If a proxy receives a request without any path in the request-target and the method specified is capable of supporting the 1343 asterisk form of request-target, then the last proxy on the request chain <em class="bcp14">MUST</em> forward the request with "*" as the final request-target. 1344 </p> 1345 <div id="rfc.figure.u.40"></div> 1346 <p>For example, the request</p><pre class="text"> OPTIONS http://www.example.org:8001 HTTP/1.1 1347 </pre><div id="rfc.figure.u.41"></div> 1348 <p>would be forwarded by the proxy as</p><pre class="text"> OPTIONS * HTTP/1.1 1349 Host: www.example.org:8001 1350 </pre> <p>after connecting to port 8001 of host "www.example.org".</p> 1351 <p id="rfc.section.5.1.2.p.15">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.1.1</a>. If the request-target is encoded using the "% <a href="#core.rules" class="smpl">HEXDIG</a> <a href="#core.rules" class="smpl">HEXDIG</a>" encoding (<a href="#RFC3986" id="rfc.xref.RFC3986.17"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.4">Section 2.4</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code. 1352 </p> 1353 <p id="rfc.section.5.1.2.p.16">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted 1348 1354 above to replace a null path-absolute with "/". 1349 1355 </p> 1350 <p id="rfc.section.5.1.2.p.1 4"> </p>1356 <p id="rfc.section.5.1.2.p.17"> </p> 1351 1357 <dl class="empty"> 1352 1358 <dd> <b>Note:</b> The "no rewrite" rule prevents the proxy from changing the meaning of the request when the origin server is improperly using … … 1355 1361 </dd> 1356 1362 </dl> 1357 <p id="rfc.section.5.1.2.p.1 5">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (URI too long) status if the received request-target1358 would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 Request-URI Too Long">Section 9.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>).1359 </p> 1360 <p id="rfc.section.5.1.2.p.1 6">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs.1363 <p id="rfc.section.5.1.2.p.18">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (Request-target too Long) status if the received 1364 request-target would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 Request-target Too Long">Section 8.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1365 </p> 1366 <p id="rfc.section.5.1.2.p.19">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs. 1361 1367 </p> 1362 1368 <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a> <a id="the.resource.identified.by.a.request" href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></h2> … … 1383 1389 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="response" href="#response">Response</a></h1> 1384 1390 <p id="rfc.section.6.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 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>1391 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.77"></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> 1386 1392 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 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>1388 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.10"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 4.1</a>1393 / <a href="#abnf.dependencies" class="smpl">response-header</a> ; <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 5</a> 1394 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1389 1395 <a href="#core.rules" class="smpl">CRLF</a> 1390 1396 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> … … 1394 1400 CRLF sequence. 1395 1401 </p> 1396 <div id="rfc.figure.u.4 0"></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>1402 <div id="rfc.figure.u.43"></div><pre class="inline"><span id="rfc.iref.g.78"></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> 1397 1403 </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> 1398 1404 <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 are fully defined in <a href="p2-semantics.html#status.codes" title="Status Code Definitions">Section 9</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>. The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code,1405 are fully defined in <a href="p2-semantics.html#status.codes" title="Status Code Definitions">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>. The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code, 1400 1406 out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A 1401 1407 client <em class="bcp14">SHOULD</em> ignore the content of the Reason Phrase. … … 1411 1417 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1412 1418 </ul> 1413 <div id="rfc.figure.u.4 1"></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>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>>1419 <div id="rfc.figure.u.44"></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> 1420 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1415 1421 </pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> 1416 1422 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h2> … … 1467 1473 <p id="rfc.section.7.1.2.2.p.2">Clients which assume persistent connections and pipeline immediately after connection establishment <em class="bcp14">SHOULD</em> be prepared to retry their connection if the first pipelined attempt fails. If a client does such a retry, it <em class="bcp14">MUST NOT</em> pipeline before it knows the connection is persistent. Clients <em class="bcp14">MUST</em> also be prepared to resend their requests if the server closes the connection before sending all of the corresponding responses. 1468 1474 </p> 1469 <p id="rfc.section.7.1.2.2.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent methods or non-idempotent sequences of methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 8.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to1475 <p id="rfc.section.7.1.2.2.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent methods or non-idempotent sequences of methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 7.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.9"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to 1470 1476 send a non-idempotent request <em class="bcp14">SHOULD</em> wait to send that request until it has received the response status for the previous request. 1471 1477 </p> … … 1492 1498 </p> 1493 1499 <p id="rfc.section.7.1.4.p.4">This means that clients, servers, and proxies <em class="bcp14">MUST</em> be able to recover from asynchronous close events. Client software <em class="bcp14">SHOULD</em> reopen the transport connection and retransmit the aborted sequence of requests without user interaction so long as the request 1494 sequence is idempotent (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 8.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.12"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Non-idempotent methods or sequences <em class="bcp14">MUST NOT</em> be automatically retried, although user agents <em class="bcp14">MAY</em> offer a human operator the choice of retrying the request(s). Confirmation by user-agent software with semantic understanding1500 sequence is idempotent (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 7.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Non-idempotent methods or sequences <em class="bcp14">MUST NOT</em> be automatically retried, although user agents <em class="bcp14">MAY</em> offer a human operator the choice of retrying the request(s). Confirmation by user-agent software with semantic understanding 1495 1501 of the application <em class="bcp14">MAY</em> substitute for user confirmation. The automatic retry <em class="bcp14">SHOULD NOT</em> be repeated if the second sequence of requests fails. 1496 1502 </p> … … 1510 1516 </p> 1511 1517 <h3 id="rfc.section.7.2.3"><a href="#rfc.section.7.2.3">7.2.3</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h3> 1512 <p id="rfc.section.7.2.3.p.1">The purpose of the 100 (Continue) status (see <a href="p2-semantics.html#status.100" title="100 Continue">Section 9.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.13"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing1518 <p id="rfc.section.7.2.3.p.1">The purpose of the 100 (Continue) status (see <a href="p2-semantics.html#status.100" title="100 Continue">Section 8.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing 1513 1519 to accept the request (based on the request headers) before the client sends the request body. In some cases, it might either 1514 1520 be inappropriate or highly inefficient for the client to send the body if the server will reject the message without looking … … 1517 1523 <p id="rfc.section.7.2.3.p.2">Requirements for HTTP/1.1 clients: </p> 1518 1524 <ul> 1519 <li>If a client will wait for a 100 (Continue) response before sending the request body, it <em class="bcp14">MUST</em> send an Expect request-header field (<a href="p2-semantics.html#header.expect" title="Expect">Section 10.2</a> of <a href="#Part2" id="rfc.xref.Part2.14"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) with the "100-continue" expectation.1520 </li> 1521 <li>A client <em class="bcp14">MUST NOT</em> send an Expect request-header field (<a href="p2-semantics.html#header.expect" title="Expect">Section 10.2</a> of <a href="#Part2" id="rfc.xref.Part2.15"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) with the "100-continue" expectation if it does not intend to send a request body.1525 <li>If a client will wait for a 100 (Continue) response before sending the request body, it <em class="bcp14">MUST</em> send an Expect request-header field (<a href="p2-semantics.html#header.expect" title="Expect">Section 9.2</a> of <a href="#Part2" id="rfc.xref.Part2.12"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) with the "100-continue" expectation. 1526 </li> 1527 <li>A client <em class="bcp14">MUST NOT</em> send an Expect request-header field (<a href="p2-semantics.html#header.expect" title="Expect">Section 9.2</a> of <a href="#Part2" id="rfc.xref.Part2.13"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) with the "100-continue" expectation if it does not intend to send a request body. 1522 1528 </li> 1523 1529 </ul> … … 1563 1569 <li>A proxy <em class="bcp14">MUST NOT</em> forward a 100 (Continue) response if the request message was received from an HTTP/1.0 (or earlier) client and did not include 1564 1570 an Expect request-header field with the "100-continue" expectation. This requirement overrides the general rule for forwarding 1565 of 1xx responses (see <a href="p2-semantics.html#status.1xx" title="Informational 1xx">Section 9.1</a> of <a href="#Part2" id="rfc.xref.Part2.16"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>).1571 of 1xx responses (see <a href="p2-semantics.html#status.1xx" title="Informational 1xx">Section 8.1</a> of <a href="#Part2" id="rfc.xref.Part2.14"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1566 1572 </li> 1567 1573 </ul> … … 1603 1609 </p> 1604 1610 <p id="rfc.section.8.1.p.2">The Connection header's value has the following grammar:</p> 1605 <div id="rfc.figure.u.4 2"></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>1611 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span><span id="rfc.iref.g.84"></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 1612 <a href="#header.connection" class="smpl">Connection-v</a> = 1#<a href="#header.connection" class="smpl">connection-token</a> 1607 1613 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> … … 1616 1622 of the response. For example, 1617 1623 </p> 1618 <div id="rfc.figure.u.4 3"></div><pre class="text"> Connection: close1624 <div id="rfc.figure.u.46"></div><pre class="text"> Connection: close 1619 1625 </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. 1620 1626 </p> … … 1632 1638 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. 1633 1639 </p> 1634 <div id="rfc.figure.u.4 4"></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>1640 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></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 1641 <a href="#header.content-length" class="smpl">Content-Length-v</a> = 1*<a href="#core.rules" class="smpl">DIGIT</a> 1636 1642 </pre><p id="rfc.section.8.2.p.3">An example is</p> 1637 <div id="rfc.figure.u.4 5"></div><pre class="text"> Content-Length: 34951643 <div id="rfc.figure.u.48"></div><pre class="text"> Content-Length: 3495 1638 1644 </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>. 1639 1645 </p> … … 1650 1656 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. 1651 1657 </p> 1652 <div id="rfc.figure.u.4 6"></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>1658 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></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 1659 <a href="#header.date" class="smpl">Date-v</a> = <a href="#full.date" class="smpl">HTTP-date</a> 1654 1660 </pre><p id="rfc.section.8.3.p.3">An example is</p> 1655 <div id="rfc.figure.u. 47"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT1661 <div id="rfc.figure.u.50"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 1656 1662 </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: 1657 1663 </p> … … 1689 1695 a single IP address. 1690 1696 </p> 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>1697 <div id="rfc.figure.u.51"></div><pre class="inline"><span id="rfc.iref.g.89"></span><span id="rfc.iref.g.90"></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 1698 <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> 1693 1699 </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 1694 1700 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: 1695 1701 </p> 1696 <div id="rfc.figure.u. 49"></div><pre class="text"> GET /pub/WWW/ HTTP/1.11702 <div id="rfc.figure.u.52"></div><pre class="text"> GET /pub/WWW/ HTTP/1.1 1697 1703 Host: www.example.org 1698 1704 </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 … … 1709 1715 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>). 1710 1716 </p> 1711 <div id="rfc.figure.u.5 0"></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>1717 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></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 1718 <a href="#header.te" class="smpl">TE-v</a> = #<a href="#header.te" class="smpl">t-codings</a> 1713 1719 <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> ] ) … … 1716 1722 </p> 1717 1723 <p id="rfc.section.8.5.p.4">Examples of its use are:</p> 1718 <div id="rfc.figure.u.5 1"></div><pre class="text"> TE: deflate1724 <div id="rfc.figure.u.54"></div><pre class="text"> TE: deflate 1719 1725 TE: 1720 1726 TE: trailers, deflate;q=0.5 … … 1735 1741 <li> 1736 1742 <p>If the transfer-coding being tested is one of the transfer-codings listed in the TE field, then it is acceptable unless it 1737 is accompanied by a qvalue of 0. (As defined in <a href="p3-payload.html#quality.values" title="Quality Values">Section 3.4</a> of <a href="#Part3" id="rfc.xref.Part3.11"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, a qvalue of 0 means "not acceptable.")1743 is accompanied by a qvalue of 0. (As defined in <a href="p3-payload.html#quality.values" title="Quality Values">Section 2.4</a> of <a href="#Part3" id="rfc.xref.Part3.10"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, a qvalue of 0 means "not acceptable.") 1738 1744 </p> 1739 1745 </li> … … 1753 1759 chunked transfer-coding. 1754 1760 </p> 1755 <div id="rfc.figure.u.5 2"></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>1761 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.94"></span><span id="rfc.iref.g.95"></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 1762 <a href="#header.trailer" class="smpl">Trailer-v</a> = 1#<a href="#message.headers" class="smpl">field-name</a> 1757 1763 </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 … … 1774 1780 transfer-coding is a property of the message, not of the entity. 1775 1781 </p> 1776 <div id="rfc.figure.u.5 3"></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>1782 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.96"></span><span id="rfc.iref.g.97"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" <a href="#rule.whitespace" class="smpl">OWS</a> 1777 1783 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> 1778 1784 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> = 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1779 1785 </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: 1780 1786 </p> 1781 <div id="rfc.figure.u.5 4"></div><pre class="text"> Transfer-Encoding: chunked1787 <div id="rfc.figure.u.57"></div><pre class="text"> Transfer-Encoding: chunked 1782 1788 </pre><p id="rfc.section.8.7.p.5">If multiple encodings have been applied to an entity, the transfer-codings <em class="bcp14">MUST</em> be listed in the order in which they were applied. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other entity-header fields not defined by this specification. 1783 1789 </p> … … 1789 1795 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. 1790 1796 </p> 1791 <div id="rfc.figure.u.5 5"></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>1797 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.98"></span><span id="rfc.iref.g.99"></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 1798 <a href="#header.upgrade" class="smpl">Upgrade-v</a> = 1#<a href="#product.tokens" class="smpl">product</a> 1793 1799 </pre><p id="rfc.section.8.8.p.3">For example,</p> 1794 <div id="rfc.figure.u.5 6"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x111800 <div id="rfc.figure.u.59"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 1795 1801 </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 1796 1802 protocol. It does so by allowing the client to advertise its desire to use another protocol, such as a later version of HTTP … … 1821 1827 of all senders along the request/response chain. 1822 1828 </p> 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>1829 <div id="rfc.figure.u.60"></div><pre class="inline"><span id="rfc.iref.g.100"></span><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> <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 1830 <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 1831 [ <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#rule.comment" class="smpl">comment</a> ] ) … … 1846 1852 server at www.example.com. The request received by www.example.com would then have the following Via header field: 1847 1853 </p> 1848 <div id="rfc.figure.u. 58"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1)1854 <div id="rfc.figure.u.61"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 1849 1855 </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. 1850 1856 </p> … … 1852 1858 For example, 1853 1859 </p> 1854 <div id="rfc.figure.u. 59"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy1860 <div id="rfc.figure.u.62"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 1855 1861 </pre><p id="rfc.section.8.9.p.12">could be collapsed to</p> 1856 <div id="rfc.figure.u.6 0"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy1862 <div id="rfc.figure.u.63"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 1857 1863 </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 1858 1864 by pseudonyms. Applications <em class="bcp14">MUST NOT</em> combine entries which have different received-protocol values. … … 2158 2164 <h2 id="rfc.references.1"><a href="#rfc.section.12.1" id="rfc.section.12.1">12.1</a> Normative References 2159 2165 </h2> 2160 <table summary="Normative References"> 2166 <table summary="Normative References"> 2161 2167 <tr> 2162 2168 <td class="reference"><b id="ISO-8859-1">[ISO-8859-1]</b></td> … … 2168 2174 <tr> 2169 2175 <td class="reference"><b id="Part2">[Part2]</b></td> 2170 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-latest">HTTP/1.1, part 2: Message Semantics</a>”, Internet-Draft draft-ietf-httpbis-p2-semantics-latest (work in progress), November 2008.2176 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-latest">HTTP/1.1, part 2: Message Semantics</a>”, Internet-Draft draft-ietf-httpbis-p2-semantics-latest (work in progress), December 2008. 2171 2177 </td> 2172 2178 </tr> 2173 2179 <tr> 2174 2180 <td class="reference"><b id="Part3">[Part3]</b></td> 2175 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-latest">HTTP/1.1, part 3: Message Payload and Content Negotiation</a>”, Internet-Draft draft-ietf-httpbis-p3-payload-latest (work in progress), November 2008.2181 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-latest">HTTP/1.1, part 3: Message Payload and Content Negotiation</a>”, Internet-Draft draft-ietf-httpbis-p3-payload-latest (work in progress), December 2008. 2176 2182 </td> 2177 2183 </tr> 2178 2184 <tr> 2179 2185 <td class="reference"><b id="Part5">[Part5]</b></td> 2180 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-latest">HTTP/1.1, part 5: Range Requests and Partial Responses</a>”, Internet-Draft draft-ietf-httpbis-p5-range-latest (work in progress), November 2008.2186 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-latest">HTTP/1.1, part 5: Range Requests and Partial Responses</a>”, Internet-Draft draft-ietf-httpbis-p5-range-latest (work in progress), December 2008. 2181 2187 </td> 2182 2188 </tr> 2183 2189 <tr> 2184 2190 <td class="reference"><b id="Part6">[Part6]</b></td> 2185 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-latest">HTTP/1.1, part 6: Caching</a>”, Internet-Draft draft-ietf-httpbis-p6-cache-latest (work in progress), November 2008.2191 <td class="top"><a title="Day Software">Fielding, R., Ed.</a>, <a title="One Laptop per Child">Gettys, J.</a>, <a title="Hewlett-Packard Company">Mogul, J.</a>, <a title="Microsoft Corporation">Frystyk, H.</a>, <a title="Adobe Systems, Incorporated">Masinter, L.</a>, <a title="Microsoft Corporation">Leach, P.</a>, <a title="World Wide Web Consortium">Berners-Lee, T.</a>, <a title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a title="greenbytes GmbH">J. F. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-latest">HTTP/1.1, part 6: Caching</a>”, Internet-Draft draft-ietf-httpbis-p6-cache-latest (work in progress), December 2008. 2186 2192 </td> 2187 2193 </tr> … … 2192 2198 </tr> 2193 2199 <tr> 2194 <td class="reference"><b id="RFC2047">[RFC2047]</b></td>2195 <td class="top"><a title="University of Tennessee">Moore, K.</a>, “<a href="http://tools.ietf.org/html/rfc2047">MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</a>”, RFC 2047, November 1996.2196 </td>2197 </tr>2198 <tr>2199 2200 <td class="reference"><b id="RFC2119">[RFC2119]</b></td> 2200 2201 <td class="top"><a title="Harvard University">Bradner, S.</a>, “<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>”, BCP 14, RFC 2119, March 1997. … … 2218 2219 <h2 id="rfc.references.2"><a href="#rfc.section.12.2" id="rfc.section.12.2">12.2</a> Informative References 2219 2220 </h2> 2220 <table summary="Informative References"> 2221 <table summary="Informative References"> 2221 2222 <tr> 2222 2223 <td class="reference"><b id="Kri2001">[Kri2001]</b></td> … … 2258 2259 <td class="reference"><b id="RFC1945">[RFC1945]</b></td> 2259 2260 <td class="top"><a title="MIT, Laboratory for Computer Science">Berners-Lee, T.</a>, <a title="University of California, Irvine, Department of Information and Computer Science">Fielding, R.T.</a>, and <a title="W3 Consortium, MIT Laboratory for Computer Science">H.F. Nielsen</a>, “<a href="http://tools.ietf.org/html/rfc1945">Hypertext Transfer Protocol -- HTTP/1.0</a>”, RFC 1945, May 1996. 2261 </td> 2262 </tr> 2263 <tr> 2264 <td class="reference"><b id="RFC2047">[RFC2047]</b></td> 2265 <td class="top"><a title="University of Tennessee">Moore, K.</a>, “<a href="http://tools.ietf.org/html/rfc2047">MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</a>”, RFC 2047, November 1996. 2260 2266 </td> 2261 2267 </tr> … … 2356 2362 can be interpreted unambiguously. 2357 2363 </p> 2358 <p id="rfc.section.A.p.2">Clients <em class="bcp14">SHOULD</em> be tolerant in parsing the Status-Line and servers tolerant when parsing the Request-Line. In particular, they <em class="bcp14">SHOULD</em> accept any amount of SP or HTABcharacters between fields, even though only a single SP is required.2364 <p id="rfc.section.A.p.2">Clients <em class="bcp14">SHOULD</em> be tolerant in parsing the Status-Line and servers tolerant when parsing the Request-Line. In particular, they <em class="bcp14">SHOULD</em> accept any amount of WSP characters between fields, even though only a single SP is required. 2359 2365 </p> 2360 2366 <p id="rfc.section.A.p.3">The line terminator for message-header fields is the sequence CRLF. However, we recommend that applications, when parsing … … 2362 2368 </p> 2363 2369 <p id="rfc.section.A.p.4">The character set of an entity-body <em class="bcp14">SHOULD</em> be labeled as the lowest common denominator of the character codes used within that body, with the exception that not labeling 2364 the entity is preferred over labeling the entity with the labels US-ASCII or ISO-8859-1. See <a href="#Part3" id="rfc.xref.Part3.1 2"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>.2370 the entity is preferred over labeling the entity with the labels US-ASCII or ISO-8859-1. See <a href="#Part3" id="rfc.xref.Part3.11"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 2365 2371 </p> 2366 2372 <p id="rfc.section.A.p.5">Additional rules for requirements on parsing and encoding of dates and other potential problems with date encodings include:</p> … … 2454 2460 <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 2455 2461 for transfer encoding that may not be self delimiting); it was important to straighten out exactly how message lengths are 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.1 3"><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>)2462 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.12"><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>) 2457 2463 </p> 2458 2464 <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 … … 2466 2472 </p> 2467 2473 <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>) 2474 <p id="rfc.section.B.4.p.1">Empty list elements in list productions have been deprecated. (<a href="#notation.abnf" title="ABNF Extension: #rule">Section 1.2.1</a>) 2475 </p> 2476 <p id="rfc.section.B.4.p.2">Rules about implicit linear whitespace between certain grammar productions have been removed; now it's only allowed when specifically 2477 pointed out in the ABNF. The NUL character is no longer allowed in comment and quoted-string text. The quoted-pair rule no 2478 longer allows escaping NUL, CR or LF. Non-ASCII content in header fields and reason phrase has been obsoleted and made opaque 2479 (the TEXT rule was removed) (<a href="#basic.rules" title="Basic Rules">Section 1.2.2</a>) 2480 </p> 2481 <p id="rfc.section.B.4.p.3">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 3.1</a>) 2482 </p> 2483 <p id="rfc.section.B.4.p.4">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>) 2484 </p> 2485 <p id="rfc.section.B.4.p.5">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>) 2486 </p> 2487 <p id="rfc.section.B.4.p.6">Require that invalid whitespace around field-names be rejected. (<a href="#message.headers" title="Message Headers">Section 4.2</a>) 2488 </p> 2489 <p id="rfc.section.B.4.p.7">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>) 2490 </p> 2491 <p id="rfc.section.B.4.p.8">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 2492 </p> 2482 2493 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="terminology" href="#terminology">Terminology</a></h1> 2483 2494 <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> 2495 <p id="rfc.section.C.p.2"> <span id="rfc.iref.c.3"></span> <dfn>cache</dfn> 2496 </p> 2497 <dl class="empty"> 2498 <dd>A program's local store of response messages and the subsystem that controls its message storage, retrieval, and deletion. 2499 A cache stores cacheable responses in order to reduce the response time and network bandwidth consumption on future, equivalent 2500 requests. Any client or server may include a cache, though a cache cannot be used by a server that is acting as a tunnel. 2501 </dd> 2502 </dl> 2503 <p id="rfc.section.C.p.3"> <span id="rfc.iref.c.4"></span> <dfn>cacheable</dfn> 2504 </p> 2505 <dl class="empty"> 2506 <dd>A response is cacheable if a cache is allowed to store a copy of the response message for use in answering subsequent requests. 2507 The rules for determining the cacheability of HTTP responses are defined in <a href="p6-cache.html#caching" title="Introduction">Section 1</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. Even if a resource is cacheable, there may be additional constraints on whether a cache can use the cached copy for a particular 2508 request. 2509 </dd> 2510 </dl> 2511 <p id="rfc.section.C.p.4"> <span id="rfc.iref.c.5"></span> <dfn>client</dfn> 2512 </p> 2513 <dl class="empty"> 2514 <dd>A program that establishes connections for the purpose of sending requests.</dd> 2515 </dl> 2516 <p id="rfc.section.C.p.5"> <span id="rfc.iref.c.6"></span> <dfn>connection</dfn> 2485 2517 </p> 2486 2518 <dl class="empty"> 2487 2519 <dd>A transport layer virtual circuit established between two programs for the purpose of communication.</dd> 2488 2520 </dl> 2489 <p id="rfc.section.C.p.3"> <span id="rfc.iref.m.4"></span> <dfn>message</dfn> 2521 <p id="rfc.section.C.p.6"> <span id="rfc.iref.c.7"></span> <dfn>content negotiation</dfn> 2522 </p> 2523 <dl class="empty"> 2524 <dd>The mechanism for selecting the appropriate representation when servicing a request, as described in <a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.13"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. The representation of entities in any response can be negotiated (including error responses). 2525 </dd> 2526 </dl> 2527 <p id="rfc.section.C.p.7"> <span id="rfc.iref.e.1"></span> <dfn>entity</dfn> 2528 </p> 2529 <dl class="empty"> 2530 <dd>The information transferred as the payload of a request or response. An entity consists of metainformation in the form of 2531 entity-header fields and content in the form of an entity-body, as described in <a href="p3-payload.html#entity" title="Entity">Section 3</a> of <a href="#Part3" id="rfc.xref.Part3.14"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 2532 </dd> 2533 </dl> 2534 <p id="rfc.section.C.p.8"> <span id="rfc.iref.g.107"></span> <dfn>gateway</dfn> 2535 </p> 2536 <dl class="empty"> 2537 <dd>A server which acts as an intermediary for some other server. Unlike a proxy, a gateway receives requests as if it were the 2538 origin server for the requested resource; the requesting client may not be aware that it is communicating with a gateway. 2539 </dd> 2540 </dl> 2541 <p id="rfc.section.C.p.9"> <span id="rfc.iref.i.1"></span> <span id="rfc.iref.o.1"></span> <dfn>inbound</dfn>/<dfn>outbound</dfn> 2542 </p> 2543 <dl class="empty"> 2544 <dd>Inbound and outbound refer to the request and response paths for messages: "inbound" means "traveling toward the origin server", 2545 and "outbound" means "traveling toward the user agent" 2546 </dd> 2547 </dl> 2548 <p id="rfc.section.C.p.10"> <span id="rfc.iref.m.4"></span> <dfn>message</dfn> 2490 2549 </p> 2491 2550 <dl class="empty"> … … 2493 2552 </dd> 2494 2553 </dl> 2495 <p id="rfc.section.C.p.4"> <span id="rfc.iref.r.1"></span> <dfn>request</dfn> 2496 </p> 2497 <dl class="empty"> 2498 <dd>An HTTP request message, as defined in <a href="#request" title="Request">Section 5</a>. 2499 </dd> 2500 </dl> 2501 <p id="rfc.section.C.p.5"> <span id="rfc.iref.r.2"></span> <dfn>response</dfn> 2502 </p> 2503 <dl class="empty"> 2504 <dd>An HTTP response message, as defined in <a href="#response" title="Response">Section 6</a>. 2505 </dd> 2506 </dl> 2507 <p id="rfc.section.C.p.6"> <span id="rfc.iref.r.3"></span> <dfn>resource</dfn> 2508 </p> 2509 <dl class="empty"> 2510 <dd>A network data object or service that can be identified by a URI, as defined in <a href="#uri" title="Uniform Resource Identifiers">Section 2.1</a>. Resources may be available in multiple representations (e.g. multiple languages, data formats, size, and resolutions) or 2511 vary in other ways. 2512 </dd> 2513 </dl> 2514 <p id="rfc.section.C.p.7"> <span id="rfc.iref.e.1"></span> <dfn>entity</dfn> 2515 </p> 2516 <dl class="empty"> 2517 <dd>The information transferred as the payload of a request or response. An entity consists of metainformation in the form of 2518 entity-header fields and content in the form of an entity-body, as described in <a href="p3-payload.html#entity" title="Entity">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.14"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 2519 </dd> 2520 </dl> 2521 <p id="rfc.section.C.p.8"> <span id="rfc.iref.r.4"></span> <dfn>representation</dfn> 2522 </p> 2523 <dl class="empty"> 2524 <dd>An entity included with a response that is subject to content negotiation, as described in <a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 5</a> of <a href="#Part3" id="rfc.xref.Part3.15"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. There may exist multiple representations associated with a particular response status. 2525 </dd> 2526 </dl> 2527 <p id="rfc.section.C.p.9"> <span id="rfc.iref.c.4"></span> <dfn>content negotiation</dfn> 2528 </p> 2529 <dl class="empty"> 2530 <dd>The mechanism for selecting the appropriate representation when servicing a request, as described in <a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 5</a> of <a href="#Part3" id="rfc.xref.Part3.16"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. The representation of entities in any response can be negotiated (including error responses). 2531 </dd> 2532 </dl> 2533 <p id="rfc.section.C.p.10"> <span id="rfc.iref.v.2"></span> <dfn>variant</dfn> 2534 </p> 2535 <dl class="empty"> 2536 <dd>A resource may have one, or more than one, representation(s) associated with it at any given instant. Each of these representations 2537 is termed a `variant'. Use of the term `variant' does not necessarily imply that the resource is subject to content negotiation. 2538 </dd> 2539 </dl> 2540 <p id="rfc.section.C.p.11"> <span id="rfc.iref.c.5"></span> <dfn>client</dfn> 2541 </p> 2542 <dl class="empty"> 2543 <dd>A program that establishes connections for the purpose of sending requests.</dd> 2544 </dl> 2545 <p id="rfc.section.C.p.12"> <span id="rfc.iref.u.4"></span> <dfn>user agent</dfn> 2546 </p> 2547 <dl class="empty"> 2548 <dd>The client which initiates a request. These are often browsers, editors, spiders (web-traversing robots), or other end user 2549 tools. 2550 </dd> 2551 </dl> 2552 <p id="rfc.section.C.p.13"> <span id="rfc.iref.s.1"></span> <dfn>server</dfn> 2553 </p> 2554 <dl class="empty"> 2555 <dd>An application program that accepts connections in order to service requests by sending back responses. Any given program 2556 may be capable of being both a client and a server; our use of these terms refers only to the role being performed by the 2557 program for a particular connection, rather than to the program's capabilities in general. Likewise, any server may act as 2558 an origin server, proxy, gateway, or tunnel, switching behavior based on the nature of each request. 2559 </dd> 2560 </dl> 2561 <p id="rfc.section.C.p.14"> <span id="rfc.iref.o.1"></span> <dfn>origin server</dfn> 2554 <p id="rfc.section.C.p.11"> <span id="rfc.iref.o.2"></span> <dfn>origin server</dfn> 2562 2555 </p> 2563 2556 <dl class="empty"> 2564 2557 <dd>The server on which a given resource resides or is to be created.</dd> 2565 2558 </dl> 2566 <p id="rfc.section.C.p.1 5"> <span id="rfc.iref.p.1"></span> <dfn>proxy</dfn>2559 <p id="rfc.section.C.p.12"> <span id="rfc.iref.p.1"></span> <dfn>proxy</dfn> 2567 2560 </p> 2568 2561 <dl class="empty"> … … 2575 2568 </dd> 2576 2569 </dl> 2577 <p id="rfc.section.C.p.1 6"> <span id="rfc.iref.g.108"></span> <dfn>gateway</dfn>2570 <p id="rfc.section.C.p.13"> <span id="rfc.iref.r.1"></span> <dfn>request</dfn> 2578 2571 </p> 2579 2572 <dl class="empty"> 2580 <dd>A server which acts as an intermediary for some other server. Unlike a proxy, a gateway receives requests as if it were the 2581 origin server for the requested resource; the requesting client may not be aware that it is communicating with a gateway. 2573 <dd>An HTTP request message, as defined in <a href="#request" title="Request">Section 5</a>. 2582 2574 </dd> 2583 2575 </dl> 2584 <p id="rfc.section.C.p.17"> <span id="rfc.iref.t.4"></span> <dfn>tunnel</dfn> 2576 <p id="rfc.section.C.p.14"> <span id="rfc.iref.r.2"></span> <dfn>resource</dfn> 2577 </p> 2578 <dl class="empty"> 2579 <dd>A network data object or service that can be identified by a URI, as defined in <a href="#uri" title="Uniform Resource Identifiers">Section 2.1</a>. Resources may be available in multiple representations (e.g. multiple languages, data formats, size, and resolutions) or 2580 vary in other ways. 2581 </dd> 2582 </dl> 2583 <p id="rfc.section.C.p.15"> <span id="rfc.iref.r.3"></span> <dfn>response</dfn> 2584 </p> 2585 <dl class="empty"> 2586 <dd>An HTTP response message, as defined in <a href="#response" title="Response">Section 6</a>. 2587 </dd> 2588 </dl> 2589 <p id="rfc.section.C.p.16"> <span id="rfc.iref.r.4"></span> <dfn>representation</dfn> 2590 </p> 2591 <dl class="empty"> 2592 <dd>An entity included with a response that is subject to content negotiation, as described in <a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.15"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. There may exist multiple representations associated with a particular response status. 2593 </dd> 2594 </dl> 2595 <p id="rfc.section.C.p.17"> <span id="rfc.iref.s.1"></span> <dfn>server</dfn> 2596 </p> 2597 <dl class="empty"> 2598 <dd>An application program that accepts connections in order to service requests by sending back responses. Any given program 2599 may be capable of being both a client and a server; our use of these terms refers only to the role being performed by the 2600 program for a particular connection, rather than to the program's capabilities in general. Likewise, any server may act as 2601 an origin server, proxy, gateway, or tunnel, switching behavior based on the nature of each request. 2602 </dd> 2603 </dl> 2604 <p id="rfc.section.C.p.18"> <span id="rfc.iref.t.4"></span> <dfn>tunnel</dfn> 2585 2605 </p> 2586 2606 <dl class="empty"> … … 2590 2610 </dd> 2591 2611 </dl> 2592 <p id="rfc.section.C.p.18"> <span id="rfc.iref.c.6"></span> <dfn>cache</dfn> 2593 </p> 2594 <dl class="empty"> 2595 <dd>A program's local store of response messages and the subsystem that controls its message storage, retrieval, and deletion. 2596 A cache stores cacheable responses in order to reduce the response time and network bandwidth consumption on future, equivalent 2597 requests. Any client or server may include a cache, though a cache cannot be used by a server that is acting as a tunnel. 2598 </dd> 2599 </dl> 2600 <p id="rfc.section.C.p.19"> <span id="rfc.iref.c.7"></span> <dfn>cacheable</dfn> 2601 </p> 2602 <dl class="empty"> 2603 <dd>A response is cacheable if a cache is allowed to store a copy of the response message for use in answering subsequent requests. 2604 The rules for determining the cacheability of HTTP responses are defined in <a href="p6-cache.html#caching" title="Introduction">Section 1</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. Even if a resource is cacheable, there may be additional constraints on whether a cache can use the cached copy for a particular 2605 request. 2606 </dd> 2607 </dl> 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> 2612 <p id="rfc.section.C.p.19"> <span id="rfc.iref.u.4"></span> <span id="rfc.iref.d.2"></span> <dfn>upstream</dfn>/<dfn>downstream</dfn> 2609 2613 </p> 2610 2614 <dl class="empty"> 2611 2615 <dd>Upstream and downstream describe the flow of a message: all messages flow from upstream to downstream.</dd> 2612 2616 </dl> 2613 <p id="rfc.section.C.p.2 1"> <span id="rfc.iref.i.2"></span> <span id="rfc.iref.o.2"></span> <dfn>inbound</dfn>/<dfn>outbound</dfn>2617 <p id="rfc.section.C.p.20"> <span id="rfc.iref.u.5"></span> <dfn>user agent</dfn> 2614 2618 </p> 2615 2619 <dl class="empty"> 2616 <dd> Inbound and outbound refer to the request and response paths for messages: "inbound" means "traveling toward the origin server",2617 and "outbound" means "traveling toward the user agent"2620 <dd>The client which initiates a request. These are often browsers, editors, spiders (web-traversing robots), or other end user 2621 tools. 2618 2622 </dd> 2619 2623 </dl> 2620 <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 2624 <p id="rfc.section.C.p.21"> <span id="rfc.iref.v.2"></span> <dfn>variant</dfn> 2625 </p> 2626 <dl class="empty"> 2627 <dd>A resource may have one, or more than one, representation(s) associated with it at any given instant. Each of these representations 2628 is termed a `variant'. Use of the term `variant' does not necessarily imply that the resource is subject to content negotiation. 2629 </dd> 2630 </dl> 2631 <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 2632 <div id="rfc.figure.u.64"></div> <pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS 2633 2634 <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, defined in [Part6], Section 15.4> 2635 <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *chunk last-chunk trailer-part CRLF 2636 <a href="#header.connection" class="smpl">Connection</a> = "Connection:" OWS Connection-v 2637 <a href="#header.connection" class="smpl">Connection-v</a> = *( "," OWS ) connection-token *( OWS "," [ OWS 2638 connection-token ] ) 2639 <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length:" OWS 1*Content-Length-v 2640 <a href="#header.content-length" class="smpl">Content-Length-v</a> = 1*DIGIT 2641 2642 <a href="#header.date" class="smpl">Date</a> = "Date:" OWS Date-v 2643 <a href="#header.date" class="smpl">Date-v</a> = HTTP-date 2644 2645 GMT = %x47.4D.54 2646 2647 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 2648 <a href="#http.version" class="smpl">HTTP-Version</a> = HTTP-Prot-Name "/" 1*DIGIT "." 1*DIGIT 2649 <a href="#full.date" class="smpl">HTTP-date</a> = rfc1123-date / obsolete-date 2650 <a href="#message.types" class="smpl">HTTP-message</a> = Request / Response 2651 <a href="#header.host" class="smpl">Host</a> = "Host:" OWS Host-v 2652 <a href="#header.host" class="smpl">Host-v</a> = uri-host [ ":" port ] 2653 2654 <a href="#method" class="smpl">Method</a> = token 2655 2656 <a href="#rule.whitespace" class="smpl">OWS</a> = *( [ obs-fold ] WSP ) 2657 2658 <a href="#abnf.dependencies" class="smpl">Pragma</a> = <Pragma, defined in [Part6], Section 15.4> 2659 2660 <a href="#rule.whitespace" class="smpl">RWS</a> = 1*( [ obs-fold ] WSP ) 2661 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( WSP / VCHAR / obs-text ) 2662 <a href="#request" class="smpl">Request</a> = Request-Line *( ( general-header / request-header / 2663 entity-header ) CRLF ) CRLF [ message-body ] 2664 <a href="#request-line" class="smpl">Request-Line</a> = Method SP request-target SP HTTP-Version CRLF 2665 <a href="#response" class="smpl">Response</a> = Status-Line *( ( general-header / response-header / 2666 entity-header ) CRLF ) CRLF [ message-body ] 2667 2668 <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3DIGIT 2669 <a href="#status-line" class="smpl">Status-Line</a> = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 2670 2671 <a href="#header.te" class="smpl">TE</a> = "TE:" OWS TE-v 2672 <a href="#header.te" class="smpl">TE-v</a> = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] 2673 <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer:" OWS Trailer-v 2674 <a href="#header.trailer" class="smpl">Trailer-v</a> = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) 2675 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding:" OWS Transfer-Encoding-v 2676 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> = *( "," OWS ) transfer-coding *( OWS "," [ OWS 2677 transfer-coding ] ) 2678 2679 <a href="#uri" class="smpl">URI</a> = <URI, defined in [RFC3986], Section 3> 2680 <a href="#uri" class="smpl">URI-reference</a> = <URI-reference, defined in [RFC3986], Section 4.1> 2681 <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade:" OWS Upgrade-v 2682 <a href="#header.upgrade" class="smpl">Upgrade-v</a> = *( "," OWS ) product *( OWS "," [ OWS product ] ) 2683 2684 <a href="#header.via" class="smpl">Via</a> = "Via:" OWS Via-v 2685 <a href="#header.via" class="smpl">Via-v</a> = *( "," OWS ) received-protocol RWS received-by [ RWS comment 2686 ] *( OWS "," [ OWS received-protocol RWS received-by [ RWS comment ] 2687 ] ) 2688 2689 <a href="#abnf.dependencies" class="smpl">Warning</a> = <Warning, defined in [Part6], Section 15.6> 2690 2691 <a href="#uri" class="smpl">absolute-URI</a> = <absolute-URI, defined in [RFC3986], Section 4.3> 2692 <a href="#abnf.dependencies" class="smpl">accept-params</a> = <accept-params, defined in [Part3], Section 5.1> 2693 <a href="#full.date" class="smpl">asctime-date</a> = wkday SP date3 SP time SP 4DIGIT 2694 <a href="#rule.parameter" class="smpl">attribute</a> = token 2695 <a href="#uri" class="smpl">authority</a> = <authority, defined in [RFC3986], Section 3.2> 2696 2697 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = chunk-size *WSP [ chunk-ext ] CRLF chunk-data CRLF 2698 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> = 1*OCTET 2699 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> = *( ";" *WSP chunk-ext-name [ "=" chunk-ext-val ] *WSP ) 2700 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> = token 2701 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> = token / quoted-string 2702 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*HEXDIG 2703 <a href="#rule.comment" class="smpl">comment</a> = "(" *( ctext / quoted-pair / comment ) ")" 2704 <a href="#header.connection" class="smpl">connection-token</a> = token 2705 <a href="#rule.comment" class="smpl">ctext</a> = *( OWS / %x21-27 / %x2A-7E / obs-text ) 2706 2707 <a href="#full.date" class="smpl">date1</a> = 2DIGIT SP month SP 4DIGIT 2708 <a href="#full.date" class="smpl">date2</a> = 2DIGIT "-" month "-" 2DIGIT 2709 <a href="#full.date" class="smpl">date3</a> = month SP ( 2DIGIT / ( SP DIGIT ) ) 2710 2711 <a href="#abnf.dependencies" class="smpl">entity-body</a> = <entity-body, defined in [Part3], Section 3.2> 2712 <a href="#abnf.dependencies" class="smpl">entity-header</a> = <entity-header, defined in [Part3], Section 3.1> 2713 2714 <a href="#message.headers" class="smpl">field-content</a> = *( WSP / VCHAR / obs-text ) 2715 <a href="#message.headers" class="smpl">field-name</a> = token 2716 <a href="#message.headers" class="smpl">field-value</a> = *( field-content / OWS ) 2717 <a href="#uri" class="smpl">fragment</a> = <fragment, defined in [RFC3986], Section 3.5> 2718 2719 <a href="#general.header.fields" class="smpl">general-header</a> = Cache-Control / Connection / Date / Pragma / Trailer 2720 / Transfer-Encoding / Upgrade / Via / Warning 2721 <a href="#message.types" class="smpl">generic-message</a> = start-line *( message-header CRLF ) CRLF [ 2722 message-body ] 2723 2724 <a href="#http.uri" class="smpl">http-URI</a> = "http://" authority path-abempty [ "?" query ] 2725 2726 l-Fri = %x46.72.69.64.61.79 2727 l-Mon = %x4D.6F.6E.64.61.79 2728 l-Sat = %x53.61.74.75.72.64.61.79 2729 l-Sun = %x53.75.6E.64.61.79 2730 l-Thu = %x54.68.75.72.73.64.61.79 2731 l-Tue = %x54.75.65.73.64.61.79 2732 l-Wed = %x57.65.64.6E.65.73.64.61.79 2733 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*"0" *WSP [ chunk-ext ] CRLF 2734 2735 <a href="#message.body" class="smpl">message-body</a> = entity-body / <entity-body encoded as per 2736 Transfer-Encoding> 2737 <a href="#message.headers" class="smpl">message-header</a> = field-name ":" OWS [ field-value ] OWS 2738 <a href="#full.date" class="smpl">month</a> = s-Jan / s-Feb / s-Mar / s-Apr / s-May / s-Jun / s-Jul / s-Aug 2739 / s-Sep / s-Oct / s-Nov / s-Dec 2740 2741 <a href="#rule.whitespace" class="smpl">obs-fold</a> = CRLF 2742 <a href="#rule.quoted-string" class="smpl">obs-text</a> = %x80-FF 2743 <a href="#full.date" class="smpl">obsolete-date</a> = rfc850-date / asctime-date 2744 2745 <a href="#transfer.codings" class="smpl">parameter</a> = attribute BWS "=" BWS value 2746 <a href="#uri" class="smpl">partial-URI</a> = relative-part [ "?" query ] 2747 <a href="#uri" class="smpl">path-abempty</a> = <path-abempty, defined in [RFC3986], Section 3.3> 2748 <a href="#uri" class="smpl">path-absolute</a> = <path-absolute, defined in [RFC3986], Section 3.3> 2749 <a href="#uri" class="smpl">port</a> = <port, defined in [RFC3986], Section 3.2.3> 2750 <a href="#product.tokens" class="smpl">product</a> = token [ "/" product-version ] 2751 <a href="#product.tokens" class="smpl">product-version</a> = token 2752 <a href="#header.via" class="smpl">protocol-name</a> = token 2753 <a href="#header.via" class="smpl">protocol-version</a> = token 2754 <a href="#header.via" class="smpl">pseudonym</a> = token 2755 2756 <a href="#rule.quoted-string" class="smpl">qdtext</a> = *( OWS / "!" / %x23-5B / %x5D-7E / obs-text ) 2757 <a href="#uri" class="smpl">query</a> = <query, defined in [RFC3986], Section 3.4> 2758 <a href="#rule.quoted-pair" class="smpl">quoted-pair</a> = "\" quoted-text 2759 <a href="#rule.quoted-string" class="smpl">quoted-string</a> = DQUOTE *( qdtext / quoted-pair ) DQUOTE 2760 <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 / %x0B-0C / %x0E-FF 2761 2762 <a href="#header.via" class="smpl">received-by</a> = ( uri-host [ ":" port ] ) / pseudonym 2763 <a href="#header.via" class="smpl">received-protocol</a> = [ protocol-name "/" ] protocol-version 2764 <a href="#uri" class="smpl">relative-part</a> = <relative-part, defined in [RFC3986], Section 4.2> 2765 <a href="#abnf.dependencies" class="smpl">request-header</a> = <request-header, defined in [Part2], Section 3> 2766 <a href="#request-target" class="smpl">request-target</a> = "*" / absolute-URI / ( path-absolute [ "?" query ] ) 2767 / authority 2768 <a href="#abnf.dependencies" class="smpl">response-header</a> = <response-header, defined in [Part2], Section 5> 2769 <a href="#full.date" class="smpl">rfc1123-date</a> = wkday "," SP date1 SP time SP GMT 2770 <a href="#full.date" class="smpl">rfc850-date</a> = weekday "," SP date2 SP time SP GMT 2771 2772 s-Apr = %x41.70.72 2773 s-Aug = %x41.75.67 2774 s-Dec = %x44.65.63 2775 s-Feb = %x46.65.62 2776 s-Fri = %x46.72.69 2777 s-Jan = %x4A.61.6E 2778 s-Jul = %x4A.75.6C 2779 s-Jun = %x4A.75.6E 2780 s-Mar = %x4D.61.72 2781 s-May = %x4D.61.79 2782 s-Mon = %x4D.6F.6E 2783 s-Nov = %x4E.6F.76 2784 s-Oct = %x4F.63.74 2785 s-Sat = %x53.61.74 2786 s-Sep = %x53.65.70 2787 s-Sun = %x53.75.6E 2788 s-Thu = %x54.68.75 2789 s-Tue = %x54.75.65 2790 s-Wed = %x57.65.64 2791 <a href="#message.types" class="smpl">start-line</a> = Request-Line / Status-Line 2792 2793 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( transfer-extension [ accept-params ] ) 2794 <a href="#rule.token.separators" class="smpl">tchar</a> = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / 2795 "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA 2796 <a href="#full.date" class="smpl">time</a> = 2DIGIT ":" 2DIGIT ":" 2DIGIT 2797 <a href="#rule.token.separators" class="smpl">token</a> = 1*tchar 2798 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> = *( entity-header CRLF ) 2799 <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / transfer-extension 2800 <a href="#transfer.codings" class="smpl">transfer-extension</a> = token *( OWS ";" OWS parameter ) 2801 2802 <a href="#uri" class="smpl">uri-host</a> = <host, defined in [RFC3986], Section 3.2.2> 2803 2804 <a href="#rule.parameter" class="smpl">value</a> = token / quoted-string 2805 2806 <a href="#full.date" class="smpl">weekday</a> = l-Mon / l-Tue / l-Wed / l-Thu / l-Fri / l-Sat / l-Sun 2807 <a href="#full.date" class="smpl">wkday</a> = s-Mon / s-Tue / s-Wed / s-Thu / s-Fri / s-Sat / s-Sun 2808 2809 ; Chunked-Body defined but not used 2810 ; Content-Length defined but not used 2811 ; HTTP-message defined but not used 2812 ; Host defined but not used 2813 ; TE defined but not used 2814 ; URI defined but not used 2815 ; URI-reference defined but not used 2816 ; fragment defined but not used 2817 ; generic-message defined but not used 2818 ; http-URI defined but not used 2819 ; partial-URI defined but not used 2820 2821 2822 </pre> <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> 2823 <h2 id="rfc.section.E.1"><a href="#rfc.section.E.1">E.1</a> Since RFC2616 2622 2824 </h2> 2623 <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-002825 <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>. 2826 </p> 2827 <h2 id="rfc.section.E.2"><a href="#rfc.section.E.2">E.2</a> Since draft-ietf-httpbis-p1-messaging-00 2626 2828 </h2> 2627 <p id="rfc.section. D.2.p.1">Closed issues: </p>2829 <p id="rfc.section.E.2.p.1">Closed issues: </p> 2628 2830 <ul> 2629 2831 <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>>) … … 2666 2868 </li> 2667 2869 </ul> 2668 <p id="rfc.section. D.2.p.2">Other changes: </p>2870 <p id="rfc.section.E.2.p.2">Other changes: </p> 2669 2871 <ul> 2670 2872 <li>Update media type registrations to use RFC4288 template.</li> 2671 <li>Use names of RFC4234 core rules DQUOTE and HTAB, fix broken ABNF for chunk-data (work in progress on <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>)2873 <li>Use names of RFC4234 core rules DQUOTE and WSP, fix broken ABNF for chunk-data (work in progress on <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>) 2672 2874 </li> 2673 2875 </ul> 2674 <h2 id="rfc.section. D.3"><a href="#rfc.section.D.3">D.3</a> Since draft-ietf-httpbis-p1-messaging-012876 <h2 id="rfc.section.E.3"><a href="#rfc.section.E.3">E.3</a> Since draft-ietf-httpbis-p1-messaging-01 2675 2877 </h2> 2676 <p id="rfc.section. D.3.p.1">Closed issues: </p>2878 <p id="rfc.section.E.3.p.1">Closed issues: </p> 2677 2879 <ul> 2678 2880 <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" … … 2685 2887 </li> 2686 2888 </ul> 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>>):2889 <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>>): 2688 2890 </p> 2689 2891 <ul> … … 2693 2895 -- these will have to be updated when switching over to RFC3986. 2694 2896 </li> 2695 <li>Synchronize core rules with RFC5234 (this includes a change to CHAR which now excludes NUL).</li>2897 <li>Synchronize core rules with RFC5234.</li> 2696 2898 <li>Get rid of prose rules that span multiple lines.</li> 2697 2899 <li>Get rid of unused rules LOALPHA and UPALPHA.</li> … … 2700 2902 <li>Rewrite prose rule "token" in terms of "tchar", rewrite prose rule "TEXT".</li> 2701 2903 </ul> 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>2904 <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> 2905 <p id="rfc.section.E.4.p.1">Closed issues: </p> 2704 2906 <ul> 2705 2907 <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" … … 2708 2910 </li> 2709 2911 </ul> 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>>):2912 <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>>): 2711 2913 </p> 2712 2914 <ul> 2713 2915 <li>Reference RFC 3984, and update header registrations for headers defined in this document.</li> 2714 2916 </ul> 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>>):2917 <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>>): 2716 2918 </p> 2717 2919 <ul> 2718 2920 <li>Replace string literals when the string really is case-sensitive (HTTP-Version).</li> 2719 2921 </ul> 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>2922 <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> 2923 <p id="rfc.section.E.5.p.1">Closed issues: </p> 2722 2924 <ul> 2723 2925 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/28">http://tools.ietf.org/wg/httpbis/trac/ticket/28</a>>: "Connection closing" … … 2734 2936 </li> 2735 2937 </ul> 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>>):2938 <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>>): 2737 2939 </p> 2738 2940 <ul> … … 2740 2942 <li>Replace HEX by HEXDIG for future consistence with RFC 5234's core rules.</li> 2741 2943 </ul> 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>2944 <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> 2945 <p id="rfc.section.E.6.p.1">Closed issues: </p> 2744 2946 <ul> 2745 2947 <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" … … 2748 2950 </li> 2749 2951 </ul> 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>>):2952 <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>>): 2751 2953 </p> 2752 2954 <ul> … … 2757 2959 <li>Rewrite ABNFs to spell out whitespace rules, factor out header value format definitions.</li> 2758 2960 </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>2961 <h2 id="rfc.section.E.7"><a href="#rfc.section.E.7">E.7</a> <a id="changes.since.05" href="#changes.since.05">Since draft-ietf-httpbis-p1-messaging-05</a></h2> 2962 <p id="rfc.section.E.7.p.1">Closed issues: </p> 2761 2963 <ul> 2964 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/30">http://tools.ietf.org/wg/httpbis/trac/ticket/30</a>>: "Header LWS" 2965 </li> 2966 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/52">http://tools.ietf.org/wg/httpbis/trac/ticket/52</a>>: "Sort 1.3 Terminology" 2967 </li> 2968 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/63">http://tools.ietf.org/wg/httpbis/trac/ticket/63</a>>: "RFC2047 encoded words" 2969 </li> 2970 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/74">http://tools.ietf.org/wg/httpbis/trac/ticket/74</a>>: "Character Encodings in TEXT" 2971 </li> 2972 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/77">http://tools.ietf.org/wg/httpbis/trac/ticket/77</a>>: "Line Folding" 2973 </li> 2974 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/83">http://tools.ietf.org/wg/httpbis/trac/ticket/83</a>>: "OPTIONS * and proxies" 2975 </li> 2976 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/94">http://tools.ietf.org/wg/httpbis/trac/ticket/94</a>>: "Reason-Phrase BNF" 2977 </li> 2978 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/111">http://tools.ietf.org/wg/httpbis/trac/ticket/111</a>>: "Use of TEXT" 2979 </li> 2762 2980 <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 2981 </li> 2764 2982 <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 2983 </li> 2984 </ul> 2985 <p id="rfc.section.E.7.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>>): 2986 </p> 2987 <ul> 2988 <li>Rewrite definition of list rules, deprecate empty list elements.</li> 2989 <li>Add appendix containing collected and expanded ABNF.</li> 2990 </ul> 2991 <p id="rfc.section.E.7.p.3">Other changes: </p> 2992 <ul> 2993 <li>Rewrite introduction; add mostly new Architecture Section.</li> 2766 2994 </ul> 2767 2995 <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1> … … 2799 3027 </li> 2800 3028 <li class="indline0"><a id="rfc.index.C" href="#rfc.index.C"><b>C</b></a><ul class="ind"> 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>3029 <li class="indline1">cache <a class="iref" href="#rfc.iref.c.3">C</a></li> 3030 <li class="indline1">cacheable <a class="iref" href="#rfc.iref.c.4">C</a></li> 2803 3031 <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>3032 <li class="indline1">connection <a class="iref" href="#rfc.iref.c.6">C</a></li> 2805 3033 <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>3034 <li class="indline1">content negotiation <a class="iref" href="#rfc.iref.c.7">C</a></li> 2807 3035 <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> 2808 3036 </ul> … … 2818 3046 </li> 2819 3047 <li class="indline0"><a id="rfc.index.G" href="#rfc.index.G"><b>G</b></a><ul class="ind"> 2820 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g.10 8">C</a></li>3048 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g.107">C</a></li> 2821 3049 <li class="indline1"><tt>Grammar</tt> 2822 3050 <ul class="ind"> 2823 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.2 7"><b>2.1</b></a></li>3051 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.24"><b>2.1</b></a></li> 2824 3052 <li class="indline1">ALPHA <a class="iref" href="#rfc.iref.g.1"><b>1.2</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> 2829 <li class="indline1">CHAR <a class="iref" href="#rfc.iref.g.2"><b>1.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> 2843 <li class="indline1">CR <a class="iref" href="#rfc.iref.g.3"><b>1.2</b></a></li> 2844 <li class="indline1">CRLF <a class="iref" href="#rfc.iref.g.4"><b>1.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> 2846 <li class="indline1">CTL <a class="iref" href="#rfc.iref.g.5"><b>1.2</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> 2852 <li class="indline1">DIGIT <a class="iref" href="#rfc.iref.g.6"><b>1.2</b></a></li> 2853 <li class="indline1">DQUOTE <a class="iref" href="#rfc.iref.g.7"><b>1.2</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> 2861 <li class="indline1">HEXDIG <a class="iref" href="#rfc.iref.g.8"><b>1.2</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> 2864 <li class="indline1">HTAB <a class="iref" href="#rfc.iref.g.9"><b>1.2</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> 2871 <li class="indline1">LF <a class="iref" href="#rfc.iref.g.10"><b>1.2</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> 2877 <li class="indline1">OCTET <a class="iref" href="#rfc.iref.g.11"><b>1.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> 2902 <li class="indline1">SP <a class="iref" href="#rfc.iref.g.12"><b>1.2</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> 2929 <li class="indline1">WSP <a class="iref" href="#rfc.iref.g.13"><b>1.2</b></a></li> 3053 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.2.1</b></a></li> 3054 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.3</b></a></li> 3055 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.25"><b>2.1</b></a></li> 3056 <li class="indline1"><tt>BWS</tt> <a class="iref" href="#rfc.iref.g.15"><b>1.2.2</b></a></li> 3057 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.51"><b>3.3.1</b></a></li> 3058 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.57"><b>3.3.1</b></a></li> 3059 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.54"><b>3.3.1</b></a></li> 3060 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.55"><b>3.3.1</b></a></li> 3061 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.56"><b>3.3.1</b></a></li> 3062 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.52"><b>3.3.1</b></a></li> 3063 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.50"><b>3.3.1</b></a></li> 3064 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.68"><b>4.2</b></a></li> 3065 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.82"><b>8.1</b></a></li> 3066 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.84"><b>8.1</b></a></li> 3067 <li class="indline1"><tt>Connection-v</tt> <a class="iref" href="#rfc.iref.g.83"><b>8.1</b></a></li> 3068 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.85"><b>8.2</b></a></li> 3069 <li class="indline1"><tt>Content-Length-v</tt> <a class="iref" href="#rfc.iref.g.86"><b>8.2</b></a></li> 3070 <li class="indline1">CR <a class="iref" href="#rfc.iref.g.2"><b>1.2</b></a></li> 3071 <li class="indline1">CRLF <a class="iref" href="#rfc.iref.g.3"><b>1.2</b></a></li> 3072 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.69"><b>4.2</b></a></li> 3073 <li class="indline1">CTL <a class="iref" href="#rfc.iref.g.4"><b>1.2</b></a></li> 3074 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.87"><b>8.3</b></a></li> 3075 <li class="indline1"><tt>Date-v</tt> <a class="iref" href="#rfc.iref.g.88"><b>8.3</b></a></li> 3076 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.2.1</b></a></li> 3077 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.2.1</b></a></li> 3078 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.2.1</b></a></li> 3079 <li class="indline1">DIGIT <a class="iref" href="#rfc.iref.g.5"><b>1.2</b></a></li> 3080 <li class="indline1">DQUOTE <a class="iref" href="#rfc.iref.g.6"><b>1.2</b></a></li> 3081 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.80"><b>6.1.1</b></a></li> 3082 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.75"><b>5.1.1</b></a></li> 3083 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.67"><b>4.2</b></a></li> 3084 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.65"><b>4.2</b></a></li> 3085 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.66"><b>4.2</b></a></li> 3086 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.71"><b>4.5</b></a></li> 3087 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.62"><b>4.1</b></a></li> 3088 <li class="indline1">HEXDIG <a class="iref" href="#rfc.iref.g.7"><b>1.2</b></a></li> 3089 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.89"><b>8.4</b></a></li> 3090 <li class="indline1"><tt>Host-v</tt> <a class="iref" href="#rfc.iref.g.90"><b>8.4</b></a></li> 3091 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.33"><b>3.2.1</b></a></li> 3092 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.61"><b>4.1</b></a></li> 3093 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.32"><b>3.1</b></a></li> 3094 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.30"><b>2.1.1</b></a></li> 3095 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.31"><b>3.1</b></a></li> 3096 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.53"><b>3.3.1</b></a></li> 3097 <li class="indline1">LF <a class="iref" href="#rfc.iref.g.8"><b>1.2</b></a></li> 3098 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.70"><b>4.3</b></a></li> 3099 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.64"><b>4.2</b></a></li> 3100 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.74"><b>5.1.1</b></a></li> 3101 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.2.1</b></a></li> 3102 <li class="indline1"><tt>obs-text</tt> <a class="iref" href="#rfc.iref.g.20"><b>1.2.2</b></a></li> 3103 <li class="indline1"><tt>obsolete-date</tt> <a class="iref" href="#rfc.iref.g.35"><b>3.2.1</b></a></li> 3104 <li class="indline1">OCTET <a class="iref" href="#rfc.iref.g.9"><b>1.2</b></a></li> 3105 <li class="indline1"><tt>OWS</tt> <a class="iref" href="#rfc.iref.g.13"><b>1.2.2</b></a></li> 3106 <li class="indline1"><tt>parameter</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.3</b></a></li> 3107 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.26"><b>2.1</b></a></li> 3108 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.27"><b>2.1</b></a></li> 3109 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.59"><b>3.4</b></a></li> 3110 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.60"><b>3.4</b></a></li> 3111 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.103"><b>8.9</b></a></li> 3112 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.104"><b>8.9</b></a></li> 3113 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.106"><b>8.9</b></a></li> 3114 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.19"><b>1.2.2</b></a></li> 3115 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.28"><b>2.1</b></a></li> 3116 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.22"><b>1.2.2</b></a></li> 3117 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.18"><b>1.2.2</b></a></li> 3118 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.21"><b>1.2.2</b></a></li> 3119 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.81"><b>6.1.1</b></a></li> 3120 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.105"><b>8.9</b></a></li> 3121 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.102"><b>8.9</b></a></li> 3122 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.72"><b>5</b></a></li> 3123 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.73"><b>5.1</b></a></li> 3124 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.76"><b>5.1.2</b></a></li> 3125 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.77"><b>6</b></a></li> 3126 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.34"><b>3.2.1</b></a></li> 3127 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.2.1</b></a></li> 3128 <li class="indline1"><tt>RWS</tt> <a class="iref" href="#rfc.iref.g.14"><b>1.2.2</b></a></li> 3129 <li class="indline1">SP <a class="iref" href="#rfc.iref.g.10"><b>1.2</b></a></li> 3130 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.63"><b>4.1</b></a></li> 3131 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.1.1</b></a></li> 3132 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.78"><b>6.1</b></a></li> 3133 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.93"><b>8.5</b></a></li> 3134 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.17"><b>1.2.2</b></a></li> 3135 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.91"><b>8.5</b></a></li> 3136 <li class="indline1"><tt>TE-v</tt> <a class="iref" href="#rfc.iref.g.92"><b>8.5</b></a></li> 3137 <li class="indline1"><tt>time</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.2.1</b></a></li> 3138 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.16"><b>1.2.2</b></a></li> 3139 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.94"><b>8.6</b></a></li> 3140 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.58"><b>3.3.1</b></a></li> 3141 <li class="indline1"><tt>Trailer-v</tt> <a class="iref" href="#rfc.iref.g.95"><b>8.6</b></a></li> 3142 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.45"><b>3.3</b></a></li> 3143 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.96"><b>8.7</b></a></li> 3144 <li class="indline1"><tt>Transfer-Encoding-v</tt> <a class="iref" href="#rfc.iref.g.97"><b>8.7</b></a></li> 3145 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.3</b></a></li> 3146 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.98"><b>8.8</b></a></li> 3147 <li class="indline1"><tt>Upgrade-v</tt> <a class="iref" href="#rfc.iref.g.99"><b>8.8</b></a></li> 3148 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.29"><b>2.1</b></a></li> 3149 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.23"><b>2.1</b></a></li> 3150 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.3</b></a></li> 3151 <li class="indline1">VCHAR <a class="iref" href="#rfc.iref.g.11"><b>1.2</b></a></li> 3152 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.100"><b>8.9</b></a></li> 3153 <li class="indline1"><tt>Via-v</tt> <a class="iref" href="#rfc.iref.g.101"><b>8.9</b></a></li> 3154 <li class="indline1"><tt>weekday</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.2.1</b></a></li> 3155 <li class="indline1"><tt>wkday</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.2.1</b></a></li> 3156 <li class="indline1">WSP <a class="iref" href="#rfc.iref.g.12"><b>1.2</b></a></li> 2930 3157 </ul> 2931 3158 </li> … … 2952 3179 </li> 2953 3180 <li class="indline0"><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul class="ind"> 2954 <li class="indline1">implied *LWS <a class="iref" href="#rfc.iref.i.1"><b>1.2.1.2</b></a></li> 2955 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.2">C</a></li> 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> 3181 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.1">C</a></li> 3182 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1">4.2</a>, <a class="iref" href="#ISO-8859-1"><b>12.1</b></a></li> 2957 3183 </ul> 2958 3184 </li> … … 2977 3203 </li> 2978 3204 <li class="indline0"><a id="rfc.index.O" href="#rfc.index.O"><b>O</b></a><ul class="ind"> 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>3205 <li class="indline1">origin server <a class="iref" href="#rfc.iref.o.2">C</a></li> 3206 <li class="indline1">outbound <a class="iref" href="#rfc.iref.o.1">C</a></li> 2981 3207 </ul> 2982 3208 </li> 2983 3209 <li class="indline0"><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul class="ind"> 2984 3210 <li class="indline1"><em>Pad1995</em> <a class="iref" href="#rfc.xref.Pad1995.1">7.1.1</a>, <a class="iref" href="#Pad1995"><b>12.2</b></a></li> 2985 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4. 2</a>, <a class="iref" href="#rfc.xref.Part2.4">4.2</a>, <a class="iref" href="#rfc.xref.Part2.5">4.3</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a>, <a class="iref" href="#rfc.xref.Part2.7">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.8">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.9">6</a>, <a class="iref" href="#rfc.xref.Part2.10">6.1.1</a>, <a class="iref" href="#rfc.xref.Part2.11">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.12">7.1.4</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.14">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.15">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.16">7.2.3</a>, <a class="iref" href="#Part2"><b>12.1</b></a><ul class="ind">2986 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.5">4.3</a></li>2987 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4.2</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a></li>2988 <li class="indline1"><em>Section 6</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.4">4.2</a>, <a class="iref" href="#rfc.xref.Part2.9">6</a></li>2989 <li class="indline1"><em>Section 8.1.2</em> <a class="iref" href="#rfc.xref.Part2.11">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.12">7.1.4</a></li>2990 <li class="indline1"><em>Section 8.9</em> <a class="iref" href="#rfc.xref.Part2.7">5.1.2</a></li>2991 <li class="indline1"><em>Section 9</em> <a class="iref" href="#rfc.xref.Part2.10">6.1.1</a></li>2992 <li class="indline1"><em>Section 9.1.1</em> <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a></li>2993 <li class="indline1"><em>Section 9.1</em> <a class="iref" href="#rfc.xref.Part2.16">7.2.3</a></li>2994 <li class="indline1"><em>Section 9.4.15</em> <a class="iref" href="#rfc.xref.Part2.8">5.1.2</a></li>2995 <li class="indline1"><em>Section 10.2</em> <a class="iref" href="#rfc.xref.Part2.14">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.15">7.2.3</a></li>3211 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4.3</a>, <a class="iref" href="#rfc.xref.Part2.4">5</a>, <a class="iref" href="#rfc.xref.Part2.5">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.6">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.7">6</a>, <a class="iref" href="#rfc.xref.Part2.8">6.1.1</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.10">7.1.4</a>, <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.14">7.2.3</a>, <a class="iref" href="#Part2"><b>12.1</b></a><ul class="ind"> 3212 <li class="indline1"><em>Section 2</em> <a class="iref" href="#rfc.xref.Part2.3">4.3</a></li> 3213 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.4">5</a></li> 3214 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.7">6</a></li> 3215 <li class="indline1"><em>Section 7.1.2</em> <a class="iref" href="#rfc.xref.Part2.9">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.10">7.1.4</a></li> 3216 <li class="indline1"><em>Section 7.9</em> <a class="iref" href="#rfc.xref.Part2.5">5.1.2</a></li> 3217 <li class="indline1"><em>Section 8</em> <a class="iref" href="#rfc.xref.Part2.8">6.1.1</a></li> 3218 <li class="indline1"><em>Section 8.1.1</em> <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a></li> 3219 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part2.14">7.2.3</a></li> 3220 <li class="indline1"><em>Section 8.4.15</em> <a class="iref" href="#rfc.xref.Part2.6">5.1.2</a></li> 3221 <li class="indline1"><em>Section 9.2</em> <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a></li> 2996 3222 </ul> 2997 3223 </li> 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">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>3000 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a></li>3001 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part3.11">8.5</a></li>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>3003 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.14">C</a></li>3004 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</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>3006 <li class="indline1"><em>Section 6.1</em> <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a></li>3224 <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">5</a>, <a class="iref" href="#rfc.xref.Part3.9">6</a>, <a class="iref" href="#rfc.xref.Part3.10">8.5</a>, <a class="iref" href="#Part3"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part3.11">A</a>, <a class="iref" href="#rfc.xref.Part3.12">B.3</a>, <a class="iref" href="#rfc.xref.Part3.13">C</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a>, <a class="iref" href="#rfc.xref.Part3.15">C</a><ul class="ind"> 3225 <li class="indline1"><em>Section 2.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> 3226 <li class="indline1"><em>Section 2.3</em> <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a></li> 3227 <li class="indline1"><em>Section 2.4</em> <a class="iref" href="#rfc.xref.Part3.10">8.5</a></li> 3228 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part3.5">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.8">5</a>, <a class="iref" href="#rfc.xref.Part3.9">6</a></li> 3229 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part3.14">C</a></li> 3230 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a></li> 3231 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.13">C</a>, <a class="iref" href="#rfc.xref.Part3.15">C</a></li> 3232 <li class="indline1"><em>Section 5.1</em> <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a></li> 3007 3233 <li class="indline1"><em>Appendix A</em> <a class="iref" href="#rfc.xref.Part3.1">1</a></li> 3008 3234 </ul> … … 3011 3237 <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 3238 <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> 3013 <li class="indline1"><em>Section 16.2</em> <a class="iref" href="#rfc.xref.Part6.5">4.5</a></li>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>3015 <li class="indline1"><em>Section 16.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7">4.5</a></li>3239 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.Part6.5">4.5</a></li> 3240 <li class="indline1"><em>Section 4.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> 3241 <li class="indline1"><em>Section 4.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7">4.5</a></li> 3016 3242 </ul> 3017 3243 </li> … … 3022 3248 <li class="indline1">representation <a class="iref" href="#rfc.iref.r.4">C</a></li> 3023 3249 <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>3250 <li class="indline1">resource <a class="iref" href="#rfc.iref.r.2">C</a></li> 3251 <li class="indline1">response <a class="iref" href="#rfc.iref.r.3">C</a></li> 3026 3252 <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> 3027 3253 <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> … … 3030 3256 <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> 3031 3257 <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> 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>3258 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1">4.2</a>, <a class="iref" href="#RFC2047"><b>12.2</b></a></li> 3033 3259 <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 3260 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.6">B</a></li> … … 3038 3264 <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 3265 <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>3266 <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> 3041 3267 <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> 3042 3268 <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> … … 3088 3314 <li class="indline0"><a id="rfc.index.U" href="#rfc.index.U"><b>U</b></a><ul class="ind"> 3089 3315 <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> 3090 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u. 5">C</a></li>3316 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u.4">C</a></li> 3091 3317 <li class="indline1">URI scheme 3092 3318 <ul class="ind"> … … 3095 3321 </ul> 3096 3322 </li> 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>3098 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u. 4">C</a></li>3323 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#rfc.xref.USASCII.2">4.2</a>, <a class="iref" href="#USASCII"><b>12.1</b></a></li> 3324 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u.5">C</a></li> 3099 3325 </ul> 3100 3326 </li> -
draft-ietf-httpbis/latest-roy/p1-messaging.xml
r388 r437 13 13 <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHOULD NOT</bcp14>"> 14 14 <!ENTITY ID-VERSION "latest"> 15 <!ENTITY ID-MONTH " November">15 <!ENTITY ID-MONTH "December"> 16 16 <!ENTITY ID-YEAR "2008"> 17 17 <!ENTITY caching "<xref target='Part6' x:rel='#caching' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 304 304 <section title="Syntax Notation" anchor="notation"> 305 305 <iref primary="true" item="Grammar" subitem="ALPHA"/> 306 <iref primary="true" item="Grammar" subitem="CHAR"/>307 306 <iref primary="true" item="Grammar" subitem="CR"/> 308 307 <iref primary="true" item="Grammar" subitem="CRLF"/> … … 311 310 <iref primary="true" item="Grammar" subitem="DQUOTE"/> 312 311 <iref primary="true" item="Grammar" subitem="HEXDIG"/> 313 <iref primary="true" item="Grammar" subitem="HTAB"/>314 312 <iref primary="true" item="Grammar" subitem="LF"/> 315 313 <iref primary="true" item="Grammar" subitem="OCTET"/> 316 314 <iref primary="true" item="Grammar" subitem="SP"/> 315 <iref primary="true" item="Grammar" subitem="VCHAR"/> 317 316 <iref primary="true" item="Grammar" subitem="WSP"/> 318 317 <t anchor="core.rules"> 319 318 <x:anchor-alias value="ALPHA"/> 320 <x:anchor-alias value="CHAR"/>321 319 <x:anchor-alias value="CTL"/> 322 320 <x:anchor-alias value="CR"/> … … 325 323 <x:anchor-alias value="DQUOTE"/> 326 324 <x:anchor-alias value="HEXDIG"/> 327 <x:anchor-alias value="HTAB"/>328 325 <x:anchor-alias value="LF"/> 329 326 <x:anchor-alias value="OCTET"/> 330 327 <x:anchor-alias value="SP"/> 328 <x:anchor-alias value="VCHAR"/> 331 329 <x:anchor-alias value="WSP"/> 332 330 This specification uses the Augmented Backus-Naur Form (ABNF) notation 333 331 of <xref target="RFC5234"/>. The following core rules are included by 334 332 reference, as defined in <xref target="RFC5234" x:fmt="," x:sec="B.1"/>: 335 ALPHA (letters), CHAR (any <xref target="USASCII"/> character, 336 excluding NUL), CR (carriage return), CRLF (CR LF), CTL (controls), 333 ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), 337 334 DIGIT (decimal 0-9), DQUOTE (double quote), 338 HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), 339 LF (line feed), OCTET (any 8-bit sequence of data), SP (space) 340 and WSP (white space). 341 </t> 342 343 <section title="ABNF Extensions" anchor="notation.abnf"> 344 <t> 345 Two extensions to the ABNF rules of <xref target="RFC5234"/> are used to 346 improve readability.<cref>The current plan is to remove these extensions prior 347 to the last call draft.</cref> 348 </t> 349 350 <section title="#rule"> 335 HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), 336 OCTET (any 8-bit sequence of data), SP (space), 337 VCHAR (any visible <xref target="USASCII"/> character), 338 and WSP (whitespace). 339 </t> 340 341 <section title="ABNF Extension: #rule" anchor="notation.abnf"> 342 <t> 343 One extension to the ABNF rules of <xref target="RFC5234"/> is used to 344 improve readability. 345 </t> 351 346 <t> 352 347 A construct "#" is defined, similar to "*", for defining lists of 353 348 elements. The full form is "<n>#<m>element" indicating at least 354 <n> and at most <m> elements, each separated by one or more commas 355 (",") and &OPTIONAL; linear white space (OWS). This makes the usual 356 form of lists very easy; a rule such as 357 <figure><artwork type="example"> 358 ( *<x:ref>OWS</x:ref> element *( *<x:ref>OWS</x:ref> "," *<x:ref>OWS</x:ref> element ))</artwork></figure> 349 <n> and at most <m> elements, each separated by a single comma 350 (",") and optional whitespace (OWS). 359 351 </t> 352 <figure><preamble> 353 Thus, 354 </preamble><artwork type="example"> 355 1#element => element *( OWS "," OWS element ) 356 </artwork></figure> 357 <figure><preamble> 358 and: 359 </preamble><artwork type="example"> 360 #element => [ 1#element ] 361 </artwork></figure> 362 <figure><preamble> 363 and for n >= 1 and m > 1: 364 </preamble><artwork type="example"> 365 <n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element ) 366 </artwork></figure> 360 367 <t> 361 can be shown as 362 <figure><artwork type="example"> 363 1#element</artwork></figure> 368 For compatibility with legacy list rules, recipients &SHOULD; accept empty 369 list elements. In other words, consumers would follow the list productions: 364 370 </t> 365 <t> 366 Wherever this construct is used, null elements are allowed, but do 367 not contribute to the count of elements present. That is, 368 "(element), , (element) " is permitted, but counts as only two 369 elements. Therefore, where at least one element is required, at 370 least one non-null element &MUST; be present. Default values are 0 371 and infinity so that "#element" allows any number, including zero; 372 "1#element" requires at least one; and "1#2element" allows one or 373 two. 374 </t> 375 </section> 376 377 <section title="implied *LWS" anchor="implied.LWS"> 378 <iref item="implied *LWS" primary="true"/> 379 <t> 380 The grammar described by this specification is word-based. Except 381 where noted otherwise, linear white space (LWS) can be included 382 between any two adjacent words (token or quoted-string), and 383 between adjacent words and separators, without changing the 384 interpretation of a field. At least one delimiter (LWS and/or 385 separators) &MUST; exist between any two tokens (for the definition 386 of "token" below), since they would otherwise be interpreted as a 387 single token. 388 </t> 389 </section> 371 <figure><artwork type="example"> 372 #element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ] 373 374 1#element => *( "," OWS ) element *( OWS "," [ OWS element ] ) 375 </artwork></figure> 376 <t> 377 <xref target="collected.abnf"/> shows the collected ABNF, with the list rules 378 expanded as explained above. 379 </t> 390 380 </section> 391 381 … … 399 389 </t> 400 390 <t anchor="rule.LWS"> 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 391 This specification uses three rules to denote the use of linear 392 whitespace: OWS (optional whitespace), RWS (required whitespace), and 393 BWS ("bad" whitespace). 394 </t> 395 <t> 396 The OWS rule is used where zero or more linear whitespace characters may 397 appear. OWS &SHOULD; either not be produced or be produced as a single SP 398 character. Multiple OWS characters that occur within field-content &SHOULD; 399 be replaced with a single SP before interpreting the field value or 400 forwarding the message downstream. 401 </t> 402 <t> 403 RWS is used when at least one linear whitespace character is required to 404 separate field tokens. RWS &SHOULD; be produced as a single SP character. 405 Multiple RWS characters that occur within field-content &SHOULD; be 406 replaced with a single SP before interpreting the field value or 407 forwarding the message downstream. 408 </t> 409 <t> 410 BWS is used where the grammar allows optional whitespace for historical 411 reasons but senders &SHOULD-NOT; produce it in messages. HTTP/1.1 412 recipients &MUST; accept such bad optional whitespace and remove it before 403 413 interpreting the field value or forwarding the message downstream. 404 </t>405 <t>406 Historically, HTTP/1.1 header field values allow linear white space folding across407 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), except409 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 character422 is required to separate field tokens. In all such cases, a single SP character423 &SHOULD; be used.424 414 </t> 425 415 <t anchor="rule.whitespace"> … … 431 421 <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 422 <x:ref>OWS</x:ref> = *( [ obs-fold ] <x:ref>WSP</x:ref> ) 433 ; "optional" white 423 ; "optional" whitespace 434 424 <x:ref>RWS</x:ref> = 1*( [ obs-fold ] <x:ref>WSP</x:ref> ) 435 ; "required" white 425 ; "required" whitespace 436 426 <x:ref>BWS</x:ref> = <x:ref>OWS</x:ref> 437 ; "bad" white 427 ; "bad" whitespace 438 428 <x:ref>obs-fold</x:ref> = <x:ref>CRLF</x:ref> 439 </artwork></figure> 440 <t anchor="rule.TEXT"> 441 <x:anchor-alias value="TEXT"/> 442 The TEXT rule is only used for descriptive field contents and values 443 that are not intended to be interpreted by the message parser. Words 444 of *TEXT &MAY; contain characters from character sets other than ISO-8859-1 445 <xref target="ISO-8859-1"/> only when encoded according to the rules of 446 <xref target="RFC2047"/>. 447 </t> 448 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/> 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> 451 </artwork></figure> 452 <t> 453 A CRLF is allowed in the definition of TEXT only as part of a header 454 field continuation. It is expected that the folding LWS will be 455 replaced with a single SP before interpretation of the TEXT value. 456 </t> 429 ; see <xref target="message.headers"/> 430 </artwork></figure> 457 431 <t anchor="rule.token.separators"> 458 432 <x:anchor-alias value="tchar"/> 459 433 <x:anchor-alias value="token"/> 460 Many HTTP/1.1 header field values consist of words separated by LWS434 Many HTTP/1.1 header field values consist of words separated by whitespace 461 435 or special characters. These special characters &MUST; be in a quoted 462 436 string to be used within a parameter value (as defined in … … 470 444 <x:ref>token</x:ref> = 1*<x:ref>tchar</x:ref> 471 445 </artwork></figure> 472 <t anchor="rule.comment">473 <x:anchor-alias value="comment"/>474 <x:anchor-alias value="ctext"/>475 Comments can be included in some HTTP header fields by surrounding476 the comment text with parentheses. Comments are only allowed in477 fields containing "comment" as part of their field value definition.478 In all other fields, parentheses are considered part of the field479 value.480 </t>481 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/>482 <x:ref>comment</x:ref> = "(" *( <x:ref>ctext</x:ref> / <x:ref>quoted-pair</x:ref> / <x:ref>comment</x:ref> ) ")"483 <x:ref>ctext</x:ref> = <any <x:ref>TEXT</x:ref> excluding "(" and ")">484 </artwork></figure>485 446 <t anchor="rule.quoted-string"> 486 447 <x:anchor-alias value="quoted-string"/> 487 448 <x:anchor-alias value="qdtext"/> 449 <x:anchor-alias value="obs-text"/> 488 450 A string of text is parsed as a single word if it is quoted using 489 451 double-quote marks. 490 452 </t> 491 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/> 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> 493 <x:ref>qdtext</x:ref> = <any <x:ref>TEXT</x:ref> excluding <x:ref>DQUOTE</x:ref> and "\"> 453 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/><iref primary="true" item="Grammar" subitem="obs-text"/> 454 <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> 455 <x:ref>qdtext</x:ref> = *( <x:ref>OWS</x:ref> / %x21 / %x23-5B / %x5D-7E / <x:ref>obs-text</x:ref> ) 456 <x:ref>obs-text</x:ref> = %x80-FF 494 457 </artwork></figure> 495 458 <t anchor="rule.quoted-pair"> … … 575 538 </t> 576 539 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="URI-reference"/><iref primary="true" item="Grammar" subitem="absolute-URI"/><iref primary="true" item="Grammar" subitem="authority"/><iref primary="true" item="Grammar" subitem="path-absolute"/><iref primary="true" item="Grammar" subitem="port"/><iref primary="true" item="Grammar" subitem="query"/><iref primary="true" item="Grammar" subitem="uri-host"/> 577 <x:ref>URI</x:ref> = <URI, defined in <xref target="RFC3986" x:fmt="," x:sec="3"/> >578 <x:ref>URI-reference</x:ref> = <URI-reference, defined in <xref target="RFC3986" x:fmt="," x:sec="4.1"/> >579 <x:ref>absolute-URI</x:ref> = <absolute-URI, defined in <xref target="RFC3986" x:fmt="," x:sec="4.3"/> >580 <x:ref>relative-part</x:ref> = <relative-part, defined in <xref target="RFC3986" x:fmt="," x:sec="4.2"/> >581 <x:ref>authority</x:ref> = <authority, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2"/> >582 <x:ref>fragment</x:ref> = <fragment, defined in <xref target="RFC3986" x:fmt="," x:sec="3.5"/> >583 <x:ref>path-abempty</x:ref> = <path-abempty, defined in <xref target="RFC3986" x:fmt="," x:sec="3.3"/> >584 <x:ref>path-absolute</x:ref> = <path-absolute, defined in <xref target="RFC3986" x:fmt="," x:sec="3.3"/> >585 <x:ref>port</x:ref> = <port, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2.3"/> >586 <x:ref>query</x:ref> = <query, defined in <xref target="RFC3986" x:fmt="," x:sec="3.4"/> >587 <x:ref>uri-host</x:ref> = <host, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2.2"/> >540 <x:ref>URI</x:ref> = <URI, defined in <xref target="RFC3986" x:fmt="," x:sec="3"/>> 541 <x:ref>URI-reference</x:ref> = <URI-reference, defined in <xref target="RFC3986" x:fmt="," x:sec="4.1"/>> 542 <x:ref>absolute-URI</x:ref> = <absolute-URI, defined in <xref target="RFC3986" x:fmt="," x:sec="4.3"/>> 543 <x:ref>relative-part</x:ref> = <relative-part, defined in <xref target="RFC3986" x:fmt="," x:sec="4.2"/>> 544 <x:ref>authority</x:ref> = <authority, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2"/>> 545 <x:ref>fragment</x:ref> = <fragment, defined in <xref target="RFC3986" x:fmt="," x:sec="3.5"/>> 546 <x:ref>path-abempty</x:ref> = <path-abempty, defined in <xref target="RFC3986" x:fmt="," x:sec="3.3"/>> 547 <x:ref>path-absolute</x:ref> = <path-absolute, defined in <xref target="RFC3986" x:fmt="," x:sec="3.3"/>> 548 <x:ref>port</x:ref> = <port, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2.3"/>> 549 <x:ref>query</x:ref> = <query, defined in <xref target="RFC3986" x:fmt="," x:sec="3.4"/>> 550 <x:ref>uri-host</x:ref> = <host, defined in <xref target="RFC3986" x:fmt="," x:sec="3.2.2"/>> 588 551 589 552 <x:ref>partial-URI</x:ref> = relative-part [ "?" query ] … … 774 737 <section title="Use of HTTP for proxy communication" anchor="http.proxy"> 775 738 <t> 776 Configured to use HTTP to proxy HTTP or other protocols.739 <cref>TBD: Configured to use HTTP to proxy HTTP or other protocols.</cref> 777 740 </t> 778 741 </section> 779 742 <section title="Interception of HTTP for access control" anchor="http.intercept"> 780 743 <t> 781 Interception of HTTP traffic for initiating access control.744 <cref>TBD: Interception of HTTP traffic for initiating access control.</cref> 782 745 </t> 783 746 </section> 784 747 <section title="Use of HTTP by other protocols" anchor="http.others"> 785 748 <t> 786 Profiles of HTTP defined by other protocol.787 Extensions of HTTP like WebDAV. 749 <cref>TBD: Profiles of HTTP defined by other protocol. 750 Extensions of HTTP like WebDAV.</cref> 788 751 </t> 789 752 </section> 790 753 <section title="Use of HTTP by media type specification" anchor="http.media"> 791 754 <t> 792 Instructions on composing HTTP requests via hypertext formats.755 <cref>TBD: Instructions on composing HTTP requests via hypertext formats.</cref> 793 756 </t> 794 757 </section> … … 917 880 abbreviation for time zone, and &MUST; be assumed when reading the 918 881 asctime format. HTTP-date is case sensitive and &MUST-NOT; include 919 additional LWSbeyond that specifically included as SP in the882 additional whitespace beyond that specifically included as SP in the 920 883 grammar. 921 884 </t> … … 1082 1045 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> 1083 1046 <x:ref>chunk-data</x:ref> = 1*<x:ref>OCTET</x:ref> ; a sequence of chunk-size octets 1084 <x:ref>trailer-part</x:ref> = *( <x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref>)1047 <x:ref>trailer-part</x:ref> = *( <x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref> ) 1085 1048 </artwork></figure> 1086 1049 <t> … … 1155 1118 identify themselves by software name and version. Most fields using 1156 1119 product tokens also allow sub-products which form a significant part 1157 of the application to be listed, separated by white 1120 of the application to be listed, separated by whitespace. By 1158 1121 convention, the products are listed in order of their significance 1159 1122 for identifying the application. … … 1205 1168 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/> 1206 1169 <x:ref>generic-message</x:ref> = <x:ref>start-line</x:ref> 1207 *( <x:ref>message-header</x:ref> <x:ref>CRLF</x:ref>)1170 *( <x:ref>message-header</x:ref> <x:ref>CRLF</x:ref> ) 1208 1171 <x:ref>CRLF</x:ref> 1209 1172 [ <x:ref>message-body</x:ref> ] … … 1221 1184 BNF, an HTTP/1.1 client &MUST-NOT; preface or follow a request with an 1222 1185 extra CRLF. 1186 </t> 1187 <t> 1188 Whitespace (WSP) &MUST-NOT; be sent between the start-line and the first 1189 header field. The presence of whitespace might be an attempt to trick a 1190 noncompliant implementation of HTTP into ignoring that field or processing 1191 the next line as a new request, either of which may result in security 1192 issues when implementations within the request chain interpret the 1193 same message differently. HTTP/1.1 servers &MUST; reject such a message 1194 with a 400 (Bad Request) response. 1223 1195 </t> 1224 1196 </section> … … 1230 1202 <x:anchor-alias value="message-header"/> 1231 1203 <t> 1232 HTTP header fields, which include general-header (<xref target="general.header.fields"/>), 1233 request-header (&request-header-fields;), response-header (&response-header-fields;), and 1234 entity-header (&entity-header-fields;) fields, follow the same generic format as 1235 that given in <xref target="RFC5322" x:fmt="of" x:sec="2.1"/>. Each header field consists 1236 of a name followed by a colon (":") and the field value. Field names 1237 are case-insensitive. The field value &MAY; be preceded by any amount 1238 of LWS, though a single SP is preferred. Header fields can be 1239 extended over multiple lines by preceding each extra line with at 1240 least one SP or HTAB. Applications ought to follow "common form", where 1241 one is known or indicated, when generating HTTP constructs, since 1242 there might exist some implementations that fail to accept anything 1243 beyond the common forms. 1204 HTTP header fields follow the same general format as Internet messages in 1205 <xref target="RFC5322" x:fmt="of" x:sec="2.1"/>. Each header field consists 1206 of a name followed by a colon (":"), optional whitespace, and the field 1207 value. Field names are case-insensitive. 1244 1208 </t> 1245 1209 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-header"/><iref primary="true" item="Grammar" subitem="field-name"/><iref primary="true" item="Grammar" subitem="field-value"/><iref primary="true" item="Grammar" subitem="field-content"/> 1246 <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ <x:ref>field-value</x:ref> ]1210 <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" OWS [ <x:ref>field-value</x:ref> ] OWS 1247 1211 <x:ref>field-name</x:ref> = <x:ref>token</x:ref> 1248 1212 <x:ref>field-value</x:ref> = *( <x:ref>field-content</x:ref> / <x:ref>OWS</x:ref> ) 1249 <x:ref>field-content</x:ref> = <field content> 1250 </artwork></figure> 1251 <t> 1252 <cref>whitespace between field-name and colon is an error and MUST NOT be accepted</cref> 1253 </t> 1254 <t> 1255 The field-content does not include any leading or trailing LWS: 1256 linear white space occurring before the first non-whitespace 1257 character of the field-value or after the last non-whitespace 1258 character of the field-value. Such leading or trailing LWS &MAY; be 1259 removed without changing the semantics of the field value. Any LWS 1260 that occurs between field-content &MAY; be replaced with a single SP 1261 before interpreting the field value or forwarding the message 1262 downstream. 1263 </t> 1213 <x:ref>field-content</x:ref> = *( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> ) 1214 </artwork></figure> 1215 <t> 1216 Historically, HTTP has allowed field-content with text in the ISO-8859-1 1217 <xref target="ISO-8859-1"/> character encoding (allowing other character sets 1218 through use of <xref target="RFC2047"/> encoding). In practice, most HTTP 1219 header field-values use only a subset of the US-ASCII charset 1220 <xref target="USASCII"/>. Newly defined header fields &SHOULD; constrain 1221 their field-values to US-ASCII characters. Recipients &SHOULD; treat other 1222 (obs-text) octets in field-content as opaque data. 1223 </t> 1224 <t> 1225 No whitespace is allowed between the header field-name and colon. For 1226 security reasons, any request message received containing such whitespace 1227 &MUST; be rejected with a response code of 400 (Bad Request) and any such 1228 whitespace in a response message &MUST; be removed. 1229 </t> 1230 <t> 1231 The field value &MAY; be preceded by optional whitespace; a single SP is 1232 preferred. The field-value does not include any leading or trailing white 1233 space: OWS occurring before the first non-whitespace character of the 1234 field-value or after the last non-whitespace character of the field-value 1235 is ignored and &MAY; be removed without changing the meaning of the header 1236 field. 1237 </t> 1238 <t> 1239 Historically, HTTP header field values could be extended over multiple 1240 lines by preceding each extra line with at least one space or horizontal 1241 tab character (line folding). This specification deprecates such line 1242 folding except within the message/http media type 1243 (<xref target="internet.media.type.message.http"/>). 1244 HTTP/1.1 senders &MUST-NOT; produce messages that include line folding 1245 (i.e., that contain any field-content that matches the obs-fold rule) unless 1246 the message is intended for packaging within the message/http media type. 1247 HTTP/1.1 recipients &SHOULD; accept line folding and replace any embedded 1248 obs-fold whitespace with a single SP prior to interpreting the field value 1249 or forwarding the message downstream. 1250 </t> 1251 <t anchor="rule.comment"> 1252 <x:anchor-alias value="comment"/> 1253 <x:anchor-alias value="ctext"/> 1254 Comments can be included in some HTTP header fields by surrounding 1255 the comment text with parentheses. Comments are only allowed in 1256 fields containing "comment" as part of their field value definition. 1257 In all other fields, parentheses are considered part of the field 1258 value. 1259 </t> 1260 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/> 1261 <x:ref>comment</x:ref> = "(" *( <x:ref>ctext</x:ref> / <x:ref>quoted-pair</x:ref> / <x:ref>comment</x:ref> ) ")" 1262 <x:ref>ctext</x:ref> = *( <x:ref>OWS</x:ref> / %x21-27 / %x2A-7E / <x:ref>obs-text</x:ref> ) 1263 </artwork></figure> 1264 1264 <t> 1265 1265 The order in which header fields with differing field names are … … 1468 1468 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1469 1469 / <x:ref>request-header</x:ref> ; &request-header-fields; 1470 / <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref> ) ; &entity-header-fields;1470 / <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref> ) ; &entity-header-fields; 1471 1471 <x:ref>CRLF</x:ref> 1472 1472 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> … … 1503 1503 </t> 1504 1504 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/> 1505 <x:ref>request-target</x:ref> 1505 <x:ref>request-target</x:ref> = "*" 1506 1506 / <x:ref>absolute-URI</x:ref> 1507 1507 / ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] ) … … 1516 1516 </t> 1517 1517 <figure><artwork type="example"> 1518 1518 OPTIONS * HTTP/1.1 1519 1519 </artwork></figure> 1520 1520 <t> … … 1529 1529 </t> 1530 1530 <figure><artwork type="example"> 1531 1531 GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1532 1532 </artwork></figure> 1533 1533 <t> … … 1551 1551 </t> 1552 1552 <figure><artwork type="example"> 1553 1554 1553 GET /pub/WWW/TheProject.html HTTP/1.1 1554 Host: www.example.org 1555 1555 </artwork></figure> 1556 1556 <t> … … 1559 1559 given as "/" (the server root). 1560 1560 </t> 1561 <t> 1562 If a proxy receives a request without any path in the request-target and 1563 the method specified is capable of supporting the asterisk form of 1564 request-target, then the last proxy on the request chain &MUST; forward the 1565 request with "*" as the final request-target. 1566 </t> 1567 <figure><preamble> 1568 For example, the request 1569 </preamble><artwork type="example"> 1570 OPTIONS http://www.example.org:8001 HTTP/1.1 1571 </artwork></figure> 1572 <figure><preamble> 1573 would be forwarded by the proxy as 1574 </preamble><artwork type="example"> 1575 OPTIONS * HTTP/1.1 1576 Host: www.example.org:8001 1577 </artwork> 1578 <postamble> 1579 after connecting to port 8001 of host "www.example.org". 1580 </postamble> 1581 </figure> 1561 1582 <t> 1562 1583 The request-target is transmitted in the format specified in … … 1585 1606 HTTP does not place a pre-defined limit on the length of a request-target. 1586 1607 A server &MUST; be prepared to receive URIs of unbounded length and 1587 respond with the 414 ( URI too long) status if the received1608 respond with the 414 (Request-target too Long) status if the received 1588 1609 request-target would be longer than the server wishes to handle 1589 1610 (see &status-414;). … … 1646 1667 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1647 1668 / <x:ref>response-header</x:ref> ; &response-header-fields; 1648 / <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref> ) ; &entity-header-fields;1669 / <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref> ) ; &entity-header-fields; 1649 1670 <x:ref>CRLF</x:ref> 1650 1671 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> … … 1703 1724 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/> 1704 1725 <x:ref>Status-Code</x:ref> = 3<x:ref>DIGIT</x:ref> 1705 <x:ref>Reason-Phrase</x:ref> = * <<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>>1726 <x:ref>Reason-Phrase</x:ref> = *( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> ) 1706 1727 </artwork></figure> 1707 1728 </section> … … 3349 3370 </reference> 3350 3371 3351 <reference anchor="RFC2047">3352 <front>3353 <title abbrev="Message Header Extensions">MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</title>3354 <author initials="K." surname="Moore" fullname="Keith Moore">3355 <organization>University of Tennessee</organization>3356 <address><email>moore@cs.utk.edu</email></address>3357 </author>3358 <date month="November" year="1996"/>3359 </front>3360 <seriesInfo name="RFC" value="2047"/>3361 </reference>3362 3363 3372 <reference anchor="RFC2119"> 3364 3373 <front> … … 3564 3573 </reference> 3565 3574 3575 <reference anchor="RFC2047"> 3576 <front> 3577 <title abbrev="Message Header Extensions">MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</title> 3578 <author initials="K." surname="Moore" fullname="Keith Moore"> 3579 <organization>University of Tennessee</organization> 3580 <address><email>moore@cs.utk.edu</email></address> 3581 </author> 3582 <date month="November" year="1996"/> 3583 </front> 3584 <seriesInfo name="RFC" value="2047"/> 3585 </reference> 3586 3566 3587 <reference anchor="RFC2068"> 3567 3588 <front> … … 3876 3897 Clients &SHOULD; be tolerant in parsing the Status-Line and servers 3877 3898 tolerant when parsing the Request-Line. In particular, they &SHOULD; 3878 accept any amount of SP or HTABcharacters between fields, even though3899 accept any amount of WSP characters between fields, even though 3879 3900 only a single SP is required. 3880 3901 </t> … … 4086 4107 <section title="Changes from RFC 2616" anchor="changes.from.rfc.2616"> 4087 4108 <t> 4088 Rules about implicit linear white space between certain grammar productions 4109 Empty list elements in list productions have been deprecated. 4110 (<xref target="notation.abnf"/>) 4111 </t> 4112 <t> 4113 Rules about implicit linear whitespace between certain grammar productions 4089 4114 have been removed; now it's only allowed when specifically pointed out 4090 in the ABNF. 4091 The CHAR rule does not allow the NUL character anymore (this affects4092 the comment and quoted-string rules). Furthermore, the quoted-pair4093 rule does not allow escaping NUL, CR or LF anymore.4115 in the ABNF. The NUL character is no longer allowed in comment and quoted-string 4116 text. The quoted-pair rule no longer allows escaping NUL, CR or LF. 4117 Non-ASCII content in header fields and reason phrase has been obsoleted and 4118 made opaque (the TEXT rule was removed) 4094 4119 (<xref target="basic.rules"/>) 4095 4120 </t> … … 4109 4134 </t> 4110 4135 <t> 4136 Require that invalid whitespace around field-names be rejected. 4137 (<xref target="message.headers"/>) 4138 </t> 4139 <t> 4111 4140 Update use of abs_path production from RFC1808 to the path-absolute + query 4112 4141 components of RFC3986. … … 4126 4155 </t> 4127 4156 <t> 4157 <iref item="cache"/> 4158 <x:dfn>cache</x:dfn> 4159 <list> 4160 <t> 4161 A program's local store of response messages and the subsystem 4162 that controls its message storage, retrieval, and deletion. A 4163 cache stores cacheable responses in order to reduce the response 4164 time and network bandwidth consumption on future, equivalent 4165 requests. Any client or server may include a cache, though a cache 4166 cannot be used by a server that is acting as a tunnel. 4167 </t> 4168 </list> 4169 </t> 4170 <t> 4171 <iref item="cacheable"/> 4172 <x:dfn>cacheable</x:dfn> 4173 <list> 4174 <t> 4175 A response is cacheable if a cache is allowed to store a copy of 4176 the response message for use in answering subsequent requests. The 4177 rules for determining the cacheability of HTTP responses are 4178 defined in &caching;. Even if a resource is cacheable, there may 4179 be additional constraints on whether a cache can use the cached 4180 copy for a particular request. 4181 </t> 4182 </list> 4183 </t> 4184 <t> 4185 <iref item="client"/> 4186 <x:dfn>client</x:dfn> 4187 <list> 4188 <t> 4189 A program that establishes connections for the purpose of sending 4190 requests. 4191 </t> 4192 </list> 4193 </t> 4194 <t> 4128 4195 <iref item="connection"/> 4129 4196 <x:dfn>connection</x:dfn> … … 4136 4203 </t> 4137 4204 <t> 4138 <iref item=" message"/>4139 <x:dfn> message</x:dfn>4205 <iref item="content negotiation"/> 4206 <x:dfn>content negotiation</x:dfn> 4140 4207 <list> 4141 4208 <t> 4142 The basic unit of HTTP communication, consisting of a structured 4143 sequence of octets matching the syntax defined in <xref target="http.message"/> and 4144 transmitted via the connection. 4145 </t> 4146 </list> 4147 </t> 4148 <t> 4149 <iref item="request"/> 4150 <x:dfn>request</x:dfn> 4151 <list> 4152 <t> 4153 An HTTP request message, as defined in <xref target="request"/>. 4154 </t> 4155 </list> 4156 </t> 4157 <t> 4158 <iref item="response"/> 4159 <x:dfn>response</x:dfn> 4160 <list> 4161 <t> 4162 An HTTP response message, as defined in <xref target="response"/>. 4163 </t> 4164 </list> 4165 </t> 4166 <t> 4167 <iref item="resource"/> 4168 <x:dfn>resource</x:dfn> 4169 <list> 4170 <t> 4171 A network data object or service that can be identified by a URI, 4172 as defined in <xref target="uri"/>. Resources may be available in multiple 4173 representations (e.g. multiple languages, data formats, size, and 4174 resolutions) or vary in other ways. 4209 The mechanism for selecting the appropriate representation when 4210 servicing a request, as described in &content.negotiation;. The 4211 representation of entities in any response can be negotiated 4212 (including error responses). 4175 4213 </t> 4176 4214 </list> … … 4189 4227 </t> 4190 4228 <t> 4191 <iref item=" representation"/>4192 <x:dfn> representation</x:dfn>4229 <iref item="gateway"/> 4230 <x:dfn>gateway</x:dfn> 4193 4231 <list> 4194 4232 <t> 4195 An entity included with a response that is subject to content 4196 negotiation, as described in &content.negotiation;. There may exist multiple 4197 representations associated with a particular response status. 4198 </t> 4199 </list> 4200 </t> 4201 <t> 4202 <iref item="content negotiation"/> 4203 <x:dfn>content negotiation</x:dfn> 4233 A server which acts as an intermediary for some other server. 4234 Unlike a proxy, a gateway receives requests as if it were the 4235 origin server for the requested resource; the requesting client 4236 may not be aware that it is communicating with a gateway. 4237 </t> 4238 </list> 4239 </t> 4240 <t> 4241 <iref item="inbound"/> 4242 <iref item="outbound"/> 4243 <x:dfn>inbound</x:dfn>/<x:dfn>outbound</x:dfn> 4204 4244 <list> 4205 4245 <t> 4206 The mechanism for selecting the appropriate representation when 4207 servicing a request, as described in &content.negotiation;. The 4208 representation of entities in any response can be negotiated 4209 (including error responses). 4210 </t> 4211 </list> 4212 </t> 4213 <t> 4214 <iref item="variant"/> 4215 <x:dfn>variant</x:dfn> 4246 Inbound and outbound refer to the request and response paths for 4247 messages: "inbound" means "traveling toward the origin server", 4248 and "outbound" means "traveling toward the user agent" 4249 </t> 4250 </list> 4251 </t> 4252 <t> 4253 <iref item="message"/> 4254 <x:dfn>message</x:dfn> 4216 4255 <list> 4217 4256 <t> 4218 A resource may have one, or more than one, representation(s) 4219 associated with it at any given instant. Each of these 4220 representations is termed a `variant'. Use of the term `variant' 4221 does not necessarily imply that the resource is subject to content 4222 negotiation. 4223 </t> 4224 </list> 4225 </t> 4226 <t> 4227 <iref item="client"/> 4228 <x:dfn>client</x:dfn> 4229 <list> 4230 <t> 4231 A program that establishes connections for the purpose of sending 4232 requests. 4233 </t> 4234 </list> 4235 </t> 4236 <t> 4237 <iref item="user agent"/> 4238 <x:dfn>user agent</x:dfn> 4239 <list> 4240 <t> 4241 The client which initiates a request. These are often browsers, 4242 editors, spiders (web-traversing robots), or other end user tools. 4243 </t> 4244 </list> 4245 </t> 4246 <t> 4247 <iref item="server"/> 4248 <x:dfn>server</x:dfn> 4249 <list> 4250 <t> 4251 An application program that accepts connections in order to 4252 service requests by sending back responses. Any given program may 4253 be capable of being both a client and a server; our use of these 4254 terms refers only to the role being performed by the program for a 4255 particular connection, rather than to the program's capabilities 4256 in general. Likewise, any server may act as an origin server, 4257 proxy, gateway, or tunnel, switching behavior based on the nature 4258 of each request. 4257 The basic unit of HTTP communication, consisting of a structured 4258 sequence of octets matching the syntax defined in <xref target="http.message"/> and 4259 transmitted via the connection. 4259 4260 </t> 4260 4261 </list> … … 4292 4293 </t> 4293 4294 <t> 4294 <iref item=" gateway"/>4295 <x:dfn> gateway</x:dfn>4295 <iref item="request"/> 4296 <x:dfn>request</x:dfn> 4296 4297 <list> 4297 4298 <t> 4298 A server which acts as an intermediary for some other server. 4299 Unlike a proxy, a gateway receives requests as if it were the 4300 origin server for the requested resource; the requesting client 4301 may not be aware that it is communicating with a gateway. 4299 An HTTP request message, as defined in <xref target="request"/>. 4300 </t> 4301 </list> 4302 </t> 4303 <t> 4304 <iref item="resource"/> 4305 <x:dfn>resource</x:dfn> 4306 <list> 4307 <t> 4308 A network data object or service that can be identified by a URI, 4309 as defined in <xref target="uri"/>. Resources may be available in multiple 4310 representations (e.g. multiple languages, data formats, size, and 4311 resolutions) or vary in other ways. 4312 </t> 4313 </list> 4314 </t> 4315 <t> 4316 <iref item="response"/> 4317 <x:dfn>response</x:dfn> 4318 <list> 4319 <t> 4320 An HTTP response message, as defined in <xref target="response"/>. 4321 </t> 4322 </list> 4323 </t> 4324 <t> 4325 <iref item="representation"/> 4326 <x:dfn>representation</x:dfn> 4327 <list> 4328 <t> 4329 An entity included with a response that is subject to content 4330 negotiation, as described in &content.negotiation;. There may exist multiple 4331 representations associated with a particular response status. 4332 </t> 4333 </list> 4334 </t> 4335 <t> 4336 <iref item="server"/> 4337 <x:dfn>server</x:dfn> 4338 <list> 4339 <t> 4340 An application program that accepts connections in order to 4341 service requests by sending back responses. Any given program may 4342 be capable of being both a client and a server; our use of these 4343 terms refers only to the role being performed by the program for a 4344 particular connection, rather than to the program's capabilities 4345 in general. Likewise, any server may act as an origin server, 4346 proxy, gateway, or tunnel, switching behavior based on the nature 4347 of each request. 4302 4348 </t> 4303 4349 </list> … … 4317 4363 </t> 4318 4364 <t> 4319 <iref item="cache"/>4320 <x:dfn>cache</x:dfn>4321 <list>4322 <t>4323 A program's local store of response messages and the subsystem4324 that controls its message storage, retrieval, and deletion. A4325 cache stores cacheable responses in order to reduce the response4326 time and network bandwidth consumption on future, equivalent4327 requests. Any client or server may include a cache, though a cache4328 cannot be used by a server that is acting as a tunnel.4329 </t>4330 </list>4331 </t>4332 <t>4333 <iref item="cacheable"/>4334 <x:dfn>cacheable</x:dfn>4335 <list>4336 <t>4337 A response is cacheable if a cache is allowed to store a copy of4338 the response message for use in answering subsequent requests. The4339 rules for determining the cacheability of HTTP responses are4340 defined in &caching;. Even if a resource is cacheable, there may4341 be additional constraints on whether a cache can use the cached4342 copy for a particular request.4343 </t>4344 </list>4345 </t>4346 <t>4347 4365 <iref item="upstream"/> 4348 4366 <iref item="downstream"/> … … 4356 4374 </t> 4357 4375 <t> 4358 <iref item="inbound"/> 4359 <iref item="outbound"/> 4360 <x:dfn>inbound</x:dfn>/<x:dfn>outbound</x:dfn> 4376 <iref item="user agent"/> 4377 <x:dfn>user agent</x:dfn> 4361 4378 <list> 4362 4379 <t> 4363 Inbound and outbound refer to the request and response paths for 4364 messages: "inbound" means "traveling toward the origin server", 4365 and "outbound" means "traveling toward the user agent" 4366 </t> 4367 </list> 4368 </t> 4380 The client which initiates a request. These are often browsers, 4381 editors, spiders (web-traversing robots), or other end user tools. 4382 </t> 4383 </list> 4384 </t> 4385 <t> 4386 <iref item="variant"/> 4387 <x:dfn>variant</x:dfn> 4388 <list> 4389 <t> 4390 A resource may have one, or more than one, representation(s) 4391 associated with it at any given instant. Each of these 4392 representations is termed a `variant'. Use of the term `variant' 4393 does not necessarily imply that the resource is subject to content 4394 negotiation. 4395 </t> 4396 </list> 4397 </t> 4398 </section> 4399 4400 <section xmlns:x="http://purl.org/net/xml2rfc/ext" title="Collected ABNF" anchor="collected.abnf"> 4401 <figure> 4402 <artwork type="abnf" name="p1-messaging.parsed-abnf"> 4403 <x:ref>BWS</x:ref> = OWS 4404 4405 <x:ref>Cache-Control</x:ref> = <Cache-Control, defined in [Part6], Section 15.4> 4406 <x:ref>Chunked-Body</x:ref> = *chunk last-chunk trailer-part CRLF 4407 <x:ref>Connection</x:ref> = "Connection:" OWS Connection-v 4408 <x:ref>Connection-v</x:ref> = *( "," OWS ) connection-token *( OWS "," [ OWS 4409 connection-token ] ) 4410 <x:ref>Content-Length</x:ref> = "Content-Length:" OWS 1*Content-Length-v 4411 <x:ref>Content-Length-v</x:ref> = 1*DIGIT 4412 4413 <x:ref>Date</x:ref> = "Date:" OWS Date-v 4414 <x:ref>Date-v</x:ref> = HTTP-date 4415 4416 GMT = %x47.4D.54 4417 4418 <x:ref>HTTP-Prot-Name</x:ref> = %x48.54.54.50 4419 <x:ref>HTTP-Version</x:ref> = HTTP-Prot-Name "/" 1*DIGIT "." 1*DIGIT 4420 <x:ref>HTTP-date</x:ref> = rfc1123-date / obsolete-date 4421 <x:ref>HTTP-message</x:ref> = Request / Response 4422 <x:ref>Host</x:ref> = "Host:" OWS Host-v 4423 <x:ref>Host-v</x:ref> = uri-host [ ":" port ] 4424 4425 <x:ref>Method</x:ref> = token 4426 4427 <x:ref>OWS</x:ref> = *( [ obs-fold ] WSP ) 4428 4429 <x:ref>Pragma</x:ref> = <Pragma, defined in [Part6], Section 15.4> 4430 4431 <x:ref>RWS</x:ref> = 1*( [ obs-fold ] WSP ) 4432 <x:ref>Reason-Phrase</x:ref> = *( WSP / VCHAR / obs-text ) 4433 <x:ref>Request</x:ref> = Request-Line *( ( general-header / request-header / 4434 entity-header ) CRLF ) CRLF [ message-body ] 4435 <x:ref>Request-Line</x:ref> = Method SP request-target SP HTTP-Version CRLF 4436 <x:ref>Response</x:ref> = Status-Line *( ( general-header / response-header / 4437 entity-header ) CRLF ) CRLF [ message-body ] 4438 4439 <x:ref>Status-Code</x:ref> = 3DIGIT 4440 <x:ref>Status-Line</x:ref> = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 4441 4442 <x:ref>TE</x:ref> = "TE:" OWS TE-v 4443 <x:ref>TE-v</x:ref> = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] 4444 <x:ref>Trailer</x:ref> = "Trailer:" OWS Trailer-v 4445 <x:ref>Trailer-v</x:ref> = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) 4446 <x:ref>Transfer-Encoding</x:ref> = "Transfer-Encoding:" OWS Transfer-Encoding-v 4447 <x:ref>Transfer-Encoding-v</x:ref> = *( "," OWS ) transfer-coding *( OWS "," [ OWS 4448 transfer-coding ] ) 4449 4450 <x:ref>URI</x:ref> = <URI, defined in [RFC3986], Section 3> 4451 <x:ref>URI-reference</x:ref> = <URI-reference, defined in [RFC3986], Section 4.1> 4452 <x:ref>Upgrade</x:ref> = "Upgrade:" OWS Upgrade-v 4453 <x:ref>Upgrade-v</x:ref> = *( "," OWS ) product *( OWS "," [ OWS product ] ) 4454 4455 <x:ref>Via</x:ref> = "Via:" OWS Via-v 4456 <x:ref>Via-v</x:ref> = *( "," OWS ) received-protocol RWS received-by [ RWS comment 4457 ] *( OWS "," [ OWS received-protocol RWS received-by [ RWS comment ] 4458 ] ) 4459 4460 <x:ref>Warning</x:ref> = <Warning, defined in [Part6], Section 15.6> 4461 4462 <x:ref>absolute-URI</x:ref> = <absolute-URI, defined in [RFC3986], Section 4.3> 4463 <x:ref>accept-params</x:ref> = <accept-params, defined in [Part3], Section 5.1> 4464 <x:ref>asctime-date</x:ref> = wkday SP date3 SP time SP 4DIGIT 4465 <x:ref>attribute</x:ref> = token 4466 <x:ref>authority</x:ref> = <authority, defined in [RFC3986], Section 3.2> 4467 4468 <x:ref>chunk</x:ref> = chunk-size *WSP [ chunk-ext ] CRLF chunk-data CRLF 4469 <x:ref>chunk-data</x:ref> = 1*OCTET 4470 <x:ref>chunk-ext</x:ref> = *( ";" *WSP chunk-ext-name [ "=" chunk-ext-val ] *WSP ) 4471 <x:ref>chunk-ext-name</x:ref> = token 4472 <x:ref>chunk-ext-val</x:ref> = token / quoted-string 4473 <x:ref>chunk-size</x:ref> = 1*HEXDIG 4474 <x:ref>comment</x:ref> = "(" *( ctext / quoted-pair / comment ) ")" 4475 <x:ref>connection-token</x:ref> = token 4476 <x:ref>ctext</x:ref> = *( OWS / %x21-27 / %x2A-7E / obs-text ) 4477 4478 <x:ref>date1</x:ref> = 2DIGIT SP month SP 4DIGIT 4479 <x:ref>date2</x:ref> = 2DIGIT "-" month "-" 2DIGIT 4480 <x:ref>date3</x:ref> = month SP ( 2DIGIT / ( SP DIGIT ) ) 4481 4482 <x:ref>entity-body</x:ref> = <entity-body, defined in [Part3], Section 3.2> 4483 <x:ref>entity-header</x:ref> = <entity-header, defined in [Part3], Section 3.1> 4484 4485 <x:ref>field-content</x:ref> = *( WSP / VCHAR / obs-text ) 4486 <x:ref>field-name</x:ref> = token 4487 <x:ref>field-value</x:ref> = *( field-content / OWS ) 4488 <x:ref>fragment</x:ref> = <fragment, defined in [RFC3986], Section 3.5> 4489 4490 <x:ref>general-header</x:ref> = Cache-Control / Connection / Date / Pragma / Trailer 4491 / Transfer-Encoding / Upgrade / Via / Warning 4492 <x:ref>generic-message</x:ref> = start-line *( message-header CRLF ) CRLF [ 4493 message-body ] 4494 4495 <x:ref>http-URI</x:ref> = "http://" authority path-abempty [ "?" query ] 4496 4497 l-Fri = %x46.72.69.64.61.79 4498 l-Mon = %x4D.6F.6E.64.61.79 4499 l-Sat = %x53.61.74.75.72.64.61.79 4500 l-Sun = %x53.75.6E.64.61.79 4501 l-Thu = %x54.68.75.72.73.64.61.79 4502 l-Tue = %x54.75.65.73.64.61.79 4503 l-Wed = %x57.65.64.6E.65.73.64.61.79 4504 <x:ref>last-chunk</x:ref> = 1*"0" *WSP [ chunk-ext ] CRLF 4505 4506 <x:ref>message-body</x:ref> = entity-body / <entity-body encoded as per 4507 Transfer-Encoding> 4508 <x:ref>message-header</x:ref> = field-name ":" OWS [ field-value ] OWS 4509 <x:ref>month</x:ref> = s-Jan / s-Feb / s-Mar / s-Apr / s-May / s-Jun / s-Jul / s-Aug 4510 / s-Sep / s-Oct / s-Nov / s-Dec 4511 4512 <x:ref>obs-fold</x:ref> = CRLF 4513 <x:ref>obs-text</x:ref> = %x80-FF 4514 <x:ref>obsolete-date</x:ref> = rfc850-date / asctime-date 4515 4516 <x:ref>parameter</x:ref> = attribute BWS "=" BWS value 4517 <x:ref>partial-URI</x:ref> = relative-part [ "?" query ] 4518 <x:ref>path-abempty</x:ref> = <path-abempty, defined in [RFC3986], Section 3.3> 4519 <x:ref>path-absolute</x:ref> = <path-absolute, defined in [RFC3986], Section 3.3> 4520 <x:ref>port</x:ref> = <port, defined in [RFC3986], Section 3.2.3> 4521 <x:ref>product</x:ref> = token [ "/" product-version ] 4522 <x:ref>product-version</x:ref> = token 4523 <x:ref>protocol-name</x:ref> = token 4524 <x:ref>protocol-version</x:ref> = token 4525 <x:ref>pseudonym</x:ref> = token 4526 4527 <x:ref>qdtext</x:ref> = *( OWS / "!" / %x23-5B / %x5D-7E / obs-text ) 4528 <x:ref>query</x:ref> = <query, defined in [RFC3986], Section 3.4> 4529 <x:ref>quoted-pair</x:ref> = "\" quoted-text 4530 <x:ref>quoted-string</x:ref> = DQUOTE *( qdtext / quoted-pair ) DQUOTE 4531 <x:ref>quoted-text</x:ref> = %x01-09 / %x0B-0C / %x0E-FF 4532 4533 <x:ref>received-by</x:ref> = ( uri-host [ ":" port ] ) / pseudonym 4534 <x:ref>received-protocol</x:ref> = [ protocol-name "/" ] protocol-version 4535 <x:ref>relative-part</x:ref> = <relative-part, defined in [RFC3986], Section 4.2> 4536 <x:ref>request-header</x:ref> = <request-header, defined in [Part2], Section 3> 4537 <x:ref>request-target</x:ref> = "*" / absolute-URI / ( path-absolute [ "?" query ] ) 4538 / authority 4539 <x:ref>response-header</x:ref> = <response-header, defined in [Part2], Section 5> 4540 <x:ref>rfc1123-date</x:ref> = wkday "," SP date1 SP time SP GMT 4541 <x:ref>rfc850-date</x:ref> = weekday "," SP date2 SP time SP GMT 4542 4543 s-Apr = %x41.70.72 4544 s-Aug = %x41.75.67 4545 s-Dec = %x44.65.63 4546 s-Feb = %x46.65.62 4547 s-Fri = %x46.72.69 4548 s-Jan = %x4A.61.6E 4549 s-Jul = %x4A.75.6C 4550 s-Jun = %x4A.75.6E 4551 s-Mar = %x4D.61.72 4552 s-May = %x4D.61.79 4553 s-Mon = %x4D.6F.6E 4554 s-Nov = %x4E.6F.76 4555 s-Oct = %x4F.63.74 4556 s-Sat = %x53.61.74 4557 s-Sep = %x53.65.70 4558 s-Sun = %x53.75.6E 4559 s-Thu = %x54.68.75 4560 s-Tue = %x54.75.65 4561 s-Wed = %x57.65.64 4562 <x:ref>start-line</x:ref> = Request-Line / Status-Line 4563 4564 <x:ref>t-codings</x:ref> = "trailers" / ( transfer-extension [ accept-params ] ) 4565 <x:ref>tchar</x:ref> = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / 4566 "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA 4567 <x:ref>time</x:ref> = 2DIGIT ":" 2DIGIT ":" 2DIGIT 4568 <x:ref>token</x:ref> = 1*tchar 4569 <x:ref>trailer-part</x:ref> = *( entity-header CRLF ) 4570 <x:ref>transfer-coding</x:ref> = "chunked" / transfer-extension 4571 <x:ref>transfer-extension</x:ref> = token *( OWS ";" OWS parameter ) 4572 4573 <x:ref>uri-host</x:ref> = <host, defined in [RFC3986], Section 3.2.2> 4574 4575 <x:ref>value</x:ref> = token / quoted-string 4576 4577 <x:ref>weekday</x:ref> = l-Mon / l-Tue / l-Wed / l-Thu / l-Fri / l-Sat / l-Sun 4578 <x:ref>wkday</x:ref> = s-Mon / s-Tue / s-Wed / s-Thu / s-Fri / s-Sat / s-Sun 4579 4580 ; Chunked-Body defined but not used 4581 ; Content-Length defined but not used 4582 ; HTTP-message defined but not used 4583 ; Host defined but not used 4584 ; TE defined but not used 4585 ; URI defined but not used 4586 ; URI-reference defined but not used 4587 ; fragment defined but not used 4588 ; generic-message defined but not used 4589 ; http-URI defined but not used 4590 ; partial-URI defined but not used 4591 4592 4593 </artwork> 4594 </figure> 4369 4595 </section> 4370 4596 … … 4474 4700 </t> 4475 4701 <t> 4476 Use names of RFC4234 core rules DQUOTE and HTAB,4702 Use names of RFC4234 core rules DQUOTE and WSP, 4477 4703 fix broken ABNF for chunk-data 4478 4704 (work in progress on <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>) … … 4521 4747 </t> 4522 4748 <t> 4523 Synchronize core rules with RFC5234 (this includes a change to CHAR 4524 which now excludes NUL). 4749 Synchronize core rules with RFC5234. 4525 4750 </t> 4526 4751 <t> … … 4663 4888 <list style="symbols"> 4664 4889 <t> 4890 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/30"/>: 4891 "Header LWS" 4892 </t> 4893 <t> 4894 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/52"/>: 4895 "Sort 1.3 Terminology" 4896 </t> 4897 <t> 4898 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/63"/>: 4899 "RFC2047 encoded words" 4900 </t> 4901 <t> 4902 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/74"/>: 4903 "Character Encodings in TEXT" 4904 </t> 4905 <t> 4906 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/77"/>: 4907 "Line Folding" 4908 </t> 4909 <t> 4910 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/83"/>: 4911 "OPTIONS * and proxies" 4912 </t> 4913 <t> 4914 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/94"/>: 4915 "Reason-Phrase BNF" 4916 </t> 4917 <t> 4918 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/111"/>: 4919 "Use of TEXT" 4920 </t> 4921 <t> 4665 4922 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/118"/>: 4666 4923 "Join "Differences Between HTTP Entities and RFC 2045 Entities"?" … … 4672 4929 </list> 4673 4930 </t> 4931 <t> 4932 Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>): 4933 <list style="symbols"> 4934 <t> 4935 Rewrite definition of list rules, deprecate empty list elements. 4936 </t> 4937 <t> 4938 Add appendix containing collected and expanded ABNF. 4939 </t> 4940 </list> 4941 </t> 4942 <t> 4943 Other changes: 4944 <list style="symbols"> 4945 <t> 4946 Rewrite introduction; add mostly new Architecture Section. 4947 </t> 4948 </list> 4949 </t> 4674 4950 </section> 4675 4951 -
draft-ietf-httpbis/latest-roy/p2-semantics.html
r348 r437 333 333 } 334 334 @top-right { 335 content: " November 2008";335 content: "December 2008"; 336 336 } 337 337 @top-center { … … 365 365 <link rel="Index" href="#rfc.index"> 366 366 <link rel="Chapter" title="1 Introduction" href="#rfc.section.1"> 367 <link rel="Chapter" title="2 Notational Conventions and Generic Grammar" href="#rfc.section.2"> 368 <link rel="Chapter" title="3 Method" href="#rfc.section.3"> 369 <link rel="Chapter" title="4 Request Header Fields" href="#rfc.section.4"> 370 <link rel="Chapter" title="5 Status Code and Reason Phrase" href="#rfc.section.5"> 371 <link rel="Chapter" title="6 Response Header Fields" href="#rfc.section.6"> 372 <link rel="Chapter" title="7 Entity" href="#rfc.section.7"> 373 <link rel="Chapter" title="8 Method Definitions" href="#rfc.section.8"> 374 <link rel="Chapter" title="9 Status Code Definitions" href="#rfc.section.9"> 375 <link rel="Chapter" title="10 Header Field Definitions" href="#rfc.section.10"> 376 <link rel="Chapter" title="11 IANA Considerations" href="#rfc.section.11"> 377 <link rel="Chapter" title="12 Security Considerations" href="#rfc.section.12"> 378 <link rel="Chapter" title="13 Acknowledgments" href="#rfc.section.13"> 379 <link rel="Chapter" href="#rfc.section.14" title="14 References"> 367 <link rel="Chapter" title="2 Method" href="#rfc.section.2"> 368 <link rel="Chapter" title="3 Request Header Fields" href="#rfc.section.3"> 369 <link rel="Chapter" title="4 Status Code and Reason Phrase" href="#rfc.section.4"> 370 <link rel="Chapter" title="5 Response Header Fields" href="#rfc.section.5"> 371 <link rel="Chapter" title="6 Entity" href="#rfc.section.6"> 372 <link rel="Chapter" title="7 Method Definitions" href="#rfc.section.7"> 373 <link rel="Chapter" title="8 Status Code Definitions" href="#rfc.section.8"> 374 <link rel="Chapter" title="9 Header Field Definitions" href="#rfc.section.9"> 375 <link rel="Chapter" title="10 IANA Considerations" href="#rfc.section.10"> 376 <link rel="Chapter" title="11 Security Considerations" href="#rfc.section.11"> 377 <link rel="Chapter" title="12 Acknowledgments" href="#rfc.section.12"> 378 <link rel="Chapter" href="#rfc.section.13" title="13 References"> 380 379 <link rel="Appendix" title="A Compatibility with Previous Versions" href="#rfc.section.A"> 381 <link rel="Appendix" title="B Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.B"> 380 <link rel="Appendix" title="B Collected ABNF" href="#rfc.section.B"> 381 <link rel="Appendix" title="C Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.C"> 382 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/"> 383 383 <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"> … … 392 392 <meta name="DC.Creator" content="Reschke, J. F."> 393 393 <meta name="DC.Identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest"> 394 <meta name="DC.Date.Issued" scheme="ISO8601" content="2008-1 1">394 <meta name="DC.Date.Issued" scheme="ISO8601" content="2008-12"> 395 395 <meta name="DC.Relation.Replaces" content="urn:ietf:rfc:2616"> 396 396 <meta name="DC.Description.Abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 2 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 2 defines the semantics of HTTP messages as expressed by request methods, request-header fields, response status codes, and response-header fields."> … … 428 428 </tr> 429 429 <tr> 430 <td class="header left">Expires: May2009</td>430 <td class="header left">Expires: June 2009</td> 431 431 <td class="header right">H. Frystyk</td> 432 432 </tr> … … 477 477 <tr> 478 478 <td class="header left"></td> 479 <td class="header right"> November 12, 2008</td>479 <td class="header right">December 11, 2008</td> 480 480 </tr> 481 481 </table> … … 497 497 <p>The list of Internet-Draft Shadow Directories can be accessed at <<a href="http://www.ietf.org/shadow.html">http://www.ietf.org/shadow.html</a>>. 498 498 </p> 499 <p>This Internet-Draft will expire in May2009.</p>499 <p>This Internet-Draft will expire in June 2009.</p> 500 500 <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> 501 501 <p>The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information … … 509 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>>. 510 510 </p> 511 <p>The changes in this draft are summarized in <a href="#changes.since.0 4" title="Since draft-ietf-httpbis-p2-semantics-04">Appendix B.6</a>.511 <p>The changes in this draft are summarized in <a href="#changes.since.05" title="Since draft-ietf-httpbis-p2-semantics-05">Appendix C.7</a>. 512 512 </p> 513 513 <hr class="noprint"> … … 516 516 <li class="tocline0">1. <a href="#introduction">Introduction</a><ul class="toc"> 517 517 <li class="tocline1">1.1 <a href="#intro.requirements">Requirements</a></li> 518 </ul> 519 </li> 520 <li class="tocline0">2. <a href="#notation">Notational Conventions and Generic Grammar</a></li> 521 <li class="tocline0">3. <a href="#method">Method</a><ul class="toc"> 522 <li class="tocline1">3.1 <a href="#method.registry">Method Registry</a></li> 523 </ul> 524 </li> 525 <li class="tocline0">4. <a href="#request.header.fields">Request Header Fields</a></li> 526 <li class="tocline0">5. <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a><ul class="toc"> 527 <li class="tocline1">5.1 <a href="#status.code.registry">Status Code Registry</a></li> 528 </ul> 529 </li> 530 <li class="tocline0">6. <a href="#response.header.fields">Response Header Fields</a></li> 531 <li class="tocline0">7. <a href="#entity">Entity</a></li> 532 <li class="tocline0">8. <a href="#method.definitions">Method Definitions</a><ul class="toc"> 533 <li class="tocline1">8.1 <a href="#safe.and.idempotent">Safe and Idempotent Methods</a><ul class="toc"> 534 <li class="tocline1">8.1.1 <a href="#safe.methods">Safe Methods</a></li> 535 <li class="tocline1">8.1.2 <a href="#idempotent.methods">Idempotent Methods</a></li> 536 </ul> 537 </li> 538 <li class="tocline1">8.2 <a href="#OPTIONS">OPTIONS</a></li> 539 <li class="tocline1">8.3 <a href="#GET">GET</a></li> 540 <li class="tocline1">8.4 <a href="#HEAD">HEAD</a></li> 541 <li class="tocline1">8.5 <a href="#POST">POST</a></li> 542 <li class="tocline1">8.6 <a href="#PUT">PUT</a></li> 543 <li class="tocline1">8.7 <a href="#DELETE">DELETE</a></li> 544 <li class="tocline1">8.8 <a href="#TRACE">TRACE</a></li> 545 <li class="tocline1">8.9 <a href="#CONNECT">CONNECT</a></li> 546 </ul> 547 </li> 548 <li class="tocline0">9. <a href="#status.codes">Status Code Definitions</a><ul class="toc"> 549 <li class="tocline1">9.1 <a href="#status.1xx">Informational 1xx</a><ul class="toc"> 550 <li class="tocline1">9.1.1 <a href="#status.100">100 Continue</a></li> 551 <li class="tocline1">9.1.2 <a href="#status.101">101 Switching Protocols</a></li> 552 </ul> 553 </li> 554 <li class="tocline1">9.2 <a href="#status.2xx">Successful 2xx</a><ul class="toc"> 555 <li class="tocline1">9.2.1 <a href="#status.200">200 OK</a></li> 556 <li class="tocline1">9.2.2 <a href="#status.201">201 Created</a></li> 557 <li class="tocline1">9.2.3 <a href="#status.202">202 Accepted</a></li> 558 <li class="tocline1">9.2.4 <a href="#status.203">203 Non-Authoritative Information</a></li> 559 <li class="tocline1">9.2.5 <a href="#status.204">204 No Content</a></li> 560 <li class="tocline1">9.2.6 <a href="#status.205">205 Reset Content</a></li> 561 <li class="tocline1">9.2.7 <a href="#status.206">206 Partial Content</a></li> 562 </ul> 563 </li> 564 <li class="tocline1">9.3 <a href="#status.3xx">Redirection 3xx</a><ul class="toc"> 565 <li class="tocline1">9.3.1 <a href="#status.300">300 Multiple Choices</a></li> 566 <li class="tocline1">9.3.2 <a href="#status.301">301 Moved Permanently</a></li> 567 <li class="tocline1">9.3.3 <a href="#status.302">302 Found</a></li> 568 <li class="tocline1">9.3.4 <a href="#status.303">303 See Other</a></li> 569 <li class="tocline1">9.3.5 <a href="#status.304">304 Not Modified</a></li> 570 <li class="tocline1">9.3.6 <a href="#status.305">305 Use Proxy</a></li> 571 <li class="tocline1">9.3.7 <a href="#status.306">306 (Unused)</a></li> 572 <li class="tocline1">9.3.8 <a href="#status.307">307 Temporary Redirect</a></li> 573 </ul> 574 </li> 575 <li class="tocline1">9.4 <a href="#status.4xx">Client Error 4xx</a><ul class="toc"> 576 <li class="tocline1">9.4.1 <a href="#status.400">400 Bad Request</a></li> 577 <li class="tocline1">9.4.2 <a href="#status.401">401 Unauthorized</a></li> 578 <li class="tocline1">9.4.3 <a href="#status.402">402 Payment Required</a></li> 579 <li class="tocline1">9.4.4 <a href="#status.403">403 Forbidden</a></li> 580 <li class="tocline1">9.4.5 <a href="#status.404">404 Not Found</a></li> 581 <li class="tocline1">9.4.6 <a href="#status.405">405 Method Not Allowed</a></li> 582 <li class="tocline1">9.4.7 <a href="#status.406">406 Not Acceptable</a></li> 583 <li class="tocline1">9.4.8 <a href="#status.407">407 Proxy Authentication Required</a></li> 584 <li class="tocline1">9.4.9 <a href="#status.408">408 Request Timeout</a></li> 585 <li class="tocline1">9.4.10 <a href="#status.409">409 Conflict</a></li> 586 <li class="tocline1">9.4.11 <a href="#status.410">410 Gone</a></li> 587 <li class="tocline1">9.4.12 <a href="#status.411">411 Length Required</a></li> 588 <li class="tocline1">9.4.13 <a href="#status.412">412 Precondition Failed</a></li> 589 <li class="tocline1">9.4.14 <a href="#status.413">413 Request Entity Too Large</a></li> 590 <li class="tocline1">9.4.15 <a href="#status.414">414 Request-URI Too Long</a></li> 591 <li class="tocline1">9.4.16 <a href="#status.415">415 Unsupported Media Type</a></li> 592 <li class="tocline1">9.4.17 <a href="#status.416">416 Requested Range Not Satisfiable</a></li> 593 <li class="tocline1">9.4.18 <a href="#status.417">417 Expectation Failed</a></li> 594 </ul> 595 </li> 596 <li class="tocline1">9.5 <a href="#status.5xx">Server Error 5xx</a><ul class="toc"> 597 <li class="tocline1">9.5.1 <a href="#status.500">500 Internal Server Error</a></li> 598 <li class="tocline1">9.5.2 <a href="#status.501">501 Not Implemented</a></li> 599 <li class="tocline1">9.5.3 <a href="#status.502">502 Bad Gateway</a></li> 600 <li class="tocline1">9.5.4 <a href="#status.503">503 Service Unavailable</a></li> 601 <li class="tocline1">9.5.5 <a href="#status.504">504 Gateway Timeout</a></li> 602 <li class="tocline1">9.5.6 <a href="#status.505">505 HTTP Version Not Supported</a></li> 518 <li class="tocline1">1.2 <a href="#notation">Syntax Notation</a><ul class="toc"> 519 <li class="tocline1">1.2.1 <a href="#core.rules">Core Rules</a></li> 520 <li class="tocline1">1.2.2 <a href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></li> 603 521 </ul> 604 522 </li> 605 523 </ul> 606 524 </li> 607 <li class="tocline0">10. <a href="#header.fields">Header Field Definitions</a><ul class="toc"> 608 <li class="tocline1">10.1 <a href="#header.allow">Allow</a></li> 609 <li class="tocline1">10.2 <a href="#header.expect">Expect</a></li> 610 <li class="tocline1">10.3 <a href="#header.from">From</a></li> 611 <li class="tocline1">10.4 <a href="#header.location">Location</a></li> 612 <li class="tocline1">10.5 <a href="#header.max-forwards">Max-Forwards</a></li> 613 <li class="tocline1">10.6 <a href="#header.referer">Referer</a></li> 614 <li class="tocline1">10.7 <a href="#header.retry-after">Retry-After</a></li> 615 <li class="tocline1">10.8 <a href="#header.server">Server</a></li> 616 <li class="tocline1">10.9 <a href="#header.user-agent">User-Agent</a></li> 525 <li class="tocline0">2. <a href="#method">Method</a><ul class="toc"> 526 <li class="tocline1">2.1 <a href="#method.registry">Method Registry</a></li> 617 527 </ul> 618 528 </li> 619 <li class="tocline0">11. <a href="#IANA.considerations">IANA Considerations</a><ul class="toc"> 620 <li class="tocline1">11.1 <a href="#method.registration">Method Registry</a></li> 621 <li class="tocline1">11.2 <a href="#status.code.registration">Status Code Registry</a></li> 622 <li class="tocline1">11.3 <a href="#message.header.registration">Message Header Registration</a></li> 529 <li class="tocline0">3. <a href="#request.header.fields">Request Header Fields</a></li> 530 <li class="tocline0">4. <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a><ul class="toc"> 531 <li class="tocline1">4.1 <a href="#status.code.registry">Status Code Registry</a></li> 623 532 </ul> 624 533 </li> 625 <li class="tocline0">12. <a href="#security.considerations">Security Considerations</a><ul class="toc"> 626 <li class="tocline1">12.1 <a href="#security.sensitive">Transfer of Sensitive Information</a></li> 627 <li class="tocline1">12.2 <a href="#encoding.sensitive.information.in.uris">Encoding Sensitive Information in URIs</a></li> 628 <li class="tocline1">12.3 <a href="#location.spoofing">Location Headers and Spoofing</a></li> 534 <li class="tocline0">5. <a href="#response.header.fields">Response Header Fields</a></li> 535 <li class="tocline0">6. <a href="#entity">Entity</a></li> 536 <li class="tocline0">7. <a href="#method.definitions">Method Definitions</a><ul class="toc"> 537 <li class="tocline1">7.1 <a href="#safe.and.idempotent">Safe and Idempotent Methods</a><ul class="toc"> 538 <li class="tocline1">7.1.1 <a href="#safe.methods">Safe Methods</a></li> 539 <li class="tocline1">7.1.2 <a href="#idempotent.methods">Idempotent Methods</a></li> 540 </ul> 541 </li> 542 <li class="tocline1">7.2 <a href="#OPTIONS">OPTIONS</a></li> 543 <li class="tocline1">7.3 <a href="#GET">GET</a></li> 544 <li class="tocline1">7.4 <a href="#HEAD">HEAD</a></li> 545 <li class="tocline1">7.5 <a href="#POST">POST</a></li> 546 <li class="tocline1">7.6 <a href="#PUT">PUT</a></li> 547 <li class="tocline1">7.7 <a href="#DELETE">DELETE</a></li> 548 <li class="tocline1">7.8 <a href="#TRACE">TRACE</a></li> 549 <li class="tocline1">7.9 <a href="#CONNECT">CONNECT</a></li> 629 550 </ul> 630 551 </li> 631 <li class="tocline0">13. <a href="#ack">Acknowledgments</a></li> 632 <li class="tocline0">14. <a href="#rfc.references">References</a><ul class="toc"> 633 <li class="tocline1">14.1 <a href="#rfc.references.1">Normative References</a></li> 634 <li class="tocline1">14.2 <a href="#rfc.references.2">Informative References</a></li> 552 <li class="tocline0">8. <a href="#status.codes">Status Code Definitions</a><ul class="toc"> 553 <li class="tocline1">8.1 <a href="#status.1xx">Informational 1xx</a><ul class="toc"> 554 <li class="tocline1">8.1.1 <a href="#status.100">100 Continue</a></li> 555 <li class="tocline1">8.1.2 <a href="#status.101">101 Switching Protocols</a></li> 556 </ul> 557 </li> 558 <li class="tocline1">8.2 <a href="#status.2xx">Successful 2xx</a><ul class="toc"> 559 <li class="tocline1">8.2.1 <a href="#status.200">200 OK</a></li> 560 <li class="tocline1">8.2.2 <a href="#status.201">201 Created</a></li> 561 <li class="tocline1">8.2.3 <a href="#status.202">202 Accepted</a></li> 562 <li class="tocline1">8.2.4 <a href="#status.203">203 Non-Authoritative Information</a></li> 563 <li class="tocline1">8.2.5 <a href="#status.204">204 No Content</a></li> 564 <li class="tocline1">8.2.6 <a href="#status.205">205 Reset Content</a></li> 565 <li class="tocline1">8.2.7 <a href="#status.206">206 Partial Content</a></li> 566 </ul> 567 </li> 568 <li class="tocline1">8.3 <a href="#status.3xx">Redirection 3xx</a><ul class="toc"> 569 <li class="tocline1">8.3.1 <a href="#status.300">300 Multiple Choices</a></li> 570 <li class="tocline1">8.3.2 <a href="#status.301">301 Moved Permanently</a></li> 571 <li class="tocline1">8.3.3 <a href="#status.302">302 Found</a></li> 572 <li class="tocline1">8.3.4 <a href="#status.303">303 See Other</a></li> 573 <li class="tocline1">8.3.5 <a href="#status.304">304 Not Modified</a></li> 574 <li class="tocline1">8.3.6 <a href="#status.305">305 Use Proxy</a></li> 575 <li class="tocline1">8.3.7 <a href="#status.306">306 (Unused)</a></li> 576 <li class="tocline1">8.3.8 <a href="#status.307">307 Temporary Redirect</a></li> 577 </ul> 578 </li> 579 <li class="tocline1">8.4 <a href="#status.4xx">Client Error 4xx</a><ul class="toc"> 580 <li class="tocline1">8.4.1 <a href="#status.400">400 Bad Request</a></li> 581 <li class="tocline1">8.4.2 <a href="#status.401">401 Unauthorized</a></li> 582 <li class="tocline1">8.4.3 <a href="#status.402">402 Payment Required</a></li> 583 <li class="tocline1">8.4.4 <a href="#status.403">403 Forbidden</a></li> 584 <li class="tocline1">8.4.5 <a href="#status.404">404 Not Found</a></li> 585 <li class="tocline1">8.4.6 <a href="#status.405">405 Method Not Allowed</a></li> 586 <li class="tocline1">8.4.7 <a href="#status.406">406 Not Acceptable</a></li> 587 <li class="tocline1">8.4.8 <a href="#status.407">407 Proxy Authentication Required</a></li> 588 <li class="tocline1">8.4.9 <a href="#status.408">408 Request Timeout</a></li> 589 <li class="tocline1">8.4.10 <a href="#status.409">409 Conflict</a></li> 590 <li class="tocline1">8.4.11 <a href="#status.410">410 Gone</a></li> 591 <li class="tocline1">8.4.12 <a href="#status.411">411 Length Required</a></li> 592 <li class="tocline1">8.4.13 <a href="#status.412">412 Precondition Failed</a></li> 593 <li class="tocline1">8.4.14 <a href="#status.413">413 Request Entity Too Large</a></li> 594 <li class="tocline1">8.4.15 <a href="#status.414">414 Request-target Too Long</a></li> 595 <li class="tocline1">8.4.16 <a href="#status.415">415 Unsupported Media Type</a></li> 596 <li class="tocline1">8.4.17 <a href="#status.416">416 Requested Range Not Satisfiable</a></li> 597 <li class="tocline1">8.4.18 <a href="#status.417">417 Expectation Failed</a></li> 598 </ul> 599 </li> 600 <li class="tocline1">8.5 <a href="#status.5xx">Server Error 5xx</a><ul class="toc"> 601 <li class="tocline1">8.5.1 <a href="#status.500">500 Internal Server Error</a></li> 602 <li class="tocline1">8.5.2 <a href="#status.501">501 Not Implemented</a></li> 603 <li class="tocline1">8.5.3 <a href="#status.502">502 Bad Gateway</a></li> 604 <li class="tocline1">8.5.4 <a href="#status.503">503 Service Unavailable</a></li> 605 <li class="tocline1">8.5.5 <a href="#status.504">504 Gateway Timeout</a></li> 606 <li class="tocline1">8.5.6 <a href="#status.505">505 HTTP Version Not Supported</a></li> 607 </ul> 608 </li> 609 </ul> 610 </li> 611 <li class="tocline0">9. <a href="#header.fields">Header Field Definitions</a><ul class="toc"> 612 <li class="tocline1">9.1 <a href="#header.allow">Allow</a></li> 613 <li class="tocline1">9.2 <a href="#header.expect">Expect</a></li> 614 <li class="tocline1">9.3 <a href="#header.from">From</a></li> 615 <li class="tocline1">9.4 <a href="#header.location">Location</a></li> 616 <li class="tocline1">9.5 <a href="#header.max-forwards">Max-Forwards</a></li> 617 <li class="tocline1">9.6 <a href="#header.referer">Referer</a></li> 618 <li class="tocline1">9.7 <a href="#header.retry-after">Retry-After</a></li> 619 <li class="tocline1">9.8 <a href="#header.server">Server</a></li> 620 <li class="tocline1">9.9 <a href="#header.user-agent">User-Agent</a></li> 621 </ul> 622 </li> 623 <li class="tocline0">10. <a href="#IANA.considerations">IANA Considerations</a><ul class="toc"> 624 <li class="tocline1">10.1 <a href="#method.registration">Method Registry</a></li> 625 <li class="tocline1">10.2 <a href="#status.code.registration">Status Code Registry</a></li> 626 <li class="tocline1">10.3 <a href="#message.header.registration">Message Header Registration</a></li> 627 </ul> 628 </li> 629 <li class="tocline0">11. <a href="#security.considerations">Security Considerations</a><ul class="toc"> 630 <li class="tocline1">11.1 <a href="#security.sensitive">Transfer of Sensitive Information</a></li> 631 <li class="tocline1">11.2 <a href="#encoding.sensitive.information.in.uris">Encoding Sensitive Information in URIs</a></li> 632 <li class="tocline1">11.3 <a href="#location.spoofing">Location Headers and Spoofing</a></li> 633 </ul> 634 </li> 635 <li class="tocline0">12. <a href="#ack">Acknowledgments</a></li> 636 <li class="tocline0">13. <a href="#rfc.references">References</a><ul class="toc"> 637 <li class="tocline1">13.1 <a href="#rfc.references.1">Normative References</a></li> 638 <li class="tocline1">13.2 <a href="#rfc.references.2">Informative References</a></li> 635 639 </ul> 636 640 </li> … … 641 645 </ul> 642 646 </li> 643 <li class="tocline0">B. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul class="toc"> 644 <li class="tocline1">B.1 <a href="#rfc.section.B.1">Since RFC2616</a></li> 645 <li class="tocline1">B.2 <a href="#rfc.section.B.2">Since draft-ietf-httpbis-p2-semantics-00</a></li> 646 <li class="tocline1">B.3 <a href="#rfc.section.B.3">Since draft-ietf-httpbis-p2-semantics-01</a></li> 647 <li class="tocline1">B.4 <a href="#changes.since.02">Since draft-ietf-httpbis-p2-semantics-02</a></li> 648 <li class="tocline1">B.5 <a href="#changes.since.03">Since draft-ietf-httpbis-p2-semantics-03</a></li> 649 <li class="tocline1">B.6 <a href="#changes.since.04">Since draft-ietf-httpbis-p2-semantics-04</a></li> 647 <li class="tocline0">B. <a href="#collected.abnf">Collected ABNF</a></li> 648 <li class="tocline0">C. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul class="toc"> 649 <li class="tocline1">C.1 <a href="#rfc.section.C.1">Since RFC2616</a></li> 650 <li class="tocline1">C.2 <a href="#rfc.section.C.2">Since draft-ietf-httpbis-p2-semantics-00</a></li> 651 <li class="tocline1">C.3 <a href="#rfc.section.C.3">Since draft-ietf-httpbis-p2-semantics-01</a></li> 652 <li class="tocline1">C.4 <a href="#changes.since.02">Since draft-ietf-httpbis-p2-semantics-02</a></li> 653 <li class="tocline1">C.5 <a href="#changes.since.03">Since draft-ietf-httpbis-p2-semantics-03</a></li> 654 <li class="tocline1">C.6 <a href="#changes.since.04">Since draft-ietf-httpbis-p2-semantics-04</a></li> 655 <li class="tocline1">C.7 <a href="#changes.since.05">Since draft-ietf-httpbis-p2-semantics-05</a></li> 650 656 </ul> 651 657 </li> … … 671 677 <p id="rfc.section.1.1.p.2">An implementation is not compliant if it fails to satisfy one or more of the <em class="bcp14">MUST</em> or <em class="bcp14">REQUIRED</em> level requirements for the protocols it implements. An implementation that satisfies all the <em class="bcp14">MUST</em> or <em class="bcp14">REQUIRED</em> level and all the <em class="bcp14">SHOULD</em> level requirements for its protocols is said to be "unconditionally compliant"; one that satisfies all the <em class="bcp14">MUST</em> level requirements but not all the <em class="bcp14">SHOULD</em> level requirements for its protocols is said to be "conditionally compliant." 672 678 </p> 673 <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="notation" href="#notation">Notational Conventions and Generic Grammar</a></h1> 674 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extensions">Section 1.2.1</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 675 </p> 676 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 677 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#notation" class="smpl">comment</a> = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 678 <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 679 <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 680 </pre><div id="abnf.dependencies"> 681 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 682 </div> 683 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 684 <a href="#abnf.dependencies" class="smpl">fragment</a> = <fragment, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 685 <a href="#abnf.dependencies" class="smpl">Host</a> = <Host, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a>> 686 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.2.1</a>> 687 <a href="#abnf.dependencies" class="smpl">product</a> = <product, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#product.tokens" title="Product Tokens">Section 3.4</a>> 688 <a href="#abnf.dependencies" class="smpl">relativeURI</a> = <relativeURI, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 689 <a href="#abnf.dependencies" class="smpl">TE</a> = <TE, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>> 690 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept</a> = <Accept, defined in <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>> 679 <h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a> <a id="notation" href="#notation">Syntax Notation</a></h2> 680 <p id="rfc.section.1.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. The following core rules are included by reference, as defined in <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>, <a href="http://tools.ietf.org/html/rfc5234#section-B.1">Appendix B.1</a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 681 (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), VCHAR (any visible USASCII character), 682 and WSP (whitespace). 683 </p> 684 <h3 id="rfc.section.1.2.1"><a href="#rfc.section.1.2.1">1.2.1</a> <a id="core.rules" href="#core.rules">Core Rules</a></h3> 685 <p id="rfc.section.1.2.1.p.1">The core rules below are defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: 686 </p> 687 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#core.rules" class="smpl">comment</a> = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 688 <a href="#core.rules" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 689 <a href="#core.rules" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 690 <a href="#core.rules" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 691 <a href="#core.rules" class="smpl">RWS</a> = <RWS, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 692 <a href="#core.rules" class="smpl">obs-text</a> = <obs-text, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 693 </pre><h3 id="rfc.section.1.2.2"><a href="#rfc.section.1.2.2">1.2.2</a> <a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h3> 694 <p id="rfc.section.1.2.2.p.1">The ABNF rules below are defined in other parts:</p> 695 <div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">absolute-URI</a> = <absolute-URI, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 696 <a href="#abnf.dependencies" class="smpl">fragment</a> = <fragment, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 697 <a href="#abnf.dependencies" class="smpl">Host</a> = <Host, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 698 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.2.1</a>> 699 <a href="#abnf.dependencies" class="smpl">partial-URI</a> = <partial-URI, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.1</a>> 700 <a href="#abnf.dependencies" class="smpl">product</a> = <product, defined in <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#product.tokens" title="Product Tokens">Section 3.4</a>> 701 <a href="#abnf.dependencies" class="smpl">TE</a> = <TE, defined in <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>> 702 </pre><div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept</a> = <Accept, defined in <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 5.1</a>> 691 703 <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> = 692 <Accept-Charset, defined in <a href="#Part3" id="rfc.xref.Part3.2"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 6.2</a>>704 <Accept-Charset, defined in <a href="#Part3" id="rfc.xref.Part3.2"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 5.2</a>> 693 705 <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> = 694 <Accept-Encoding, defined in <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 6.3</a>>706 <Accept-Encoding, defined in <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 5.3</a>> 695 707 <a href="#abnf.dependencies" class="smpl">Accept-Language</a> = 696 <Accept-Language, defined in <a href="#Part3" id="rfc.xref.Part3.4"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 6.4</a>>697 </pre><div id="rfc.figure.u. 5"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">ETag</a> = <ETag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a>>698 <a href="#abnf.dependencies" class="smpl">If-Match</a> = <If-Match, defined in <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a>>708 <Accept-Language, defined in <a href="#Part3" id="rfc.xref.Part3.4"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 5.4</a>> 709 </pre><div id="rfc.figure.u.4"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">ETag</a> = <ETag, defined in <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a>> 710 <a href="#abnf.dependencies" class="smpl">If-Match</a> = <If-Match, defined in <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 6.2</a>> 699 711 <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> = 700 <If-Modified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 7.3</a>>701 <a href="#abnf.dependencies" class="smpl">If-None-Match</a> = <If-None-Match, defined in <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a>>712 <If-Modified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 6.3</a>> 713 <a href="#abnf.dependencies" class="smpl">If-None-Match</a> = <If-None-Match, defined in <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 6.4</a>> 702 714 <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> = 703 <If-Unmodified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.5"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 7.5</a>>704 </pre><div id="rfc.figure.u. 6"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> = <Accept-Ranges, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a>>705 <a href="#abnf.dependencies" class="smpl">If-Range</a> = <If-Range, defined in <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a>>706 <a href="#abnf.dependencies" class="smpl">Range</a> = <Range, defined in <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a>>707 </pre><div id="rfc.figure.u. 7"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Age</a> = <Age, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a>>708 <a href="#abnf.dependencies" class="smpl">Vary</a> = <Vary, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a>>709 </pre><div id="rfc.figure.u. 8"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Authorization</a> = <Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a>>715 <If-Unmodified-Since, defined in <a href="#Part4" id="rfc.xref.Part4.5"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 6.5</a>> 716 </pre><div id="rfc.figure.u.5"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> = <Accept-Ranges, defined in <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a>> 717 <a href="#abnf.dependencies" class="smpl">If-Range</a> = <If-Range, defined in <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a>> 718 <a href="#abnf.dependencies" class="smpl">Range</a> = <Range, defined in <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 5.4</a>> 719 </pre><div id="rfc.figure.u.6"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Age</a> = <Age, defined in <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 4.1</a>> 720 <a href="#abnf.dependencies" class="smpl">Vary</a> = <Vary, defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 4.5</a>> 721 </pre><div id="rfc.figure.u.7"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Authorization</a> = <Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a>> 710 722 <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> = 711 <Proxy-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.2"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a>>723 <Proxy-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.2"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 3.2</a>> 712 724 <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> = 713 <Proxy-Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.3"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a>>725 <Proxy-Authorization, defined in <a href="#Part7" id="rfc.xref.Part7.3"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 3.3</a>> 714 726 <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> = 715 <WWW-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.4"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a>>716 </pre><h1 id="rfc.section. 3"><a href="#rfc.section.3">3.</a> <a id="method" href="#method">Method</a></h1>717 <p id="rfc.section. 3.p.1">The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive.</p>718 <div id="rfc.figure.u. 9"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#method" class="smpl">Method</a> = %x4F.50.54.49.4F.4E.53 ; "OPTIONS", <a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS">Section 8.2</a>719 / %x47.45.54 ; "GET", <a href="#GET" id="rfc.xref.GET.1" title="GET">Section 8.3</a>720 / %x48.45.41.44 ; "HEAD", <a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD">Section 8.4</a>721 / %x50.4F.53.54 ; "POST", <a href="#POST" id="rfc.xref.POST.1" title="POST">Section 8.5</a>722 / %x50.55.54 ; "PUT", <a href="#PUT" id="rfc.xref.PUT.1" title="PUT">Section 8.6</a>723 / %x44.45.4C.45.54.45 ; "DELETE", <a href="#DELETE" id="rfc.xref.DELETE.1" title="DELETE">Section 8.7</a>724 / %x54.52.41.43.45 ; "TRACE", <a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE">Section 8.8</a>725 / %x43.4F.4E.4E.45.43.54 ; "CONNECT", <a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT">Section 8.9</a>727 <WWW-Authenticate, defined in <a href="#Part7" id="rfc.xref.Part7.4"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 3.4</a>> 728 </pre><h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="method" href="#method">Method</a></h1> 729 <p id="rfc.section.2.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> 730 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#method" class="smpl">Method</a> = %x4F.50.54.49.4F.4E.53 ; "OPTIONS", <a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS">Section 7.2</a> 731 / %x47.45.54 ; "GET", <a href="#GET" id="rfc.xref.GET.1" title="GET">Section 7.3</a> 732 / %x48.45.41.44 ; "HEAD", <a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD">Section 7.4</a> 733 / %x50.4F.53.54 ; "POST", <a href="#POST" id="rfc.xref.POST.1" title="POST">Section 7.5</a> 734 / %x50.55.54 ; "PUT", <a href="#PUT" id="rfc.xref.PUT.1" title="PUT">Section 7.6</a> 735 / %x44.45.4C.45.54.45 ; "DELETE", <a href="#DELETE" id="rfc.xref.DELETE.1" title="DELETE">Section 7.7</a> 736 / %x54.52.41.43.45 ; "TRACE", <a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE">Section 7.8</a> 737 / %x43.4F.4E.4E.45.43.54 ; "CONNECT", <a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT">Section 7.9</a> 726 738 / <a href="#method" class="smpl">extension-method</a> 727 <a href="#method" class="smpl">extension-method</a> = <a href="# notation" class="smpl">token</a>728 </pre><p id="rfc.section. 3.p.3">The list of methods allowed by a resource can be specified in an Allow header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 10.1</a>). The return code of the response always notifies the client whether a method is currently allowed on a resource, since the739 <a href="#method" class="smpl">extension-method</a> = <a href="#core.rules" class="smpl">token</a> 740 </pre><p id="rfc.section.2.p.3">The list of methods allowed by a resource can be specified in an Allow header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 9.1</a>). The return code of the response always notifies the client whether a method is currently allowed on a resource, since the 729 741 set of allowed methods can change dynamically. An origin server <em class="bcp14">SHOULD</em> return the status code 405 (Method Not Allowed) if the method is known by the origin server but not allowed for the requested 730 742 resource, and 501 (Not Implemented) if the method is unrecognized or not implemented by the origin server. The methods GET 731 and HEAD <em class="bcp14">MUST</em> be supported by all general-purpose servers. All other methods are <em class="bcp14">OPTIONAL</em>; however, if the above methods are implemented, they <em class="bcp14">MUST</em> be implemented with the same semantics as those specified in <a href="#method.definitions" title="Method Definitions">Section 8</a>.732 </p> 733 <h2 id="rfc.section. 3.1"><a href="#rfc.section.3.1">3.1</a> <a id="method.registry" href="#method.registry">Method Registry</a></h2>734 <p id="rfc.section. 3.1.p.1">The HTTP Method Registry defines the name space for the Method token in the Request line of an HTTP request.</p>735 <p id="rfc.section. 3.1.p.2">Registrations <em class="bcp14">MUST</em> include the following fields:743 and HEAD <em class="bcp14">MUST</em> be supported by all general-purpose servers. All other methods are <em class="bcp14">OPTIONAL</em>; however, if the above methods are implemented, they <em class="bcp14">MUST</em> be implemented with the same semantics as those specified in <a href="#method.definitions" title="Method Definitions">Section 7</a>. 744 </p> 745 <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> <a id="method.registry" href="#method.registry">Method Registry</a></h2> 746 <p id="rfc.section.2.1.p.1">The HTTP Method Registry defines the name space for the Method token in the Request line of an HTTP request.</p> 747 <p id="rfc.section.2.1.p.2">Registrations <em class="bcp14">MUST</em> include the following fields: 736 748 </p> 737 749 <ul> 738 <li>Method Name (see <a href="#method" title="Method">Section 3</a>)739 </li> 740 <li>Safe ("yes" or "no", see <a href="#safe.methods" title="Safe Methods">Section 8.1.1</a>)750 <li>Method Name (see <a href="#method" title="Method">Section 2</a>) 751 </li> 752 <li>Safe ("yes" or "no", see <a href="#safe.methods" title="Safe Methods">Section 7.1.1</a>) 741 753 </li> 742 754 <li>Pointer to specification text</li> 743 755 </ul> 744 <p id="rfc.section. 3.1.p.3">Values to be added to this name space are subject to IETF review (<a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). Any document registering new method names should be traceable through statuses of either 'Obsoletes' or 'Updates' to this756 <p id="rfc.section.2.1.p.3">Values to be added to this name space are subject to IETF review (<a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). Any document registering new method names should be traceable through statuses of either 'Obsoletes' or 'Updates' to this 745 757 document. 746 758 </p> 747 <p id="rfc.section. 3.1.p.4">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-methods">http://www.iana.org/assignments/http-methods</a>>.748 </p> 749 <h1 id="rfc.section. 4"><a href="#rfc.section.4">4.</a> <a id="request.header.fields" href="#request.header.fields">Request Header Fields</a></h1>750 <p id="rfc.section. 4.p.1">The request-header fields allow the client to pass additional information about the request, and about the client itself,759 <p id="rfc.section.2.1.p.4">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-methods">http://www.iana.org/assignments/http-methods</a>>. 760 </p> 761 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="request.header.fields" href="#request.header.fields">Request Header Fields</a></h1> 762 <p id="rfc.section.3.p.1">The request-header fields allow the client to pass additional information about the request, and about the client itself, 751 763 to the server. These fields act as request modifiers, with semantics equivalent to the parameters on a programming language 752 764 method invocation. 753 765 </p> 754 <div id="rfc.figure.u. 10"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#request.header.fields" class="smpl">request-header</a> = <a href="#abnf.dependencies" class="smpl">Accept</a> ; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 6.1</a>755 / <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> ; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 6.2</a>756 / <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> ; <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 6.3</a>757 / <a href="#abnf.dependencies" class="smpl">Accept-Language</a> ; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 6.4</a>758 / <a href="#abnf.dependencies" class="smpl">Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a>759 / <a href="#header.expect" class="smpl">Expect</a> ; <a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 10.2</a>760 / <a href="#header.from" class="smpl">From</a> ; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 10.3</a>761 / <a href="#abnf.dependencies" class="smpl">Host</a> ; <a href="#Part1" id="rfc.xref.Part1.1 5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a>762 / <a href="#abnf.dependencies" class="smpl">If-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 7.2</a>763 / <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 7.3</a>764 / <a href="#abnf.dependencies" class="smpl">If-None-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 7.4</a>765 / <a href="#abnf.dependencies" class="smpl">If-Range</a> ; <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a>766 / <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 7.5</a>767 / <a href="#header.max-forwards" class="smpl">Max-Forwards</a> ; <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 10.5</a>768 / <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.6"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a>769 / <a href="#abnf.dependencies" class="smpl">Range</a> ; <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 6.4</a>770 / <a href="#header.referer" class="smpl">Referer</a> ; <a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 10.6</a>771 / <a href="#abnf.dependencies" class="smpl">TE</a> ; <a href="#Part1" id="rfc.xref.Part1.1 6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a>772 / <a href="#header.user-agent" class="smpl">User-Agent</a> ; <a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 10.9</a>773 </pre><p id="rfc.section. 4.p.3">Request-header field names can be extended reliably only in combination with a change in the protocol version. However, new766 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#request.header.fields" class="smpl">request-header</a> = <a href="#abnf.dependencies" class="smpl">Accept</a> ; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept" title="Accept">Section 5.1</a> 767 / <a href="#abnf.dependencies" class="smpl">Accept-Charset</a> ; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-charset" title="Accept-Charset">Section 5.2</a> 768 / <a href="#abnf.dependencies" class="smpl">Accept-Encoding</a> ; <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-encoding" title="Accept-Encoding">Section 5.3</a> 769 / <a href="#abnf.dependencies" class="smpl">Accept-Language</a> ; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#header.accept-language" title="Accept-Language">Section 5.4</a> 770 / <a href="#abnf.dependencies" class="smpl">Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> 771 / <a href="#header.expect" class="smpl">Expect</a> ; <a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 9.2</a> 772 / <a href="#header.from" class="smpl">From</a> ; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 9.3</a> 773 / <a href="#abnf.dependencies" class="smpl">Host</a> ; <a href="#Part1" id="rfc.xref.Part1.17"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 8.4</a> 774 / <a href="#abnf.dependencies" class="smpl">If-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 6.2</a> 775 / <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 6.3</a> 776 / <a href="#abnf.dependencies" class="smpl">If-None-Match</a> ; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 6.4</a> 777 / <a href="#abnf.dependencies" class="smpl">If-Range</a> ; <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a> 778 / <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a> ; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 6.5</a> 779 / <a href="#header.max-forwards" class="smpl">Max-Forwards</a> ; <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 9.5</a> 780 / <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a> ; <a href="#Part7" id="rfc.xref.Part7.6"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 3.3</a> 781 / <a href="#abnf.dependencies" class="smpl">Range</a> ; <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.range" title="Range">Section 5.4</a> 782 / <a href="#header.referer" class="smpl">Referer</a> ; <a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 9.6</a> 783 / <a href="#abnf.dependencies" class="smpl">TE</a> ; <a href="#Part1" id="rfc.xref.Part1.18"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 8.8</a> 784 / <a href="#header.user-agent" class="smpl">User-Agent</a> ; <a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 9.9</a> 785 </pre><p id="rfc.section.3.p.3">Request-header field names can be extended reliably only in combination with a change in the protocol version. However, new 774 786 or experimental header fields <em class="bcp14">MAY</em> be given the semantics of request-header fields if all parties in the communication recognize them to be request-header fields. 775 787 Unrecognized header fields are treated as entity-header fields. 776 788 </p> 777 <h1 id="rfc.section. 5"><a href="#rfc.section.5">5.</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h1>778 <p id="rfc.section. 5.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. The status779 codes listed below are defined in <a href="#status.codes" title="Status Code Definitions">Section 9</a>. The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use789 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h1> 790 <p id="rfc.section.4.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. The status 791 codes listed below are defined in <a href="#status.codes" title="Status Code Definitions">Section 8</a>. The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use 780 792 by automata and the Reason-Phrase is intended for the human user. The client is not required to examine or display the Reason-Phrase. 781 793 </p> 782 <p id="rfc.section. 5.p.2">The individual values of the numeric status codes defined for HTTP/1.1, and an example set of corresponding Reason-Phrase's,794 <p id="rfc.section.4.p.2">The individual values of the numeric status codes defined for HTTP/1.1, and an example set of corresponding Reason-Phrase's, 783 795 are presented below. The reason phrases listed here are only recommendations -- they <em class="bcp14">MAY</em> be replaced by local equivalents without affecting the protocol. 784 796 </p> 785 <div id="rfc.figure.u.1 1"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> =786 "100" ; <a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section 9.1.1</a>: Continue787 / "101" ; <a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section 9.1.2</a>: Switching Protocols788 / "200" ; <a href="#status.200" id="rfc.xref.status.200.1" title="200 OK">Section 9.2.1</a>: OK789 / "201" ; <a href="#status.201" id="rfc.xref.status.201.1" title="201 Created">Section 9.2.2</a>: Created790 / "202" ; <a href="#status.202" id="rfc.xref.status.202.1" title="202 Accepted">Section 9.2.3</a>: Accepted791 / "203" ; <a href="#status.203" id="rfc.xref.status.203.1" title="203 Non-Authoritative Information">Section 9.2.4</a>: Non-Authoritative Information792 / "204" ; <a href="#status.204" id="rfc.xref.status.204.1" title="204 No Content">Section 9.2.5</a>: No Content793 / "205" ; <a href="#status.205" id="rfc.xref.status.205.1" title="205 Reset Content">Section 9.2.6</a>: Reset Content794 / "206" ; <a href="#status.206" id="rfc.xref.status.206.1" title="206 Partial Content">Section 9.2.7</a>: Partial Content795 / "300" ; <a href="#status.300" id="rfc.xref.status.300.1" title="300 Multiple Choices">Section 9.3.1</a>: Multiple Choices796 / "301" ; <a href="#status.301" id="rfc.xref.status.301.1" title="301 Moved Permanently">Section 9.3.2</a>: Moved Permanently797 / "302" ; <a href="#status.302" id="rfc.xref.status.302.1" title="302 Found">Section 9.3.3</a>: Found798 / "303" ; <a href="#status.303" id="rfc.xref.status.303.1" title="303 See Other">Section 9.3.4</a>: See Other799 / "304" ; <a href="#status.304" id="rfc.xref.status.304.1" title="304 Not Modified">Section 9.3.5</a>: Not Modified800 / "305" ; <a href="#status.305" id="rfc.xref.status.305.1" title="305 Use Proxy">Section 9.3.6</a>: Use Proxy801 / "307" ; <a href="#status.307" id="rfc.xref.status.307.1" title="307 Temporary Redirect">Section 9.3.8</a>: Temporary Redirect802 / "400" ; <a href="#status.400" id="rfc.xref.status.400.1" title="400 Bad Request">Section 9.4.1</a>: Bad Request803 / "401" ; <a href="#status.401" id="rfc.xref.status.401.1" title="401 Unauthorized">Section 9.4.2</a>: Unauthorized804 / "402" ; <a href="#status.402" id="rfc.xref.status.402.1" title="402 Payment Required">Section 9.4.3</a>: Payment Required805 / "403" ; <a href="#status.403" id="rfc.xref.status.403.1" title="403 Forbidden">Section 9.4.4</a>: Forbidden806 / "404" ; <a href="#status.404" id="rfc.xref.status.404.1" title="404 Not Found">Section 9.4.5</a>: Not Found807 / "405" ; <a href="#status.405" id="rfc.xref.status.405.1" title="405 Method Not Allowed">Section 9.4.6</a>: Method Not Allowed808 / "406" ; <a href="#status.406" id="rfc.xref.status.406.1" title="406 Not Acceptable">Section 9.4.7</a>: Not Acceptable809 / "407" ; <a href="#status.407" id="rfc.xref.status.407.1" title="407 Proxy Authentication Required">Section 9.4.8</a>: Proxy Authentication Required810 / "408" ; <a href="#status.408" id="rfc.xref.status.408.1" title="408 Request Timeout">Section 9.4.9</a>: Request Time-out811 / "409" ; <a href="#status.409" id="rfc.xref.status.409.1" title="409 Conflict">Section 9.4.10</a>: Conflict812 / "410" ; <a href="#status.410" id="rfc.xref.status.410.1" title="410 Gone">Section 9.4.11</a>: Gone813 / "411" ; <a href="#status.411" id="rfc.xref.status.411.1" title="411 Length Required">Section 9.4.12</a>: Length Required814 / "412" ; <a href="#status.412" id="rfc.xref.status.412.1" title="412 Precondition Failed">Section 9.4.13</a>: Precondition Failed815 / "413" ; <a href="#status.413" id="rfc.xref.status.413.1" title="413 Request Entity Too Large">Section 9.4.14</a>: Request Entity Too Large816 / "414" ; <a href="#status.414" id="rfc.xref.status.414.1" title="414 Request- URI Too Long">Section 9.4.15</a>: Request-URI Too Large817 / "415" ; <a href="#status.415" id="rfc.xref.status.415.1" title="415 Unsupported Media Type">Section 9.4.16</a>: Unsupported Media Type818 / "416" ; <a href="#status.416" id="rfc.xref.status.416.1" title="416 Requested Range Not Satisfiable">Section 9.4.17</a>: Requested range not satisfiable819 / "417" ; <a href="#status.417" id="rfc.xref.status.417.1" title="417 Expectation Failed">Section 9.4.18</a>: Expectation Failed820 / "500" ; <a href="#status.500" id="rfc.xref.status.500.1" title="500 Internal Server Error">Section 9.5.1</a>: Internal Server Error821 / "501" ; <a href="#status.501" id="rfc.xref.status.501.1" title="501 Not Implemented">Section 9.5.2</a>: Not Implemented822 / "502" ; <a href="#status.502" id="rfc.xref.status.502.1" title="502 Bad Gateway">Section 9.5.3</a>: Bad Gateway823 / "503" ; <a href="#status.503" id="rfc.xref.status.503.1" title="503 Service Unavailable">Section 9.5.4</a>: Service Unavailable824 / "504" ; <a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section 9.5.5</a>: Gateway Time-out825 / "505" ; <a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section 9.5.6</a>: HTTP Version not supported826 / <a href="# request.header.fields" class="smpl">extension-code</a>827 828 <a href="# request.header.fields" class="smpl">extension-code</a> = 3<a href="#notation" class="smpl">DIGIT</a>829 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = * <TEXT, excluding CR, LF>830 </pre><p id="rfc.section. 5.p.4">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes,797 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 798 "100" ; <a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section 8.1.1</a>: Continue 799 / "101" ; <a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section 8.1.2</a>: Switching Protocols 800 / "200" ; <a href="#status.200" id="rfc.xref.status.200.1" title="200 OK">Section 8.2.1</a>: OK 801 / "201" ; <a href="#status.201" id="rfc.xref.status.201.1" title="201 Created">Section 8.2.2</a>: Created 802 / "202" ; <a href="#status.202" id="rfc.xref.status.202.1" title="202 Accepted">Section 8.2.3</a>: Accepted 803 / "203" ; <a href="#status.203" id="rfc.xref.status.203.1" title="203 Non-Authoritative Information">Section 8.2.4</a>: Non-Authoritative Information 804 / "204" ; <a href="#status.204" id="rfc.xref.status.204.1" title="204 No Content">Section 8.2.5</a>: No Content 805 / "205" ; <a href="#status.205" id="rfc.xref.status.205.1" title="205 Reset Content">Section 8.2.6</a>: Reset Content 806 / "206" ; <a href="#status.206" id="rfc.xref.status.206.1" title="206 Partial Content">Section 8.2.7</a>: Partial Content 807 / "300" ; <a href="#status.300" id="rfc.xref.status.300.1" title="300 Multiple Choices">Section 8.3.1</a>: Multiple Choices 808 / "301" ; <a href="#status.301" id="rfc.xref.status.301.1" title="301 Moved Permanently">Section 8.3.2</a>: Moved Permanently 809 / "302" ; <a href="#status.302" id="rfc.xref.status.302.1" title="302 Found">Section 8.3.3</a>: Found 810 / "303" ; <a href="#status.303" id="rfc.xref.status.303.1" title="303 See Other">Section 8.3.4</a>: See Other 811 / "304" ; <a href="#status.304" id="rfc.xref.status.304.1" title="304 Not Modified">Section 8.3.5</a>: Not Modified 812 / "305" ; <a href="#status.305" id="rfc.xref.status.305.1" title="305 Use Proxy">Section 8.3.6</a>: Use Proxy 813 / "307" ; <a href="#status.307" id="rfc.xref.status.307.1" title="307 Temporary Redirect">Section 8.3.8</a>: Temporary Redirect 814 / "400" ; <a href="#status.400" id="rfc.xref.status.400.1" title="400 Bad Request">Section 8.4.1</a>: Bad Request 815 / "401" ; <a href="#status.401" id="rfc.xref.status.401.1" title="401 Unauthorized">Section 8.4.2</a>: Unauthorized 816 / "402" ; <a href="#status.402" id="rfc.xref.status.402.1" title="402 Payment Required">Section 8.4.3</a>: Payment Required 817 / "403" ; <a href="#status.403" id="rfc.xref.status.403.1" title="403 Forbidden">Section 8.4.4</a>: Forbidden 818 / "404" ; <a href="#status.404" id="rfc.xref.status.404.1" title="404 Not Found">Section 8.4.5</a>: Not Found 819 / "405" ; <a href="#status.405" id="rfc.xref.status.405.1" title="405 Method Not Allowed">Section 8.4.6</a>: Method Not Allowed 820 / "406" ; <a href="#status.406" id="rfc.xref.status.406.1" title="406 Not Acceptable">Section 8.4.7</a>: Not Acceptable 821 / "407" ; <a href="#status.407" id="rfc.xref.status.407.1" title="407 Proxy Authentication Required">Section 8.4.8</a>: Proxy Authentication Required 822 / "408" ; <a href="#status.408" id="rfc.xref.status.408.1" title="408 Request Timeout">Section 8.4.9</a>: Request Time-out 823 / "409" ; <a href="#status.409" id="rfc.xref.status.409.1" title="409 Conflict">Section 8.4.10</a>: Conflict 824 / "410" ; <a href="#status.410" id="rfc.xref.status.410.1" title="410 Gone">Section 8.4.11</a>: Gone 825 / "411" ; <a href="#status.411" id="rfc.xref.status.411.1" title="411 Length Required">Section 8.4.12</a>: Length Required 826 / "412" ; <a href="#status.412" id="rfc.xref.status.412.1" title="412 Precondition Failed">Section 8.4.13</a>: Precondition Failed 827 / "413" ; <a href="#status.413" id="rfc.xref.status.413.1" title="413 Request Entity Too Large">Section 8.4.14</a>: Request Entity Too Large 828 / "414" ; <a href="#status.414" id="rfc.xref.status.414.1" title="414 Request-target Too Long">Section 8.4.15</a>: Request-target Too Long 829 / "415" ; <a href="#status.415" id="rfc.xref.status.415.1" title="415 Unsupported Media Type">Section 8.4.16</a>: Unsupported Media Type 830 / "416" ; <a href="#status.416" id="rfc.xref.status.416.1" title="416 Requested Range Not Satisfiable">Section 8.4.17</a>: Requested range not satisfiable 831 / "417" ; <a href="#status.417" id="rfc.xref.status.417.1" title="417 Expectation Failed">Section 8.4.18</a>: Expectation Failed 832 / "500" ; <a href="#status.500" id="rfc.xref.status.500.1" title="500 Internal Server Error">Section 8.5.1</a>: Internal Server Error 833 / "501" ; <a href="#status.501" id="rfc.xref.status.501.1" title="501 Not Implemented">Section 8.5.2</a>: Not Implemented 834 / "502" ; <a href="#status.502" id="rfc.xref.status.502.1" title="502 Bad Gateway">Section 8.5.3</a>: Bad Gateway 835 / "503" ; <a href="#status.503" id="rfc.xref.status.503.1" title="503 Service Unavailable">Section 8.5.4</a>: Service Unavailable 836 / "504" ; <a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section 8.5.5</a>: Gateway Time-out 837 / "505" ; <a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section 8.5.6</a>: HTTP Version not supported 838 / <a href="#status.code.and.reason.phrase" class="smpl">extension-code</a> 839 840 <a href="#status.code.and.reason.phrase" class="smpl">extension-code</a> = 3<a href="#notation" class="smpl">DIGIT</a> 841 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( <a href="#notation" class="smpl">WSP</a> / <a href="#notation" class="smpl">VCHAR</a> / <a href="#core.rules" class="smpl">obs-text</a> ) 842 </pre><p id="rfc.section.4.p.4">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes, 831 843 though such understanding is obviously desirable. However, applications <em class="bcp14">MUST</em> understand the class of any status code, as indicated by the first digit, and treat any unrecognized response as being equivalent 832 844 to the x00 status code of that class, with the exception that an unrecognized response <em class="bcp14">MUST NOT</em> be cached. For example, if an unrecognized status code of 431 is received by the client, it can safely assume that there was … … 834 846 which will explain the unusual status. 835 847 </p> 836 <h2 id="rfc.section. 5.1"><a href="#rfc.section.5.1">5.1</a> <a id="status.code.registry" href="#status.code.registry">Status Code Registry</a></h2>837 <p id="rfc.section. 5.1.p.1">The HTTP Status Code Registry defines the name space for the Status-Code token in the Status line of an HTTP response.</p>838 <p id="rfc.section. 5.1.p.2">Values to be added to this name space are subject to IETF review (<a href="#RFC5226" id="rfc.xref.RFC5226.2"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). Any document registering new status codes should be traceable through statuses of either 'Obsoletes' or 'Updates' to this848 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="status.code.registry" href="#status.code.registry">Status Code Registry</a></h2> 849 <p id="rfc.section.4.1.p.1">The HTTP Status Code Registry defines the name space for the Status-Code token in the Status line of an HTTP response.</p> 850 <p id="rfc.section.4.1.p.2">Values to be added to this name space are subject to IETF review (<a href="#RFC5226" id="rfc.xref.RFC5226.2"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). Any document registering new status codes should be traceable through statuses of either 'Obsoletes' or 'Updates' to this 839 851 document. 840 852 </p> 841 <p id="rfc.section. 5.1.p.3">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>>.842 </p> 843 <h1 id="rfc.section. 6"><a href="#rfc.section.6">6.</a> <a id="response.header.fields" href="#response.header.fields">Response Header Fields</a></h1>844 <p id="rfc.section. 6.p.1">The response-header fields allow the server to pass additional information about the response which cannot be placed in the853 <p id="rfc.section.4.1.p.3">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>>. 854 </p> 855 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="response.header.fields" href="#response.header.fields">Response Header Fields</a></h1> 856 <p id="rfc.section.5.p.1">The response-header fields allow the server to pass additional information about the response which cannot be placed in the 845 857 Status-Line. These header fields give information about the server and about further access to the resource identified by 846 the Request-URI.847 </p> 848 <div id="rfc.figure.u.1 2"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#response.header.fields" class="smpl">response-header</a> = <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> ; <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 6.1</a>849 / <a href="#abnf.dependencies" class="smpl">Age</a> ; <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 16.1</a>850 / <a href="#header.allow" class="smpl">Allow</a> ; <a href="#header.allow" id="rfc.xref.header.allow.2" title="Allow">Section 10.1</a>851 / <a href="#abnf.dependencies" class="smpl">ETag</a> ; <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 7.1</a>852 / <a href="#header.location" class="smpl">Location</a> ; <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 10.4</a>853 / <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a>854 / <a href="#header.retry-after" class="smpl">Retry-After</a> ; <a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 10.7</a>855 / <a href="#header.server" class="smpl">Server</a> ; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 10.8</a>856 / <a href="#abnf.dependencies" class="smpl">Vary</a> ; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 16.5</a>857 / <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.8"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a>858 </pre><p id="rfc.section. 6.p.3">Response-header field names can be extended reliably only in combination with a change in the protocol version. However, new858 the request-target. 859 </p> 860 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#response.header.fields" class="smpl">response-header</a> = <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a> ; <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a> 861 / <a href="#abnf.dependencies" class="smpl">Age</a> ; <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 4.1</a> 862 / <a href="#header.allow" class="smpl">Allow</a> ; <a href="#header.allow" id="rfc.xref.header.allow.2" title="Allow">Section 9.1</a> 863 / <a href="#abnf.dependencies" class="smpl">ETag</a> ; <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a> 864 / <a href="#header.location" class="smpl">Location</a> ; <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 9.4</a> 865 / <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 3.2</a> 866 / <a href="#header.retry-after" class="smpl">Retry-After</a> ; <a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 9.7</a> 867 / <a href="#header.server" class="smpl">Server</a> ; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 9.8</a> 868 / <a href="#abnf.dependencies" class="smpl">Vary</a> ; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 4.5</a> 869 / <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a> ; <a href="#Part7" id="rfc.xref.Part7.8"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 3.4</a> 870 </pre><p id="rfc.section.5.p.3">Response-header field names can be extended reliably only in combination with a change in the protocol version. However, new 859 871 or experimental header fields <em class="bcp14">MAY</em> be given the semantics of response-header fields if all parties in the communication recognize them to be response-header 860 872 fields. Unrecognized header fields are treated as entity-header fields. 861 873 </p> 862 <h1 id="rfc.section. 7"><a href="#rfc.section.7">7.</a> <a id="entity" href="#entity">Entity</a></h1>863 <p id="rfc.section. 7.p.1">Request and Response messages <em class="bcp14">MAY</em> transfer an entity if not otherwise restricted by the request method or response status code. An entity consists of entity-header874 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="entity" href="#entity">Entity</a></h1> 875 <p id="rfc.section.6.p.1">Request and Response messages <em class="bcp14">MAY</em> transfer an entity if not otherwise restricted by the request method or response status code. An entity consists of entity-header 864 876 fields and an entity-body, although some responses will only include the entity-headers. HTTP entity-body and entity-header 865 877 fields are defined in <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>. 866 878 </p> 867 <p id="rfc.section. 7.p.2">An entity-body is only present in a message when a message-body is present, as described in <a href="p1-messaging.html#message.body" title="Message Body">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.17"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. The entity-body is obtained from the message-body by decoding any Transfer-Encoding that might have been applied to ensure879 <p id="rfc.section.6.p.2">An entity-body is only present in a message when a message-body is present, as described in <a href="p1-messaging.html#message.body" title="Message Body">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.19"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. The entity-body is obtained from the message-body by decoding any Transfer-Encoding that might have been applied to ensure 868 880 safe and proper transfer of the message. 869 881 </p> 870 <h1 id="rfc.section. 8"><a href="#rfc.section.8">8.</a> <a id="method.definitions" href="#method.definitions">Method Definitions</a></h1>871 <p id="rfc.section. 8.p.1">The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded, additional methods cannot be assumed882 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="method.definitions" href="#method.definitions">Method Definitions</a></h1> 883 <p id="rfc.section.7.p.1">The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded, additional methods cannot be assumed 872 884 to share the same semantics for separately extended clients and servers. 873 885 </p> 874 <h2 id="rfc.section. 8.1"><a href="#rfc.section.8.1">8.1</a> <a id="safe.and.idempotent" href="#safe.and.idempotent">Safe and Idempotent Methods</a></h2>886 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="safe.and.idempotent" href="#safe.and.idempotent">Safe and Idempotent Methods</a></h2> 875 887 <div id="rfc.iref.s.1"></div> 876 <h3 id="rfc.section. 8.1.1"><a href="#rfc.section.8.1.1">8.1.1</a> <a id="safe.methods" href="#safe.methods">Safe Methods</a></h3>877 <p id="rfc.section. 8.1.1.p.1">Implementors should be aware that the software represents the user in their interactions over the Internet, and should be888 <h3 id="rfc.section.7.1.1"><a href="#rfc.section.7.1.1">7.1.1</a> <a id="safe.methods" href="#safe.methods">Safe Methods</a></h3> 889 <p id="rfc.section.7.1.1.p.1">Implementors should be aware that the software represents the user in their interactions over the Internet, and should be 878 890 careful to allow the user to be aware of any actions they might take which may have an unexpected significance to themselves 879 891 or others. 880 892 </p> 881 <p id="rfc.section. 8.1.1.p.2">In particular, the convention has been established that the GET and HEAD methods <em class="bcp14">SHOULD NOT</em> have the significance of taking an action other than retrieval. These methods ought to be considered "<dfn id="safe">safe</dfn>". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is893 <p id="rfc.section.7.1.1.p.2">In particular, the convention has been established that the GET and HEAD methods <em class="bcp14">SHOULD NOT</em> have the significance of taking an action other than retrieval. These methods ought to be considered "<dfn id="safe">safe</dfn>". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is 882 894 made aware of the fact that a possibly unsafe action is being requested. 883 895 </p> 884 <p id="rfc.section. 8.1.1.p.3">Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request;896 <p id="rfc.section.7.1.1.p.3">Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; 885 897 in fact, some dynamic resources consider that a feature. The important distinction here is that the user did not request the 886 898 side-effects, so therefore cannot be held accountable for them. 887 899 </p> 888 900 <div id="rfc.iref.i.1"></div> 889 <h3 id="rfc.section. 8.1.2"><a href="#rfc.section.8.1.2">8.1.2</a> <a id="idempotent.methods" href="#idempotent.methods">Idempotent Methods</a></h3>890 <p id="rfc.section. 8.1.2.p.1">Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N901 <h3 id="rfc.section.7.1.2"><a href="#rfc.section.7.1.2">7.1.2</a> <a id="idempotent.methods" href="#idempotent.methods">Idempotent Methods</a></h3> 902 <p id="rfc.section.7.1.2.p.1">Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N 891 903 > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, 892 904 the methods OPTIONS and TRACE <em class="bcp14">SHOULD NOT</em> have side effects, and so are inherently idempotent. 893 905 </p> 894 <p id="rfc.section. 8.1.2.p.2">However, it is possible that a sequence of several requests is non-idempotent, even if all of the methods executed in that906 <p id="rfc.section.7.1.2.p.2">However, it is possible that a sequence of several requests is non-idempotent, even if all of the methods executed in that 895 907 sequence are idempotent. (A sequence is idempotent if a single execution of the entire sequence always yields a result that 896 908 is not changed by a reexecution of all, or part, of that sequence.) For example, a sequence is non-idempotent if its result 897 909 depends on a value that is later modified in the same sequence. 898 910 </p> 899 <p id="rfc.section. 8.1.2.p.3">A sequence that never has side effects is idempotent, by definition (provided that no concurrent operations are being executed911 <p id="rfc.section.7.1.2.p.3">A sequence that never has side effects is idempotent, by definition (provided that no concurrent operations are being executed 900 912 on the same set of resources). 901 913 </p> 902 <h2 id="rfc.section. 8.2"><a href="#rfc.section.8.2">8.2</a> <a id="OPTIONS" href="#OPTIONS">OPTIONS</a></h2>914 <h2 id="rfc.section.7.2"><a href="#rfc.section.7.2">7.2</a> <a id="OPTIONS" href="#OPTIONS">OPTIONS</a></h2> 903 915 <div id="rfc.iref.o.1"></div> 904 916 <div id="rfc.iref.m.1"></div> 905 <p id="rfc.section. 8.2.p.1">The OPTIONS method represents a request for information about the communication options available on the request/response906 chain identified by the Request-URI. This method allows the client to determine the options and/or requirements associated917 <p id="rfc.section.7.2.p.1">The OPTIONS method represents a request for information about the communication options available on the request/response 918 chain identified by the request-target. This method allows the client to determine the options and/or requirements associated 907 919 with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. 908 920 </p> 909 <p id="rfc.section. 8.2.p.2">Responses to this method are not cacheable.</p>910 <p id="rfc.section. 8.2.p.3">If the OPTIONS request includes an entity-body (as indicated by the presence of Content-Length or Transfer-Encoding), then921 <p id="rfc.section.7.2.p.2">Responses to this method are not cacheable.</p> 922 <p id="rfc.section.7.2.p.3">If the OPTIONS request includes an entity-body (as indicated by the presence of Content-Length or Transfer-Encoding), then 911 923 &n