Changeset 349 for draft-ietf-httpbis/latest
- Timestamp:
- 12/11/08 22:26:20 (14 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r346 r349 522 522 </li> 523 523 <li class="tocline0">2. <a href="#notation">Notational Conventions and Generic Grammar</a><ul class="toc"> 524 <li class="tocline1">2.1 <a href="#notation.abnf">A ugmented BNF</a><ul class="toc">524 <li class="tocline1">2.1 <a href="#notation.abnf">ABNF Extensions</a><ul class="toc"> 525 525 <li class="tocline1">2.1.1 <a href="#rfc.section.2.1.1">#rule</a></li> 526 526 <li class="tocline1">2.1.2 <a href="#implied.LWS">implied *LWS</a></li> … … 756 756 </p> 757 757 <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="notation" href="#notation">Notational Conventions and Generic Grammar</a></h1> 758 <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> <a id="notation.abnf" href="#notation.abnf">Augmented BNF</a></h2> 759 <p id="rfc.section.2.1.p.1">All of the mechanisms specified in this document are described in both prose and an augmented Backus-Naur Form (ABNF) based 760 on that defined in <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. Implementors will need to be familiar with the notation in order to understand this specification. The extensions to ABNF 761 used in this specification are described below. 758 <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> <a id="notation.abnf" href="#notation.abnf">ABNF Extensions</a></h2> 759 <p id="rfc.section.2.1.p.1">Two extensions to the ABNF rules of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><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> 762 760 </p> 763 761 <h3 id="rfc.section.2.1.1"><a href="#rfc.section.2.1.1">2.1.1</a> #rule … … 781 779 <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> <a id="basic.rules" href="#basic.rules">Basic Rules</a></h2> 782 780 <div id="core.rules"> 783 <p id="rfc.section.2.2.p.1"> The following rules are used throughout this specification to describe basic parsing constructs. The US-ASCII coded character 784 set is defined by ANSI X3.4-1986 <a href="#USASCII" id="rfc.xref.USASCII.1"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. 781 <p id="rfc.section.2.2.p.1"> This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.2"><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.3"><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), 782 HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), LF (line feed), OCTET (any 8-bit sequence of data), SP (space) and 783 WSP (white space). 785 784 </p> 786 785 </div> 787 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span> <a href="#core.rules" class="smpl">OCTET</a> = %x00-FF 788 ; any 8-bit sequence of data 789 <a href="#core.rules" class="smpl">CHAR</a> = %x01-7F 790 ; any US-ASCII character, excluding NUL 791 <a href="#core.rules" class="smpl">ALPHA</a> = %x41-5A / %x61-7A 792 ; A-Z / a-z 793 <a href="#core.rules" class="smpl">DIGIT</a> = %x30-39 794 ; any US-ASCII digit "0".."9" 795 <a href="#core.rules" class="smpl">CTL</a> = %x00-1F / %x7F 796 ; (octets 0 - 31) and DEL (127) 797 <a href="#core.rules" class="smpl">CR</a> = %x0D 798 ; US-ASCII CR, carriage return (13) 799 <a href="#core.rules" class="smpl">LF</a> = %x0A 800 ; US-ASCII LF, linefeed (10) 801 <a href="#core.rules" class="smpl">SP</a> = %x20 802 ; US-ASCII SP, space (32) 803 <a href="#core.rules" class="smpl">HTAB</a> = %x09 804 ; US-ASCII HT, horizontal-tab (9) 805 <a href="#core.rules" class="smpl">DQUOTE</a> = %x22 806 ; US-ASCII double-quote mark (34) 807 </pre><div id="rule.CRLF"> 808 <p id="rfc.section.2.2.p.3"> HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body (see <a href="#tolerant.applications" title="Tolerant Applications">Appendix A</a> for tolerant applications). The end-of-line marker within an entity-body is defined by its associated media type, as described 786 <div id="rule.CRLF"> 787 <p id="rfc.section.2.2.p.2"> 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 809 788 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>. 810 789 </p> 811 790 </div> 812 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.11"></span> <a href="#rule.CRLF" class="smpl">CRLF</a> = <a href="#core.rules" class="smpl">CR</a> LF 813 </pre><div id="rule.LWS"> 814 <p id="rfc.section.2.2.p.5"> HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal 791 <div id="rule.LWS"> 792 <p id="rfc.section.2.2.p.3"> HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal 815 793 tab. All linear white space, including folding, has the same semantics as SP. A recipient <em class="bcp14">MAY</em> replace any linear white space with a single SP before interpreting the field value or forwarding the message downstream. 816 794 </p> 817 795 </div> 818 <div id="rfc.figure.u. 8"></div><pre class="inline"><span id="rfc.iref.g.12"></span> <a href="#rule.LWS" class="smpl">LWS</a> = [<a href="#rule.CRLF" class="smpl">CRLF</a>] 1*( <a href="#core.rules" class="smpl">SP</a> / <a href="#core.rules" class="smpl">HTAB</a> )796 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#rule.LWS" class="smpl">LWS</a> = [<a href="#core.rules" class="smpl">CRLF</a>] 1*( <a href="#core.rules" class="smpl">SP</a> / <a href="#core.rules" class="smpl">HTAB</a> ) 819 797 </pre><div id="rule.TEXT"> 820 <p id="rfc.section.2.2.p. 7"> The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message798 <p id="rfc.section.2.2.p.5"> The TEXT rule is only used for descriptive field contents and values that are not intended to be interpreted by the message 821 799 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>. 822 800 </p> 823 801 </div> 824 <div id="rfc.figure.u. 9"></div><pre class="inline"><span id="rfc.iref.g.13"></span> <a href="#rule.TEXT" class="smpl">TEXT</a> = %x20-7E / %x80-FF / <a href="#rule.LWS" class="smpl">LWS</a>802 <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.2"></span> <a href="#rule.TEXT" class="smpl">TEXT</a> = %x20-7E / %x80-FF / <a href="#rule.LWS" class="smpl">LWS</a> 825 803 ; any <a href="#core.rules" class="smpl">OCTET</a> except <a href="#core.rules" class="smpl">CTL</a>s, but including <a href="#rule.LWS" class="smpl">LWS</a> 826 </pre><p id="rfc.section.2.2.p. 9">A CRLF is allowed in the definition of TEXT only as part of a header field continuation. It is expected that the folding LWS804 </pre><p id="rfc.section.2.2.p.7">A CRLF is allowed in the definition of TEXT only as part of a header field continuation. It is expected that the folding LWS 827 805 will be replaced with a single SP before interpretation of the TEXT value. 828 806 </p> 829 <div id="rule.HEXDIG"> 830 <p id="rfc.section.2.2.p.10"> Hexadecimal numeric characters are used in several protocol elements.</p> 831 </div> 832 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.14"></span> <a href="#rule.HEXDIG" class="smpl">HEXDIG</a> = "A" / "B" / "C" / "D" / "E" / "F" 833 / "a" / "b" / "c" / "d" / "e" / "f" / <a href="#core.rules" class="smpl">DIGIT</a> 834 </pre><div id="rule.token.separators"> 835 <p id="rfc.section.2.2.p.12"> Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 807 <div id="rule.token.separators"> 808 <p id="rfc.section.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 836 809 </p> 837 810 </div> 838 <div id="rfc.figure.u. 11"></div><pre class="inline"><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span> <a href="#rule.token.separators" class="smpl">separators</a> = "(" / ")" / "<" / ">" / "@"811 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span> <a href="#rule.token.separators" class="smpl">separators</a> = "(" / ")" / "<" / ">" / "@" 839 812 / "," / ";" / ":" / "\" / <a href="#core.rules" class="smpl">DQUOTE</a> 840 813 / "/" / "[" / "]" / "?" / "=" … … 848 821 <a href="#rule.token.separators" class="smpl">token</a> = 1*<a href="#rule.token.separators" class="smpl">tchar</a> 849 822 </pre><div id="rule.comment"> 850 <p id="rfc.section.2.2.p.1 4"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed823 <p id="rfc.section.2.2.p.10"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 851 824 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 852 825 of the field value. 853 826 </p> 854 827 </div> 855 <div id="rfc.figure.u. 12"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></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> ) ")"828 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></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> ) ")" 856 829 <a href="#rule.comment" class="smpl">ctext</a> = <any <a href="#rule.TEXT" class="smpl">TEXT</a> excluding "(" and ")"> 857 830 </pre><div id="rule.quoted-string"> 858 <p id="rfc.section.2.2.p.1 6"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p>831 <p id="rfc.section.2.2.p.12"> A string of text is parsed as a single word if it is quoted using double-quote marks.</p> 859 832 </div> 860 <div id="rfc.figure.u.1 3"></div><pre class="inline"><span id="rfc.iref.g.20"></span><span id="rfc.iref.g.21"></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> )833 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></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> ) 861 834 <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 "\"> 862 835 </pre><div id="rule.quoted-pair"> 863 <p id="rfc.section.2.2.p.1 8"> The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs.836 <p id="rfc.section.2.2.p.14"> The backslash character ("\") <em class="bcp14">MAY</em> be used as a single-character quoting mechanism only within quoted-string and comment constructs. 864 837 </p> 865 838 </div> 866 <div id="rfc.figure.u.1 4"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span> <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 /839 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span> <a href="#rule.quoted-pair" class="smpl">quoted-text</a> = %x01-09 / 867 840 %x0B-0C / 868 841 %x0E-FF ; Characters excluding NUL, <a href="#core.rules" class="smpl">CR</a> and <a href="#core.rules" class="smpl">LF</a> … … 870 843 </pre><h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> <a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h2> 871 844 <p id="rfc.section.2.3.p.1">The ABNF rules below are defined in other parts:</p> 872 <div id="rfc.figure.u.1 5"></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>>845 <div id="rfc.figure.u.12"></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>> 873 846 <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>> 874 </pre><div id="rfc.figure.u.1 6"></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>>847 </pre><div id="rfc.figure.u.13"></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>> 875 848 <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>> 876 849 <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>> 877 </pre><div id="rfc.figure.u.1 7"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, 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>>850 </pre><div id="rfc.figure.u.14"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">Cache-Control</a> = <Cache-Control, 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>> 878 851 <a href="#abnf.dependencies" class="smpl">Pragma</a> = <Pragma, defined in <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 16.4</a>> 879 852 <a href="#abnf.dependencies" class="smpl">Warning</a> = <Warning, defined in <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 16.6</a>> … … 889 862 </p> 890 863 <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> 891 <div id="rfc.figure.u.1 8"></div><pre class="inline"><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></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>864 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></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> 892 865 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 893 866 </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. … … 920 893 "abs_path", "query", and "authority" from that specification: 921 894 </p> 922 <div id="rfc.figure.u.1 9"></div><pre class="inline"><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span><span id="rfc.iref.g.31"></span><span id="rfc.iref.g.32"></span> <a href="#general.syntax" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.2"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>>895 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span> <a href="#general.syntax" class="smpl">absoluteURI</a> = <absoluteURI, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.2"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3">Section 3</a>> 923 896 <a href="#general.syntax" class="smpl">authority</a> = <authority, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.3"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-3.2">Section 3.2</a>> 924 897 <a href="#general.syntax" class="smpl">fragment</a> = <fragment, defined in <a href="#RFC2396" id="rfc.xref.RFC2396.4"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-4.1">Section 4.1</a>> … … 942 915 and semantics for http URLs. 943 916 </p> 944 <div id="rfc.figure.u. 20"></div><pre class="inline"><span id="rfc.iref.g.33"></span> <a href="#http.url" class="smpl">http-URL</a> = "http:" "//" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ]917 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.21"></span> <a href="#http.url" class="smpl">http-URL</a> = "http:" "//" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] 945 918 [ <a href="#general.syntax" class="smpl">path-absolute</a> [ "?" <a href="#general.syntax" class="smpl">query</a> ]] 946 919 </pre><p id="rfc.section.3.2.2.p.3">If the port is empty or not given, port 80 is assumed. The semantics are that the identified resource is located at the server … … 962 935 <li>An empty path-absolute is equivalent to an path-absolute of "/".</li> 963 936 </ul> 964 <p id="rfc.section.3.2.3.p.2">Characters other than those in the "reserved" set (see <a href="#RFC2396" id="rfc.xref.RFC2396.10"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-2.2">Section 2.2</a>) are equivalent to their ""%" <a href="# rule.HEXDIG" class="smpl">HEXDIG</a> <a href="#rule.HEXDIG" class="smpl">HEXDIG</a>" encoding.937 <p id="rfc.section.3.2.3.p.2">Characters other than those in the "reserved" set (see <a href="#RFC2396" id="rfc.xref.RFC2396.10"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-2.2">Section 2.2</a>) are equivalent to their ""%" <a href="#core.rules" class="smpl">HEXDIG</a> <a href="#core.rules" class="smpl">HEXDIG</a>" encoding. 965 938 </p> 966 939 <p id="rfc.section.3.2.3.p.3">For example, the following three URIs are equivalent:</p> 967 <div id="rfc.figure.u. 21"></div><pre class="text"> http://example.com:80/~smith/home.html940 <div id="rfc.figure.u.18"></div><pre class="text"> http://example.com:80/~smith/home.html 968 941 http://EXAMPLE.com/%7Esmith/home.html 969 942 http://EXAMPLE.com:/%7esmith/home.html … … 971 944 <h3 id="rfc.section.3.3.1"><a href="#rfc.section.3.3.1">3.3.1</a> <a id="full.date" href="#full.date">Full Date</a></h3> 972 945 <p id="rfc.section.3.3.1.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p> 973 <div id="rfc.figure.u. 22"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123946 <div id="rfc.figure.u.19"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 974 947 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 975 948 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format … … 986 959 time zone, and <em class="bcp14">MUST</em> be assumed when reading the asctime format. HTTP-date is case sensitive and <em class="bcp14">MUST NOT</em> include additional LWS beyond that specifically included as SP in the grammar. 987 960 </p> 988 <div id="rfc.figure.u.2 3"></div><pre class="inline"><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><span id="rfc.iref.g.45"></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>961 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.22"></span><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><span id="rfc.iref.g.30"></span><span id="rfc.iref.g.31"></span><span id="rfc.iref.g.32"></span><span id="rfc.iref.g.33"></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> 989 962 <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> 990 963 <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 … … 1045 1018 is a property of the message, not of the original entity. 1046 1019 </p> 1047 <div id="rfc.figure.u.2 4"></div><pre class="inline"><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a>1020 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1048 1021 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( ";" <a href="#transfer.codings" class="smpl">parameter</a> ) 1049 1022 </pre><div id="rule.parameter"> 1050 1023 <p id="rfc.section.3.4.p.3"> Parameters are in the form of attribute/value pairs.</p> 1051 1024 </div> 1052 <div id="rfc.figure.u.2 5"></div><pre class="inline"><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></span><span id="rfc.iref.g.50"></span> <a href="#transfer.codings" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> "=" <a href="#rule.parameter" class="smpl">value</a>1025 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span><span id="rfc.iref.g.38"></span> <a href="#transfer.codings" class="smpl">parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> "=" <a href="#rule.parameter" class="smpl">value</a> 1053 1026 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1054 1027 <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> … … 1075 1048 necessary for the recipient to verify that it has received the full message. 1076 1049 </p> 1077 <div id="rfc.figure.u.2 6"></div><pre class="inline"><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><span id="rfc.iref.g.59"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a>1050 <div id="rfc.figure.u.23"></div><pre class="inline"><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="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a> 1078 1051 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> 1079 1052 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> 1080 <a href="# rule.CRLF" class="smpl">CRLF</a>1053 <a href="#core.rules" class="smpl">CRLF</a> 1081 1054 1082 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="# rule.CRLF" class="smpl">CRLF</a>1083 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> <a href="# rule.CRLF" class="smpl">CRLF</a>1084 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*<a href="# rule.HEXDIG" class="smpl">HEXDIG</a>1085 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="# rule.CRLF" class="smpl">CRLF</a>1055 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1056 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> <a href="#core.rules" class="smpl">CRLF</a> 1057 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*<a href="#core.rules" class="smpl">HEXDIG</a> 1058 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1086 1059 1087 1060 <a href="#chunked.transfer.encoding" class="smpl">chunk-extension</a>= *( ";" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> [ "=" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> ] ) … … 1089 1062 <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> 1090 1063 <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 1091 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> = *(<a href="#abnf.dependencies" class="smpl">entity-header</a> <a href="# rule.CRLF" class="smpl">CRLF</a>)1064 <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>) 1092 1065 </pre><p id="rfc.section.3.4.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended 1093 1066 by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line. … … 1112 1085 </p> 1113 1086 <p id="rfc.section.3.4.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p> 1114 <div id="rfc.figure.u.2 7"></div><pre class="text"> length := 01087 <div id="rfc.figure.u.24"></div><pre class="text"> length := 0 1115 1088 read chunk-size, chunk-extension (if any) and CRLF 1116 1089 while (chunk-size > 0) { … … 1134 1107 space. By convention, the products are listed in order of their significance for identifying the application. 1135 1108 </p> 1136 <div id="rfc.figure.u.2 8"></div><pre class="inline"><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></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>]1109 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></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>] 1137 1110 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1138 1111 </pre><p id="rfc.section.3.5.p.3">Examples:</p> 1139 <div id="rfc.figure.u.2 9"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b31112 <div id="rfc.figure.u.26"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 1140 1113 Server: Apache/0.8.4 1141 1114 </pre><p id="rfc.section.3.5.p.5">Product tokens <em class="bcp14">SHOULD</em> be short and to the point. They <em class="bcp14">MUST NOT</em> be used for advertising or other non-essential information. Although any token character <em class="bcp14">MAY</em> appear in a product-version, this token <em class="bcp14">SHOULD</em> only be used for a version identifier (i.e., successive versions of the same product <em class="bcp14">SHOULD</em> only differ in the product-version portion of the product value). … … 1144 1117 <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> 1145 1118 <p id="rfc.section.4.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1146 <div id="rfc.figure.u. 30"></div><pre class="inline"><span id="rfc.iref.g.62"></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 messages1119 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.50"></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 1147 1120 </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 1148 1121 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1149 1122 fields, and possibly a message-body. 1150 1123 </p> 1151 <div id="rfc.figure.u. 31"></div><pre class="inline"><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a>1152 *(<a href="#message.headers" class="smpl">message-header</a> <a href="# rule.CRLF" class="smpl">CRLF</a>)1153 <a href="# rule.CRLF" class="smpl">CRLF</a>1124 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1125 *(<a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a>) 1126 <a href="#core.rules" class="smpl">CRLF</a> 1154 1127 [ <a href="#message.body" class="smpl">message-body</a> ] 1155 1128 <a href="#message.types" class="smpl">start-line</a> = <a href="#request-line" class="smpl">Request-Line</a> / <a href="#status-line" class="smpl">Status-Line</a> … … 1167 1140 forms. 1168 1141 </p> 1169 <div id="rfc.figure.u. 32"></div><pre class="inline"><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></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> ]1142 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.53"></span><span id="rfc.iref.g.54"></span><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span> <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> ] 1170 1143 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1171 1144 <a href="#message.headers" class="smpl">field-value</a> = *( <a href="#message.headers" class="smpl">field-content</a> / <a href="#rule.LWS" class="smpl">LWS</a> ) … … 1198 1171 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>). 1199 1172 </p> 1200 <div id="rfc.figure.u.3 3"></div><pre class="inline"><span id="rfc.iref.g.69"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a>1173 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.57"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1201 1174 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1202 1175 </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 … … 1266 1239 to the entity being transferred. These header fields apply only to the message being transmitted. 1267 1240 </p> 1268 <div id="rfc.figure.u.3 4"></div><pre class="inline"><span id="rfc.iref.g.70"></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>1241 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.58"></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> 1269 1242 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1270 1243 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a> … … 1283 1256 resource, the identifier of the resource, and the protocol version in use. 1284 1257 </p> 1285 <div id="rfc.figure.u.3 5"></div><pre class="inline"><span id="rfc.iref.g.71"></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>1258 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.59"></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> 1286 1259 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1287 1260 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 4</a> 1288 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="# rule.CRLF" 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>1289 <a href="# rule.CRLF" class="smpl">CRLF</a>1261 / <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> 1262 <a href="#core.rules" class="smpl">CRLF</a> 1290 1263 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1291 1264 </pre><h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="request-line" href="#request-line">Request-Line</a></h2> … … 1293 1266 elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1294 1267 </p> 1295 <div id="rfc.figure.u.3 6"></div><pre class="inline"><span id="rfc.iref.g.72"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-uri" class="smpl">Request-URI</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#rule.CRLF" class="smpl">CRLF</a>1268 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.60"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-uri" class="smpl">Request-URI</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a> 1296 1269 </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> 1297 1270 <p id="rfc.section.5.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive.</p> 1298 <div id="rfc.figure.u.3 7"></div><pre class="inline"><span id="rfc.iref.g.73"></span><span id="rfc.iref.g.74"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a>1271 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1299 1272 </pre><h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a> <a id="request-uri" href="#request-uri">Request-URI</a></h3> 1300 1273 <p id="rfc.section.5.1.2.p.1">The Request-URI is a Uniform Resource Identifier (<a href="#uri" title="Uniform Resource Identifiers">Section 3.2</a>) and identifies the resource upon which to apply the request. 1301 1274 </p> 1302 <div id="rfc.figure.u.3 8"></div><pre class="inline"><span id="rfc.iref.g.75"></span> <a href="#request-uri" class="smpl">Request-URI</a> = "*"1275 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.63"></span> <a href="#request-uri" class="smpl">Request-URI</a> = "*" 1303 1276 / <a href="#general.syntax" class="smpl">absoluteURI</a> 1304 1277 / ( <a href="#general.syntax" class="smpl">path-absolute</a> [ "?" <a href="#general.syntax" class="smpl">query</a> ] ) … … 1308 1281 apply to a resource. One example would be 1309 1282 </p> 1310 <div id="rfc.figure.u.3 9"></div><pre class="text"> OPTIONS * HTTP/1.11283 <div id="rfc.figure.u.36"></div><pre class="text"> OPTIONS * HTTP/1.1 1311 1284 </pre><p id="rfc.section.5.1.2.p.5">The absoluteURI 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, 1312 1285 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 absoluteURI. In order to avoid request … … 1314 1287 Request-Line would be: 1315 1288 </p> 1316 <div id="rfc.figure.u. 40"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.11289 <div id="rfc.figure.u.37"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1317 1290 </pre><p id="rfc.section.5.1.2.p.7">To allow for transition to absoluteURIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absoluteURI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies. 1318 1291 </p> … … 1323 1296 server would create a TCP connection to port 80 of the host "www.example.org" and send the lines: 1324 1297 </p> 1325 <div id="rfc.figure.u. 41"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.11298 <div id="rfc.figure.u.38"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.1 1326 1299 Host: www.example.org 1327 1300 </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 1328 1301 URI, it <em class="bcp14">MUST</em> be given as "/" (the server root). 1329 1302 </p> 1330 <p id="rfc.section.5.1.2.p.12">The Request-URI is transmitted in the format specified in <a href="#general.syntax" title="General Syntax">Section 3.2.1</a>. If the Request-URI is encoded using the "% <a href="# rule.HEXDIG" class="smpl">HEXDIG</a> <a href="#rule.HEXDIG" class="smpl">HEXDIG</a>" encoding (<a href="#RFC2396" id="rfc.xref.RFC2396.11"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-2.4.1">Section 2.4.1</a>), the origin server <em class="bcp14">MUST</em> decode the Request-URI in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid Request-URIs with an appropriate status code.1303 <p id="rfc.section.5.1.2.p.12">The Request-URI is transmitted in the format specified in <a href="#general.syntax" title="General Syntax">Section 3.2.1</a>. If the Request-URI is encoded using the "% <a href="#core.rules" class="smpl">HEXDIG</a> <a href="#core.rules" class="smpl">HEXDIG</a>" encoding (<a href="#RFC2396" id="rfc.xref.RFC2396.11"><cite title="Uniform Resource Identifiers (URI): Generic Syntax">[RFC2396]</cite></a>, <a href="http://tools.ietf.org/html/rfc2396#section-2.4.1">Section 2.4.1</a>), the origin server <em class="bcp14">MUST</em> decode the Request-URI in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid Request-URIs with an appropriate status code. 1331 1304 </p> 1332 1305 <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-URI when forwarding it to the next inbound server, except as noted … … 1361 1334 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="response" href="#response">Response</a></h1> 1362 1335 <p id="rfc.section.6.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1363 <div id="rfc.figure.u. 42"></div><pre class="inline"><span id="rfc.iref.g.76"></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>1336 <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.64"></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> 1364 1337 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1365 1338 / <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> 1366 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="# rule.CRLF" 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>1367 <a href="# rule.CRLF" class="smpl">CRLF</a>1339 / <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> 1340 <a href="#core.rules" class="smpl">CRLF</a> 1368 1341 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1369 1342 </pre><h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="status-line" href="#status-line">Status-Line</a></h2> … … 1372 1345 CRLF sequence. 1373 1346 </p> 1374 <div id="rfc.figure.u.4 3"></div><pre class="inline"><span id="rfc.iref.g.77"></span> <a href="#status-line" class="smpl">Status-Line</a> = <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> <a href="#rule.CRLF" class="smpl">CRLF</a>1347 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.65"></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> 1375 1348 </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> 1376 1349 <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 … … 1389 1362 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1390 1363 </ul> 1391 <div id="rfc.figure.u.4 4"></div><pre class="inline"><span id="rfc.iref.g.78"></span><span id="rfc.iref.g.79"></span><span id="rfc.iref.g.80"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a>1364 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1392 1365 <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>> 1393 1366 </pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> … … 1580 1553 </p> 1581 1554 <p id="rfc.section.8.1.p.2">The Connection header has the following grammar:</p> 1582 <div id="rfc.figure.u.4 5"></div><pre class="inline"><span id="rfc.iref.g.81"></span><span id="rfc.iref.g.82"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" 1#(<a href="#header.connection" class="smpl">connection-token</a>)1555 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.69"></span><span id="rfc.iref.g.70"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" 1#(<a href="#header.connection" class="smpl">connection-token</a>) 1583 1556 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 1584 1557 </pre><p id="rfc.section.8.1.p.4">HTTP/1.1 proxies <em class="bcp14">MUST</em> parse the Connection header field before a message is forwarded and, for each connection-token in this field, remove any header … … 1592 1565 of the response. For example, 1593 1566 </p> 1594 <div id="rfc.figure.u.4 6"></div><pre class="text"> Connection: close1567 <div id="rfc.figure.u.43"></div><pre class="text"> Connection: close 1595 1568 </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. 1596 1569 </p> … … 1608 1581 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. 1609 1582 </p> 1610 <div id="rfc.figure.u.4 7"></div><pre class="inline"><span id="rfc.iref.g.83"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" 1*<a href="#core.rules" class="smpl">DIGIT</a>1583 <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.71"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" 1*<a href="#core.rules" class="smpl">DIGIT</a> 1611 1584 </pre><p id="rfc.section.8.2.p.3">An example is</p> 1612 <div id="rfc.figure.u.4 8"></div><pre class="text"> Content-Length: 34951585 <div id="rfc.figure.u.45"></div><pre class="text"> Content-Length: 3495 1613 1586 </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>. 1614 1587 </p> … … 1625 1598 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.3.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1626 1599 </p> 1627 <div id="rfc.figure.u.4 9"></div><pre class="inline"><span id="rfc.iref.g.84"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#full.date" class="smpl">HTTP-date</a>1600 <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.72"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#full.date" class="smpl">HTTP-date</a> 1628 1601 </pre><p id="rfc.section.8.3.p.3">An example is</p> 1629 <div id="rfc.figure.u. 50"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT1602 <div id="rfc.figure.u.47"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 1630 1603 </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: 1631 1604 </p> … … 1663 1636 a single IP address. 1664 1637 </p> 1665 <div id="rfc.figure.u. 51"></div><pre class="inline"><span id="rfc.iref.g.85"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] ; <a href="#http.url" title="http URL">Section 3.2.2</a>1638 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.73"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#general.syntax" class="smpl">uri-host</a> [ ":" <a href="#general.syntax" class="smpl">port</a> ] ; <a href="#http.url" title="http URL">Section 3.2.2</a> 1666 1639 </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 1667 1640 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: 1668 1641 </p> 1669 <div id="rfc.figure.u. 52"></div><pre class="text"> GET /pub/WWW/ HTTP/1.11642 <div id="rfc.figure.u.49"></div><pre class="text"> GET /pub/WWW/ HTTP/1.1 1670 1643 Host: www.example.org 1671 1644 </pre><p id="rfc.section.8.4.p.5">A client <em class="bcp14">MUST</em> include a Host header field in all HTTP/1.1 request messages. If the requested URI does not include an Internet host name … … 1682 1655 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>). 1683 1656 </p> 1684 <div id="rfc.figure.u.5 3"></div><pre class="inline"><span id="rfc.iref.g.86"></span><span id="rfc.iref.g.87"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" #( <a href="#header.te" class="smpl">t-codings</a> )1657 <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" #( <a href="#header.te" class="smpl">t-codings</a> ) 1685 1658 <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> ] ) 1686 1659 </pre><p id="rfc.section.8.5.p.3">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, … … 1688 1661 </p> 1689 1662 <p id="rfc.section.8.5.p.4">Examples of its use are:</p> 1690 <div id="rfc.figure.u.5 4"></div><pre class="text"> TE: deflate1663 <div id="rfc.figure.u.51"></div><pre class="text"> TE: deflate 1691 1664 TE: 1692 1665 TE: trailers, deflate;q=0.5 … … 1725 1698 with chunked transfer-coding. 1726 1699 </p> 1727 <div id="rfc.figure.u.5 5"></div><pre class="inline"><span id="rfc.iref.g.88"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" 1#<a href="#message.headers" class="smpl">field-name</a>1700 <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.76"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" 1#<a href="#message.headers" class="smpl">field-name</a> 1728 1701 </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 1729 1702 to know which header fields to expect in the trailer. … … 1745 1718 transfer-coding is a property of the message, not of the entity. 1746 1719 </p> 1747 <div id="rfc.figure.u.5 6"></div><pre class="inline"><span id="rfc.iref.g.89"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" 1#<a href="#transfer.codings" class="smpl">transfer-coding</a>1720 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.77"></span> <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> = "Transfer-Encoding" ":" 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1748 1721 </pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.4</a>. An example is: 1749 1722 </p> 1750 <div id="rfc.figure.u.5 7"></div><pre class="text"> Transfer-Encoding: chunked1723 <div id="rfc.figure.u.54"></div><pre class="text"> Transfer-Encoding: chunked 1751 1724 </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. 1752 1725 </p> … … 1758 1731 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. 1759 1732 </p> 1760 <div id="rfc.figure.u.5 8"></div><pre class="inline"><span id="rfc.iref.g.90"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" 1#<a href="#product.tokens" class="smpl">product</a>1733 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.78"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" 1#<a href="#product.tokens" class="smpl">product</a> 1761 1734 </pre><p id="rfc.section.8.8.p.3">For example,</p> 1762 <div id="rfc.figure.u.5 9"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x111735 <div id="rfc.figure.u.56"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 1763 1736 </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 1764 1737 protocol. It does so by allowing the client to advertise its desire to use another protocol, such as a later version of HTTP … … 1789 1762 of all senders along the request/response chain. 1790 1763 </p> 1791 <div id="rfc.figure.u. 60"></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><span id="rfc.iref.g.94"></span><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span> <a href="#header.via" class="smpl">Via</a> = "Via" ":" 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#header.via" class="smpl">received-by</a> [ <a href="#rule.comment" class="smpl">comment</a> ] )1764 <div id="rfc.figure.u.57"></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><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span><span id="rfc.iref.g.84"></span> <a href="#header.via" class="smpl">Via</a> = "Via" ":" 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#header.via" class="smpl">received-by</a> [ <a href="#rule.comment" class="smpl">comment</a> ] ) 1792 1765 <a href="#header.via" class="smpl">received-protocol</a> = [ <a href="#header.via" class="smpl">protocol-name</a> "/" ] <a href="#header.via" class="smpl">protocol-version</a> 1793 1766 <a href="#header.via" class="smpl">protocol-name</a> = <a href="#rule.token.separators" class="smpl">token</a> … … 1812 1785 server at www.example.com. The request received by www.example.com would then have the following Via header field: 1813 1786 </p> 1814 <div id="rfc.figure.u. 61"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1)1787 <div id="rfc.figure.u.58"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 1815 1788 </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. 1816 1789 </p> … … 1818 1791 For example, 1819 1792 </p> 1820 <div id="rfc.figure.u. 62"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy1793 <div id="rfc.figure.u.59"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 1821 1794 </pre><p id="rfc.section.8.9.p.12">could be collapsed to</p> 1822 <div id="rfc.figure.u.6 3"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy1795 <div id="rfc.figure.u.60"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 1823 1796 </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 1824 1797 by pseudonyms. Applications <em class="bcp14">MUST NOT</em> combine entries which have different received-protocol values. … … 2092 2065 <p id="rfc.section.10.6.p.1">They exist. They are hard to defend against. Research continues. Beware.</p> 2093 2066 <h1 id="rfc.section.11"><a href="#rfc.section.11">11.</a> <a id="ack" href="#ack">Acknowledgments</a></h1> 2094 <p id="rfc.section.11.p.1">This specification makes heavy use of the augmented BNF and generic constructs defined by David H. Crocker for <a href="#RFC5234" id="rfc.xref.RFC5234. 2"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. Similarly, it reuses many of the definitions provided by Nathaniel Borenstein and Ned Freed for MIME <a href="#RFC2045" id="rfc.xref.RFC2045.3"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>. We hope that their inclusion in this specification will help reduce past confusion over the relationship between HTTP and2067 <p id="rfc.section.11.p.1">This specification makes heavy use of the augmented BNF and generic constructs defined by David H. Crocker for <a href="#RFC5234" id="rfc.xref.RFC5234.4"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. Similarly, it reuses many of the definitions provided by Nathaniel Borenstein and Ned Freed for MIME <a href="#RFC2045" id="rfc.xref.RFC2045.3"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>. We hope that their inclusion in this specification will help reduce past confusion over the relationship between HTTP and 2095 2068 Internet mail message formats. 2096 2069 </p> … … 2567 2540 </dd> 2568 2541 </dl> 2569 <p id="rfc.section.D.p.16"> <span id="rfc.iref.g. 97"></span> <dfn>gateway</dfn>2542 <p id="rfc.section.D.p.16"> <span id="rfc.iref.g.85"></span> <dfn>gateway</dfn> 2570 2543 </p> 2571 2544 <dl class="empty"> … … 2743 2716 <li>Use "/" instead of "|" for alternatives.</li> 2744 2717 <li>Get rid of RFC822 dependency; use RFC5234 plus extensions instead.</li> 2718 <li>Only reference RFC 5234's core rules.</li> 2745 2719 </ul> 2746 2720 <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1> … … 2797 2771 </li> 2798 2772 <li class="indline0"><a id="rfc.index.G" href="#rfc.index.G"><b>G</b></a><ul class="ind"> 2799 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g. 97">D</a></li>2773 <li class="indline1">gateway <a class="iref" href="#rfc.iref.g.85">D</a></li> 2800 2774 <li class="indline1"><tt>Grammar</tt> 2801 2775 <ul class="ind"> 2802 <li class="indline1"><tt>absoluteURI</tt> <a class="iref" href="#rfc.iref.g.26"><b>3.2.1</b></a></li> 2803 <li class="indline1"><tt>ALPHA</tt> <a class="iref" href="#rfc.iref.g.3"><b>2.2</b></a></li> 2804 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.3.1</b></a></li> 2805 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.4</b></a></li> 2806 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.27"><b>3.2.1</b></a></li> 2807 <li class="indline1"><tt>CHAR</tt> <a class="iref" href="#rfc.iref.g.2"><b>2.2</b></a></li> 2808 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.52"><b>3.4.1</b></a></li> 2809 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.58"><b>3.4.1</b></a></li> 2810 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.56"><b>3.4.1</b></a></li> 2811 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.57"><b>3.4.1</b></a></li> 2812 <li class="indline1"><tt>chunk-extension</tt> <a class="iref" href="#rfc.iref.g.55"><b>3.4.1</b></a></li> 2813 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.53"><b>3.4.1</b></a></li> 2814 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.51"><b>3.4.1</b></a></li> 2815 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.18"><b>2.2</b></a></li> 2816 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.81"><b>8.1</b></a></li> 2817 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.82"><b>8.1</b></a></li> 2818 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.83"><b>8.2</b></a></li> 2819 <li class="indline1"><tt>CR</tt> <a class="iref" href="#rfc.iref.g.6"><b>2.2</b></a></li> 2820 <li class="indline1"><tt>CRLF</tt> <a class="iref" href="#rfc.iref.g.11"><b>2.2</b></a></li> 2821 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.19"><b>2.2</b></a></li> 2822 <li class="indline1"><tt>CTL</tt> <a class="iref" href="#rfc.iref.g.5"><b>2.2</b></a></li> 2823 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.84"><b>8.3</b></a></li> 2824 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.3.1</b></a></li> 2825 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.3.1</b></a></li> 2826 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.3.1</b></a></li> 2827 <li class="indline1"><tt>DIGIT</tt> <a class="iref" href="#rfc.iref.g.4"><b>2.2</b></a></li> 2828 <li class="indline1"><tt>DQUOTE</tt> <a class="iref" href="#rfc.iref.g.10"><b>2.2</b></a></li> 2829 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.1.1</b></a></li> 2830 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.74"><b>5.1.1</b></a></li> 2831 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.68"><b>4.2</b></a></li> 2832 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.66"><b>4.2</b></a></li> 2833 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.67"><b>4.2</b></a></li> 2834 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.70"><b>4.5</b></a></li> 2835 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.63"><b>4.1</b></a></li> 2836 <li class="indline1"><tt>HEXDIG</tt> <a class="iref" href="#rfc.iref.g.14"><b>2.2</b></a></li> 2837 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.85"><b>8.4</b></a></li> 2838 <li class="indline1"><tt>HTAB</tt> <a class="iref" href="#rfc.iref.g.9"><b>2.2</b></a></li> 2839 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.34"><b>3.3.1</b></a></li> 2840 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.62"><b>4.1</b></a></li> 2841 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.25"><b>3.1</b></a></li> 2842 <li class="indline1"><tt>http-URL</tt> <a class="iref" href="#rfc.iref.g.33"><b>3.2.2</b></a></li> 2843 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.24"><b>3.1</b></a></li> 2844 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.54"><b>3.4.1</b></a></li> 2845 <li class="indline1"><tt>LF</tt> <a class="iref" href="#rfc.iref.g.7"><b>2.2</b></a></li> 2846 <li class="indline1"><tt>LWS</tt> <a class="iref" href="#rfc.iref.g.12"><b>2.2</b></a></li> 2847 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.69"><b>4.3</b></a></li> 2848 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.65"><b>4.2</b></a></li> 2849 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.73"><b>5.1.1</b></a></li> 2850 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.45"><b>3.3.1</b></a></li> 2851 <li class="indline1"><tt>obsolete-date</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.3.1</b></a></li> 2852 <li class="indline1"><tt>OCTET</tt> <a class="iref" href="#rfc.iref.g.1"><b>2.2</b></a></li> 2853 <li class="indline1"><tt>parameter</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.4</b></a></li> 2854 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.28"><b>3.2.1</b></a></li> 2855 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.29"><b>3.2.1</b></a></li> 2856 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.60"><b>3.5</b></a></li> 2857 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.61"><b>3.5</b></a></li> 2858 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.93"><b>8.9</b></a></li> 2859 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.94"><b>8.9</b></a></li> 2860 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.96"><b>8.9</b></a></li> 2861 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.21"><b>2.2</b></a></li> 2862 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.30"><b>3.2.1</b></a></li> 2863 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.23"><b>2.2</b></a></li> 2864 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.20"><b>2.2</b></a></li> 2865 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.22"><b>2.2</b></a></li> 2866 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.80"><b>6.1.1</b></a></li> 2867 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.95"><b>8.9</b></a></li> 2868 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.92"><b>8.9</b></a></li> 2869 <li class="indline1"><tt>relativeURI</tt> <a class="iref" href="#rfc.iref.g.31"><b>3.2.1</b></a></li> 2870 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.71"><b>5</b></a></li> 2871 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.72"><b>5.1</b></a></li> 2872 <li class="indline1"><tt>Request-URI</tt> <a class="iref" href="#rfc.iref.g.75"><b>5.1.2</b></a></li> 2873 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.76"><b>6</b></a></li> 2874 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.35"><b>3.3.1</b></a></li> 2875 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.3.1</b></a></li> 2876 <li class="indline1"><tt>separators</tt> <a class="iref" href="#rfc.iref.g.17"><b>2.2</b></a></li> 2877 <li class="indline1"><tt>SP</tt> <a class="iref" href="#rfc.iref.g.8"><b>2.2</b></a></li> 2878 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.64"><b>4.1</b></a></li> 2879 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.78"><b>6.1.1</b></a></li> 2880 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.77"><b>6.1</b></a></li> 2881 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.87"><b>8.5</b></a></li> 2882 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.16"><b>2.2</b></a></li> 2883 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.86"><b>8.5</b></a></li> 2884 <li class="indline1"><tt>TEXT</tt> <a class="iref" href="#rfc.iref.g.13"><b>2.2</b></a></li> 2885 <li class="indline1"><tt>time</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.3.1</b></a></li> 2886 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.15"><b>2.2</b></a></li> 2887 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.88"><b>8.6</b></a></li> 2888 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.59"><b>3.4.1</b></a></li> 2889 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.4</b></a></li> 2890 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.89"><b>8.7</b></a></li> 2891 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.4</b></a></li> 2892 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.90"><b>8.8</b></a></li> 2893 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.32"><b>3.2.1</b></a></li> 2894 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.50"><b>3.4</b></a></li> 2895 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.91"><b>8.9</b></a></li> 2896 <li class="indline1"><tt>weekday</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.3.1</b></a></li> 2897 <li class="indline1"><tt>wkday</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.3.1</b></a></li> 2776 <li class="indline1"><tt>absoluteURI</tt> <a class="iref" href="#rfc.iref.g.14"><b>3.2.1</b></a></li> 2777 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.26"><b>3.3.1</b></a></li> 2778 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.4</b></a></li> 2779 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.15"><b>3.2.1</b></a></li> 2780 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.4.1</b></a></li> 2781 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.4.1</b></a></li> 2782 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.4.1</b></a></li> 2783 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.45"><b>3.4.1</b></a></li> 2784 <li class="indline1"><tt>chunk-extension</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.4.1</b></a></li> 2785 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.4.1</b></a></li> 2786 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.4.1</b></a></li> 2787 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.6"><b>2.2</b></a></li> 2788 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.69"><b>8.1</b></a></li> 2789 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.70"><b>8.1</b></a></li> 2790 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.71"><b>8.2</b></a></li> 2791 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.7"><b>2.2</b></a></li> 2792 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.72"><b>8.3</b></a></li> 2793 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.27"><b>3.3.1</b></a></li> 2794 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.28"><b>3.3.1</b></a></li> 2795 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.29"><b>3.3.1</b></a></li> 2796 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.67"><b>6.1.1</b></a></li> 2797 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.62"><b>5.1.1</b></a></li> 2798 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.56"><b>4.2</b></a></li> 2799 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.54"><b>4.2</b></a></li> 2800 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.55"><b>4.2</b></a></li> 2801 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.58"><b>4.5</b></a></li> 2802 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.51"><b>4.1</b></a></li> 2803 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.73"><b>8.4</b></a></li> 2804 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.22"><b>3.3.1</b></a></li> 2805 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.50"><b>4.1</b></a></li> 2806 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.13"><b>3.1</b></a></li> 2807 <li class="indline1"><tt>http-URL</tt> <a class="iref" href="#rfc.iref.g.21"><b>3.2.2</b></a></li> 2808 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.12"><b>3.1</b></a></li> 2809 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.4.1</b></a></li> 2810 <li class="indline1"><tt>LWS</tt> <a class="iref" href="#rfc.iref.g.1"><b>2.2</b></a></li> 2811 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.57"><b>4.3</b></a></li> 2812 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.53"><b>4.2</b></a></li> 2813 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.61"><b>5.1.1</b></a></li> 2814 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.33"><b>3.3.1</b></a></li> 2815 <li class="indline1"><tt>obsolete-date</tt> <a class="iref" href="#rfc.iref.g.24"><b>3.3.1</b></a></li> 2816 <li class="indline1"><tt>parameter</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.4</b></a></li> 2817 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.16"><b>3.2.1</b></a></li> 2818 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.17"><b>3.2.1</b></a></li> 2819 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.5</b></a></li> 2820 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.5</b></a></li> 2821 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.81"><b>8.9</b></a></li> 2822 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.82"><b>8.9</b></a></li> 2823 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.84"><b>8.9</b></a></li> 2824 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.9"><b>2.2</b></a></li> 2825 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.18"><b>3.2.1</b></a></li> 2826 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.11"><b>2.2</b></a></li> 2827 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.8"><b>2.2</b></a></li> 2828 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.10"><b>2.2</b></a></li> 2829 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.68"><b>6.1.1</b></a></li> 2830 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.83"><b>8.9</b></a></li> 2831 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.80"><b>8.9</b></a></li> 2832 <li class="indline1"><tt>relativeURI</tt> <a class="iref" href="#rfc.iref.g.19"><b>3.2.1</b></a></li> 2833 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.59"><b>5</b></a></li> 2834 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.60"><b>5.1</b></a></li> 2835 <li class="indline1"><tt>Request-URI</tt> <a class="iref" href="#rfc.iref.g.63"><b>5.1.2</b></a></li> 2836 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.64"><b>6</b></a></li> 2837 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.23"><b>3.3.1</b></a></li> 2838 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.25"><b>3.3.1</b></a></li> 2839 <li class="indline1"><tt>separators</tt> <a class="iref" href="#rfc.iref.g.5"><b>2.2</b></a></li> 2840 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.52"><b>4.1</b></a></li> 2841 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.66"><b>6.1.1</b></a></li> 2842 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.65"><b>6.1</b></a></li> 2843 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.75"><b>8.5</b></a></li> 2844 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.4"><b>2.2</b></a></li> 2845 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.74"><b>8.5</b></a></li> 2846 <li class="indline1"><tt>TEXT</tt> <a class="iref" href="#rfc.iref.g.2"><b>2.2</b></a></li> 2847 <li class="indline1"><tt>time</tt> <a class="iref" href="#rfc.iref.g.30"><b>3.3.1</b></a></li> 2848 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.3"><b>2.2</b></a></li> 2849 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.76"><b>8.6</b></a></li> 2850 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.4.1</b></a></li> 2851 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.34"><b>3.4</b></a></li> 2852 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.77"><b>8.7</b></a></li> 2853 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.35"><b>3.4</b></a></li> 2854 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.78"><b>8.8</b></a></li> 2855 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.20"><b>3.2.1</b></a></li> 2856 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.4</b></a></li> 2857 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.79"><b>8.9</b></a></li> 2858 <li class="indline1"><tt>weekday</tt> <a class="iref" href="#rfc.iref.g.32"><b>3.3.1</b></a></li> 2859 <li class="indline1"><tt>wkday</tt> <a class="iref" href="#rfc.iref.g.31"><b>3.3.1</b></a></li> 2898 2860 </ul> 2899 2861 </li> … … 3030 2992 <li class="indline1"><em>RFC4288</em> <a class="iref" href="#rfc.xref.RFC4288.1">9.3</a>, <a class="iref" href="#RFC4288"><b>12.2</b></a></li> 3031 2993 <li class="indline1"><em>RFC4395</em> <a class="iref" href="#rfc.xref.RFC4395.1">9.2</a>, <a class="iref" href="#RFC4395"><b>12.2</b></a></li> 3032 <li class="indline1"><em>RFC5234</em> <a class="iref" href="#rfc.xref.RFC5234.1">2.1</a>, <a class="iref" href="#rfc.xref.RFC5234.2">11</a>, <a class="iref" href="#RFC5234"><b>12.1</b></a></li> 2994 <li class="indline1"><em>RFC5234</em> <a class="iref" href="#rfc.xref.RFC5234.1">2.1</a>, <a class="iref" href="#rfc.xref.RFC5234.2">2.2</a>, <a class="iref" href="#rfc.xref.RFC5234.3">2.2</a>, <a class="iref" href="#rfc.xref.RFC5234.4">11</a>, <a class="iref" href="#RFC5234"><b>12.1</b></a><ul class="ind"> 2995 <li class="indline1"><em>Appendix B.1</em> <a class="iref" href="#rfc.xref.RFC5234.3">2.2</a></li> 2996 </ul> 2997 </li> 3033 2998 <li class="indline1"><em>RFC5322</em> <a class="iref" href="#rfc.xref.RFC5322.1">1.1</a>, <a class="iref" href="#rfc.xref.RFC5322.2">4.1</a>, <a class="iref" href="#rfc.xref.RFC5322.3">4.2</a>, <a class="iref" href="#rfc.xref.RFC5322.4">8.3</a>, <a class="iref" href="#rfc.xref.RFC5322.5">8.9</a>, <a class="iref" href="#RFC5322"><b>12.2</b></a><ul class="ind"> 3034 2999 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC5322.3">4.2</a></li> -
draft-ietf-httpbis/latest/p1-messaging.xml
r346 r349 418 418 <section title="Notational Conventions and Generic Grammar" anchor="notation"> 419 419 420 <section title="Augmented BNF" anchor="notation.abnf"> 421 <t> 422 All of the mechanisms specified in this document are described in 423 both prose and an augmented Backus-Naur Form (ABNF) based on that 424 defined in <xref target="RFC5234"/>. Implementors will need to be 425 familiar with the notation in order to understand this specification. The 426 extensions to ABNF used in this specification are described below. 420 <section title="ABNF Extensions" anchor="notation.abnf"> 421 <t> 422 Two extensions to the ABNF rules of <xref target="RFC5234"/> are used to 423 improve readability.<cref>The current plan is to remove these extensions prior 424 to the last call draft.</cref> 427 425 </t> 428 426 … … 471 469 <section title="Basic Rules" anchor="basic.rules"> 472 470 <t anchor="core.rules"> 473 <x:anchor-alias value=" OCTET"/>471 <x:anchor-alias value="ALPHA"/> 474 472 <x:anchor-alias value="CHAR"/> 475 <x:anchor-alias value="ALPHA"/>476 <x:anchor-alias value="DIGIT"/>477 473 <x:anchor-alias value="CTL"/> 478 474 <x:anchor-alias value="CR"/> 475 <x:anchor-alias value="CRLF"/> 476 <x:anchor-alias value="DIGIT"/> 477 <x:anchor-alias value="DQUOTE"/> 478 <x:anchor-alias value="HEXDIG"/> 479 <x:anchor-alias value="HTAB"/> 479 480 <x:anchor-alias value="LF"/> 481 <x:anchor-alias value="OCTET"/> 480 482 <x:anchor-alias value="SP"/> 481 <x:anchor-alias value="HTAB"/> 482 <x:anchor-alias value="DQUOTE"/> 483 The following rules are used throughout this specification to 484 describe basic parsing constructs. The US-ASCII coded character set 485 is defined by ANSI X3.4-1986 <xref target="USASCII"/>. 486 </t> 487 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR"/><iref primary="true" item="Grammar" subitem="ALPHA"/><iref primary="true" item="Grammar" subitem="DIGIT"/><iref primary="true" item="Grammar" subitem="CTL"/><iref primary="true" item="Grammar" subitem="CR"/><iref primary="true" item="Grammar" subitem="LF"/><iref primary="true" item="Grammar" subitem="SP"/><iref primary="true" item="Grammar" subitem="HTAB"/><iref primary="true" item="Grammar" subitem="DQUOTE"/> 488 <x:ref>OCTET</x:ref> = %x00-FF 489 ; any 8-bit sequence of data 490 <x:ref>CHAR</x:ref> = %x01-7F 491 ; any US-ASCII character, excluding NUL 492 <x:ref>ALPHA</x:ref> = %x41-5A / %x61-7A 493 ; A-Z / a-z 494 <x:ref>DIGIT</x:ref> = %x30-39 495 ; any US-ASCII digit "0".."9" 496 <x:ref>CTL</x:ref> = %x00-1F / %x7F 497 ; (octets 0 - 31) and DEL (127) 498 <x:ref>CR</x:ref> = %x0D 499 ; US-ASCII CR, carriage return (13) 500 <x:ref>LF</x:ref> = %x0A 501 ; US-ASCII LF, linefeed (10) 502 <x:ref>SP</x:ref> = %x20 503 ; US-ASCII SP, space (32) 504 <x:ref>HTAB</x:ref> = %x09 505 ; US-ASCII HT, horizontal-tab (9) 506 <x:ref>DQUOTE</x:ref> = %x22 507 ; US-ASCII double-quote mark (34) 508 </artwork></figure> 483 <x:anchor-alias value="WSP"/> 484 This specification uses the Augmented Backus-Naur Form (ABNF) notation 485 of <xref target="RFC5234"/>. The following core rules are included by 486 reference, as defined in <xref target="RFC5234" x:fmt="," x:sec="B.1"/>: 487 ALPHA (letters), CHAR (any <xref target="USASCII"/> character, 488 excluding NUL), CR (carriage return), CRLF (CR LF), CTL (controls), 489 DIGIT (decimal 0-9), DQUOTE (double quote), 490 HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), 491 LF (line feed), OCTET (any 8-bit sequence of data), SP (space) 492 and WSP (white space). 493 </t> 509 494 <t anchor="rule.CRLF"> 510 495 <x:anchor-alias value="CRLF"/> … … 514 499 is defined by its associated media type, as described in &media-types;. 515 500 </t> 516 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF"/>517 <x:ref>CRLF</x:ref> = <x:ref>CR</x:ref> LF518 </artwork></figure>519 501 <t anchor="rule.LWS"> 520 502 <x:anchor-alias value="LWS"/> … … 545 527 replaced with a single SP before interpretation of the TEXT value. 546 528 </t> 547 <t anchor="rule.HEXDIG">548 <x:anchor-alias value="HEXDIG"/>549 Hexadecimal numeric characters are used in several protocol elements.550 </t>551 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEXDIG"/>552 <x:ref>HEXDIG</x:ref> = "A" / "B" / "C" / "D" / "E" / "F"553 / "a" / "b" / "c" / "d" / "e" / "f" / <x:ref>DIGIT</x:ref>554 </artwork></figure>555 529 <t anchor="rule.token.separators"> 556 530 <x:anchor-alias value="tchar"/> … … 4646 4620 Get rid of RFC822 dependency; use RFC5234 plus extensions instead. 4647 4621 </t> 4622 <t> 4623 Only reference RFC 5234's core rules. 4624 </t> 4648 4625 </list> 4649 4626 </t>
Note: See TracChangeset
for help on using the changeset viewer.