Changeset 626 for draft-ietf-httpbis
- Timestamp:
- 26/07/09 12:17:52 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r622 r626 360 360 <link rel="Chapter" title="1 Introduction" href="#rfc.section.1"> 361 361 <link rel="Chapter" title="2 HTTP architecture" href="#rfc.section.2"> 362 <link rel="Chapter" title="3 Protocol Parameters" href="#rfc.section.3">363 <link rel="Chapter" title="4 HTTP Message" href="#rfc.section.4">364 <link rel="Chapter" title="5 Re quest" href="#rfc.section.5">365 <link rel="Chapter" title="6 Response" href="#rfc.section.6">362 <link rel="Chapter" title="3 HTTP Message" href="#rfc.section.3"> 363 <link rel="Chapter" title="4 Request" href="#rfc.section.4"> 364 <link rel="Chapter" title="5 Response" href="#rfc.section.5"> 365 <link rel="Chapter" title="6 Protocol Parameters" href="#rfc.section.6"> 366 366 <link rel="Chapter" title="7 Connections" href="#rfc.section.7"> 367 367 <link rel="Chapter" title="8 Header Field Definitions" href="#rfc.section.8"> … … 529 529 </li> 530 530 <li class="tocline0">2. <a href="#architecture">HTTP architecture</a><ul class="toc"> 531 <li class="tocline1">2.1 <a href="#uri">Uniform Resource Identifiers</a><ul class="toc"> 532 <li class="tocline1">2.1.1 <a href="#http.uri">http URI scheme</a></li> 533 <li class="tocline1">2.1.2 <a href="#https.uri">https URI scheme</a></li> 534 <li class="tocline1">2.1.3 <a href="#uri.comparison">http and https URI Normalization and Comparison</a></li> 535 <li class="tocline1">2.1.4 <a href="#scheme.aliases">Scheme aliases considered harmful</a></li> 531 <li class="tocline1">2.1 <a href="#intro.overall.operation">Overall Operation</a></li> 532 <li class="tocline1">2.2 <a href="#http.version">HTTP Version</a></li> 533 <li class="tocline1">2.3 <a href="#uri">Uniform Resource Identifiers</a><ul class="toc"> 534 <li class="tocline1">2.3.1 <a href="#http.uri">http URI scheme</a></li> 535 <li class="tocline1">2.3.2 <a href="#https.uri">https URI scheme</a></li> 536 <li class="tocline1">2.3.3 <a href="#uri.comparison">http and https URI Normalization and Comparison</a></li> 537 <li class="tocline1">2.3.4 <a href="#scheme.aliases">Scheme aliases considered harmful</a></li> 536 538 </ul> 537 539 </li> 538 <li class="tocline1">2.2 <a href="#intro.overall.operation">Overall Operation</a></li> 539 <li class="tocline1">2.3 <a href="#http.proxy">Use of HTTP for proxy communication</a></li> 540 <li class="tocline1">2.4 <a href="#http.intercept">Interception of HTTP for access control</a></li> 541 <li class="tocline1">2.5 <a href="#http.others">Use of HTTP by other protocols</a></li> 542 <li class="tocline1">2.6 <a href="#http.media">Use of HTTP by media type specification</a></li> 540 <li class="tocline1">2.4 <a href="#http.proxy">Use of HTTP for proxy communication</a></li> 541 <li class="tocline1">2.5 <a href="#http.intercept">Interception of HTTP for access control</a></li> 542 <li class="tocline1">2.6 <a href="#http.others">Use of HTTP by other protocols</a></li> 543 <li class="tocline1">2.7 <a href="#http.media">Use of HTTP by media type specification</a></li> 543 544 </ul> 544 545 </li> 545 <li class="tocline0">3. <a href="#protocol.parameters">Protocol Parameters</a><ul class="toc"> 546 <li class="tocline1">3.1 <a href="#http.version">HTTP Version</a></li> 547 <li class="tocline1">3.2 <a href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></li> 548 <li class="tocline1">3.3 <a href="#transfer.codings">Transfer Codings</a><ul class="toc"> 549 <li class="tocline1">3.3.1 <a href="#chunked.transfer.encoding">Chunked Transfer Coding</a></li> 546 <li class="tocline0">3. <a href="#http.message">HTTP Message</a><ul class="toc"> 547 <li class="tocline1">3.1 <a href="#message.types">Message Types</a></li> 548 <li class="tocline1">3.2 <a href="#message.headers">Message Headers</a></li> 549 <li class="tocline1">3.3 <a href="#message.body">Message Body</a></li> 550 <li class="tocline1">3.4 <a href="#message.length">Message Length</a></li> 551 <li class="tocline1">3.5 <a href="#general.header.fields">General Header Fields</a></li> 552 </ul> 553 </li> 554 <li class="tocline0">4. <a href="#request">Request</a><ul class="toc"> 555 <li class="tocline1">4.1 <a href="#request-line">Request-Line</a><ul class="toc"> 556 <li class="tocline1">4.1.1 <a href="#method">Method</a></li> 557 <li class="tocline1">4.1.2 <a href="#request-target">request-target</a></li> 550 558 </ul> 551 559 </li> 552 <li class="tocline1">3.4 <a href="#product.tokens">Product Tokens</a></li> 553 <li class="tocline1">3.5 <a href="#quality.values">Quality Values</a></li> 560 <li class="tocline1">4.2 <a href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></li> 554 561 </ul> 555 562 </li> 556 <li class="tocline0">4. <a href="#http.message">HTTP Message</a><ul class="toc"> 557 <li class="tocline1">4.1 <a href="#message.types">Message Types</a></li> 558 <li class="tocline1">4.2 <a href="#message.headers">Message Headers</a></li> 559 <li class="tocline1">4.3 <a href="#message.body">Message Body</a></li> 560 <li class="tocline1">4.4 <a href="#message.length">Message Length</a></li> 561 <li class="tocline1">4.5 <a href="#general.header.fields">General Header Fields</a></li> 562 </ul> 563 </li> 564 <li class="tocline0">5. <a href="#request">Request</a><ul class="toc"> 565 <li class="tocline1">5.1 <a href="#request-line">Request-Line</a><ul class="toc"> 566 <li class="tocline1">5.1.1 <a href="#method">Method</a></li> 567 <li class="tocline1">5.1.2 <a href="#request-target">request-target</a></li> 563 <li class="tocline0">5. <a href="#response">Response</a><ul class="toc"> 564 <li class="tocline1">5.1 <a href="#status-line">Status-Line</a><ul class="toc"> 565 <li class="tocline1">5.1.1 <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></li> 568 566 </ul> 569 567 </li> 570 <li class="tocline1">5.2 <a href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></li>571 568 </ul> 572 569 </li> 573 <li class="tocline0">6. <a href="#response">Response</a><ul class="toc"> 574 <li class="tocline1">6.1 <a href="#status-line">Status-Line</a><ul class="toc"> 575 <li class="tocline1">6.1.1 <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></li> 570 <li class="tocline0">6. <a href="#protocol.parameters">Protocol Parameters</a><ul class="toc"> 571 <li class="tocline1">6.1 <a href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></li> 572 <li class="tocline1">6.2 <a href="#transfer.codings">Transfer Codings</a><ul class="toc"> 573 <li class="tocline1">6.2.1 <a href="#chunked.transfer.encoding">Chunked Transfer Coding</a></li> 576 574 </ul> 577 575 </li> 576 <li class="tocline1">6.3 <a href="#product.tokens">Product Tokens</a></li> 577 <li class="tocline1">6.4 <a href="#quality.values">Quality Values</a></li> 578 578 </ul> 579 579 </li> … … 766 766 ; "bad" whitespace 767 767 <a href="#rule.whitespace" class="smpl">obs-fold</a> = <a href="#core.rules" class="smpl">CRLF</a> 768 ; see <a href="#message.headers" title="Message Headers">Section 4.2</a>768 ; see <a href="#message.headers" title="Message Headers">Section 3.2</a> 769 769 </pre><div id="rule.token.separators"> 770 <p id="rfc.section.1.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by whitespace or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>).770 <p id="rfc.section.1.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by whitespace or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>). 771 771 </p> 772 772 </div> … … 804 804 hypertext system. Much of that architecture is reflected in the terminology and syntax productions used to define HTTP. 805 805 </p> 806 <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> <a id="intro.overall.operation" href="#intro.overall.operation">Overall Operation</a></h2> 807 <p id="rfc.section.2.1.p.1">HTTP is a request/response protocol. A client sends a request to the server in the form of a request method, URI, and protocol 808 version, followed by a MIME-like message containing request modifiers, client information, and possible body content over 809 a connection with a server. The server responds with a status line, including the message's protocol version and a success 810 or error code, followed by a MIME-like message containing server information, entity metadata, and possible entity-body content. 811 </p> 812 <p id="rfc.section.2.1.p.2">Most HTTP communication is initiated by a user agent and consists of a request to be applied to a resource via the HTTP interface 813 provided by some origin server. In the simplest case, this may be accomplished via a single connection (v) between the user 814 agent (UA) and the origin server (O). 815 </p> 816 <div id="rfc.figure.u.12"></div><pre class="drawing"> request chain ------------------------> 817 UA -------------------v------------------- O 818 <----------------------- response chain 819 </pre><p id="rfc.section.2.1.p.4">A more complicated situation occurs when one or more intermediaries are present in the request/response chain. There are three 820 common forms of intermediary: proxy, gateway, and tunnel. A proxy is a forwarding agent, receiving requests for a URI in its 821 absolute form, rewriting all or part of the message, and forwarding the reformatted request toward the server identified by 822 the URI. A gateway is a receiving agent, acting as a layer above some other server(s) and, if necessary, translating the requests 823 to the underlying server's protocol. A tunnel acts as a relay point between two connections without changing the messages; 824 tunnels are used when the communication needs to pass through an intermediary (such as a firewall) even when the intermediary 825 cannot understand the contents of the messages. 826 </p> 827 <div id="rfc.figure.u.13"></div><pre class="drawing"> request chain --------------------------------------> 828 UA -----v----- A -----v----- B -----v----- C -----v----- O 829 <------------------------------------- response chain 830 </pre><p id="rfc.section.2.1.p.6">The figure above shows three intermediaries (A, B, and C) between the user agent and origin server. A request or response 831 message that travels the whole chain will pass through four separate connections. This distinction is important because some 832 HTTP communication options may apply only to the connection with the nearest, non-tunnel neighbor, only to the end-points 833 of the chain, or to all connections along the chain. Although the diagram is linear, each participant may be engaged in multiple, 834 simultaneous communications. For example, B may be receiving requests from many clients other than A, and/or forwarding requests 835 to servers other than C, at the same time that it is handling A's request. 836 </p> 837 <p id="rfc.section.2.1.p.7">Any party to the communication which is not acting as a tunnel may employ an internal cache for handling requests. The effect 838 of a cache is that the request/response chain is shortened if one of the participants along the chain has a cached response 839 applicable to that request. The following illustrates the resulting chain if B has a cached copy of an earlier response from 840 O (via C) for a request which has not been cached by UA or A. 841 </p> 842 <div id="rfc.figure.u.14"></div><pre class="drawing"> request chain ----------> 843 UA -----v----- A -----v----- B - - - - - - C - - - - - - O 844 <--------- response chain 845 </pre><p id="rfc.section.2.1.p.9">Not all responses are usefully cacheable, and some requests may contain modifiers which place special requirements on cache 846 behavior. HTTP requirements for cache behavior and cacheable responses are defined in <a href="p6-cache.html#caching" title="Introduction">Section 1</a> of <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. 847 </p> 848 <p id="rfc.section.2.1.p.10">In fact, there are a wide variety of architectures and configurations of caches and proxies currently being experimented with 849 or deployed across the World Wide Web. These systems include national hierarchies of proxy caches to save transoceanic bandwidth, 850 systems that broadcast or multicast cache entries, organizations that distribute subsets of cached data via CD-ROM, and so 851 on. HTTP systems are used in corporate intranets over high-bandwidth links, and for access via PDAs with low-power radio links 852 and intermittent connectivity. The goal of HTTP/1.1 is to support the wide diversity of configurations already deployed while 853 introducing protocol constructs that meet the needs of those who build web applications that require high reliability and, 854 failing that, at least reliable indications of failure. 855 </p> 856 <p id="rfc.section.2.1.p.11">HTTP communication usually takes place over TCP/IP connections. The default port is TCP 80 (<<a href="http://www.iana.org/assignments/port-numbers">http://www.iana.org/assignments/port-numbers</a>>), but other ports can be used. This does not preclude HTTP from being implemented on top of any other protocol on the Internet, 857 or on other networks. HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used; the 858 mapping of the HTTP/1.1 request and response structures onto the transport data units of the protocol in question is outside 859 the scope of this specification. 860 </p> 861 <p id="rfc.section.2.1.p.12">In HTTP/1.0, most implementations used a new connection for each request/response exchange. In HTTP/1.1, a connection may 862 be used for one or more request/response exchanges, although connections may be closed for a variety of reasons (see <a href="#persistent.connections" title="Persistent Connections">Section 7.1</a>). 863 </p> 864 <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> <a id="http.version" href="#http.version">HTTP Version</a></h2> 865 <p id="rfc.section.2.2.p.1">HTTP uses a "<major>.<minor>" numbering scheme to indicate versions of the protocol. The protocol versioning policy is intended 866 to allow the sender to indicate the format of a message and its capacity for understanding further HTTP communication, rather 867 than the features obtained via that communication. No change is made to the version number for the addition of message components 868 which do not affect communication behavior or which only add to extensible field values. The <minor> number is incremented 869 when the changes made to the protocol add features which do not change the general message parsing algorithm, but which may 870 add to the message semantics and imply additional capabilities of the sender. The <major> number is incremented when the format 871 of a message within the protocol is changed. See <a href="#RFC2145" id="rfc.xref.RFC2145.1"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a> for a fuller explanation. 872 </p> 873 <p id="rfc.section.2.2.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> 874 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.23"></span><span id="rfc.iref.g.24"></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> 875 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 876 </pre><p id="rfc.section.2.2.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. 877 Leading zeros <em class="bcp14">MUST</em> be ignored by recipients and <em class="bcp14">MUST NOT</em> be sent. 878 </p> 879 <p id="rfc.section.2.2.p.5">An application that sends a request or response message that includes HTTP-Version of "HTTP/1.1" <em class="bcp14">MUST</em> be at least conditionally compliant with this specification. Applications that are at least conditionally compliant with this 880 specification <em class="bcp14">SHOULD</em> use an HTTP-Version of "HTTP/1.1" in their messages, and <em class="bcp14">MUST</em> do so for any message that is not compatible with HTTP/1.0. For more details on when to send specific HTTP-Version values, 881 see <a href="#RFC2145" id="rfc.xref.RFC2145.2"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. 882 </p> 883 <p id="rfc.section.2.2.p.6">The HTTP version of an application is the highest HTTP version for which the application is at least conditionally compliant.</p> 884 <p id="rfc.section.2.2.p.7">Proxy and gateway applications need to be careful when forwarding messages in protocol versions different from that of the 885 application. Since the protocol version indicates the protocol capability of the sender, a proxy/gateway <em class="bcp14">MUST NOT</em> send a message with a version indicator which is greater than its actual version. If a higher version request is received, 886 the proxy/gateway <em class="bcp14">MUST</em> either downgrade the request version, or respond with an error, or switch to tunnel behavior. 887 </p> 888 <p id="rfc.section.2.2.p.8">Due to interoperability problems with HTTP/1.0 proxies discovered since the publication of <a href="#RFC2068" id="rfc.xref.RFC2068.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, caching proxies <em class="bcp14">MUST</em>, gateways <em class="bcp14">MAY</em>, and tunnels <em class="bcp14">MUST NOT</em> upgrade the request to the highest version they support. The proxy/gateway's response to that request <em class="bcp14">MUST</em> be in the same major version as the request. 889 </p> 890 <div class="note"> 891 <p> <b>Note:</b> Converting between versions of HTTP may involve modification of header fields required or forbidden by the versions involved. 892 </p> 893 </div> 806 894 <div id="rfc.iref.r.1"></div> 807 <h2 id="rfc.section.2. 1"><a href="#rfc.section.2.1">2.1</a> <a id="uri" href="#uri">Uniform Resource Identifiers</a></h2>808 <p id="rfc.section.2. 1.p.1">Uniform Resource Identifiers (URIs) <a href="#RFC3986" id="rfc.xref.RFC3986.2"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a> are used throughout HTTP as the means for identifying resources. URI references are used to target requests, indicate redirects,895 <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> <a id="uri" href="#uri">Uniform Resource Identifiers</a></h2> 896 <p id="rfc.section.2.3.p.1">Uniform Resource Identifiers (URIs) <a href="#RFC3986" id="rfc.xref.RFC3986.2"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a> are used throughout HTTP as the means for identifying resources. URI references are used to target requests, indicate redirects, 809 897 and define relationships. HTTP does not limit what a resource may be; it merely defines an interface that can be used to interact 810 898 with a resource via HTTP. More information on the scope of URIs and resources can be found in <a href="#RFC3986" id="rfc.xref.RFC3986.3"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>. 811 899 </p> 812 <p id="rfc.section.2. 1.p.2">This specification adopts the definitions of "URI-reference", "absolute-URI", "relative-part", "fragment", "port", "host",900 <p id="rfc.section.2.3.p.2">This specification adopts the definitions of "URI-reference", "absolute-URI", "relative-part", "fragment", "port", "host", 813 901 "path-abempty", "path-absolute", "query", and "authority" from <a href="#RFC3986" id="rfc.xref.RFC3986.4"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>. In addition, we define a partial-URI rule for protocol elements that allow a relative URI without a fragment. 814 902 </p> 815 <div id="rfc.figure.u.1 2"></div><pre class="inline"><span id="rfc.iref.g.23"></span><span id="rfc.iref.g.24"></span><span id="rfc.iref.g.25"></span><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span> <a href="#uri" class="smpl">URI</a> = <URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.5"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3">Section 3</a>>903 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.25"></span><span id="rfc.iref.g.26"></span><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span><span id="rfc.iref.g.31"></span> <a href="#uri" class="smpl">URI</a> = <URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.5"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3">Section 3</a>> 816 904 <a href="#uri" class="smpl">URI-reference</a> = <URI-reference, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.6"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.1">Section 4.1</a>> 817 905 <a href="#uri" class="smpl">absolute-URI</a> = <absolute-URI, defined in <a href="#RFC3986" id="rfc.xref.RFC3986.7"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.3">Section 4.3</a>> … … 826 914 827 915 <a href="#uri" class="smpl">partial-URI</a> = relative-part [ "?" query ] 828 </pre><p id="rfc.section.2. 1.p.4">Each protocol element in HTTP that allows a URI reference will indicate in its ABNF production whether the element allows916 </pre><p id="rfc.section.2.3.p.4">Each protocol element in HTTP that allows a URI reference will indicate in its ABNF production whether the element allows 829 917 only a URI in absolute form (absolute-URI), any relative reference (relative-ref), or some other subset of the URI-reference 830 918 grammar. Unless otherwise indicated, URI references are parsed relative to the request target (the default base URI for both 831 919 the request and its corresponding response). 832 920 </p> 833 <h3 id="rfc.section.2. 1.1"><a href="#rfc.section.2.1.1">2.1.1</a> <a id="http.uri" href="#http.uri">http URI scheme</a></h3>921 <h3 id="rfc.section.2.3.1"><a href="#rfc.section.2.3.1">2.3.1</a> <a id="http.uri" href="#http.uri">http URI scheme</a></h3> 834 922 <div id="rfc.iref.h.1"></div> 835 923 <div id="rfc.iref.u.1"></div> 836 <p id="rfc.section.2. 1.1.p.1">The "http" URI scheme is hereby defined for the purpose of minting identifiers according to their association with the hierarchical924 <p id="rfc.section.2.3.1.p.1">The "http" URI scheme is hereby defined for the purpose of minting identifiers according to their association with the hierarchical 837 925 namespace governed by a potential HTTP origin server listening for TCP connections on a given port. The HTTP server is identified 838 926 via the generic syntax's <a href="#uri" class="smpl">authority</a> component, which includes a host identifier and optional TCP port, and the remainder of the URI is considered to be identifying 839 927 data corresponding to a resource for which that server might provide an HTTP interface. 840 928 </p> 841 <div id="rfc.figure.u.1 3"></div><pre class="inline"><span id="rfc.iref.g.30"></span> <a href="#http.uri" class="smpl">http-URI</a> = "http:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ]842 </pre><p id="rfc.section.2. 1.1.p.3">The host identifier within an <a href="#uri" class="smpl">authority</a> component is defined in <a href="#RFC3986" id="rfc.xref.RFC3986.16"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3.2.2">Section 3.2.2</a>. If host is provided as an IP literal or IPv4 address, then the HTTP server is any listener on the indicated TCP port at929 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#http.uri" class="smpl">http-URI</a> = "http:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ] 930 </pre><p id="rfc.section.2.3.1.p.3">The host identifier within an <a href="#uri" class="smpl">authority</a> component is defined in <a href="#RFC3986" id="rfc.xref.RFC3986.16"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-3.2.2">Section 3.2.2</a>. If host is provided as an IP literal or IPv4 address, then the HTTP server is any listener on the indicated TCP port at 843 931 that IP address. If host is a registered name, then that name is considered an indirect identifier and the recipient might 844 932 use a name resolution service, such as DNS, to find the address of a listener for that host. The host <em class="bcp14">MUST NOT</em> be empty; if an "http" URI is received with an empty host, then it <em class="bcp14">MUST</em> be rejected as invalid. If the port subcomponent is empty or not given, then TCP port 80 is assumed (the default reserved 845 933 port for WWW services). 846 934 </p> 847 <p id="rfc.section.2. 1.1.p.4">Regardless of the form of host identifier, access to that host is not implied by the mere presence of its name or address.935 <p id="rfc.section.2.3.1.p.4">Regardless of the form of host identifier, access to that host is not implied by the mere presence of its name or address. 848 936 The host may or may not exist and, even when it does exist, may or may not be running an HTTP server or listening to the indicated 849 937 port. The "http" URI scheme makes use of the delegated nature of Internet names and addresses to establish a naming authority … … 851 939 which names are valid and how they might be used. 852 940 </p> 853 <p id="rfc.section.2. 1.1.p.5">When an "http" URI is used within a context that calls for access to the indicated resource, a client <em class="bcp14">MAY</em> attempt access by resolving the host to an IP address, establishing a TCP connection to that address on the indicated port,854 and sending an HTTP request message to the server containing the URI's identifying data as described in <a href="#request" title="Request">Section 5</a>. If the server responds to that request with a non-interim HTTP response message, as described in <a href="#response" title="Response">Section 6</a>, then that response is considered an authoritative answer to the client's request.855 </p> 856 <p id="rfc.section.2. 1.1.p.6">Although HTTP is independent of the transport protocol, the "http" scheme is specific to TCP-based services because the name941 <p id="rfc.section.2.3.1.p.5">When an "http" URI is used within a context that calls for access to the indicated resource, a client <em class="bcp14">MAY</em> attempt access by resolving the host to an IP address, establishing a TCP connection to that address on the indicated port, 942 and sending an HTTP request message to the server containing the URI's identifying data as described in <a href="#request" title="Request">Section 4</a>. If the server responds to that request with a non-interim HTTP response message, as described in <a href="#response" title="Response">Section 5</a>, then that response is considered an authoritative answer to the client's request. 943 </p> 944 <p id="rfc.section.2.3.1.p.6">Although HTTP is independent of the transport protocol, the "http" scheme is specific to TCP-based services because the name 857 945 delegation process depends on TCP for establishing authority. An HTTP service based on some other underlying connection protocol 858 946 would presumably be identified using a different URI scheme, just as the "https" scheme (below) is used for servers that require … … 860 948 --- it is only the authoritative interface used for mapping the namespace that is specific to TCP. 861 949 </p> 862 <h3 id="rfc.section.2. 1.2"><a href="#rfc.section.2.1.2">2.1.2</a> <a id="https.uri" href="#https.uri">https URI scheme</a></h3>950 <h3 id="rfc.section.2.3.2"><a href="#rfc.section.2.3.2">2.3.2</a> <a id="https.uri" href="#https.uri">https URI scheme</a></h3> 863 951 <div id="rfc.iref.h.2"></div> 864 952 <div id="rfc.iref.u.2"></div> 865 <p id="rfc.section.2. 1.2.p.1">The "https" URI scheme is hereby defined for the purpose of minting identifiers according to their association with the hierarchical953 <p id="rfc.section.2.3.2.p.1">The "https" URI scheme is hereby defined for the purpose of minting identifiers according to their association with the hierarchical 866 954 namespace governed by a potential HTTP origin server listening for SSL/TLS-secured connections on a given TCP port. The host 867 955 and port are determined in the same way as for the "http" scheme, except that a default TCP port of 443 is assumed if the 868 956 port subcomponent is empty or not given. 869 957 </p> 870 <div id="rfc.figure.u.1 4"></div><pre class="inline"><span id="rfc.iref.g.31"></span> <a href="#https.uri" class="smpl">https-URI</a> = "https:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ]871 </pre><p id="rfc.section.2. 1.2.p.3">The primary difference between the "http" and "https" schemes is that interaction with the latter is required to be secured958 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.33"></span> <a href="#https.uri" class="smpl">https-URI</a> = "https:" "//" <a href="#uri" class="smpl">authority</a> <a href="#uri" class="smpl">path-abempty</a> [ "?" <a href="#uri" class="smpl">query</a> ] 959 </pre><p id="rfc.section.2.3.2.p.3">The primary difference between the "http" and "https" schemes is that interaction with the latter is required to be secured 872 960 for privacy through the use of strong encryption. The URI cannot be sent in a request until the connection is secure. Likewise, 873 961 the default for caching is that each response that would be considered "public" under the "http" scheme is instead treated 874 962 as "private" and thus not eligible for shared caching. 875 963 </p> 876 <p id="rfc.section.2. 1.2.p.4">The process for authoritative access to an "https" identified resource is defined in <a href="#RFC2818" id="rfc.xref.RFC2818.1"><cite title="HTTP Over TLS">[RFC2818]</cite></a>.877 </p> 878 <h3 id="rfc.section.2. 1.3"><a href="#rfc.section.2.1.3">2.1.3</a> <a id="uri.comparison" href="#uri.comparison">http and https URI Normalization and Comparison</a></h3>879 <p id="rfc.section.2. 1.3.p.1">Since the "http" and "https" schemes conform to the URI generic syntax, such URIs are normalized and compared according to964 <p id="rfc.section.2.3.2.p.4">The process for authoritative access to an "https" identified resource is defined in <a href="#RFC2818" id="rfc.xref.RFC2818.1"><cite title="HTTP Over TLS">[RFC2818]</cite></a>. 965 </p> 966 <h3 id="rfc.section.2.3.3"><a href="#rfc.section.2.3.3">2.3.3</a> <a id="uri.comparison" href="#uri.comparison">http and https URI Normalization and Comparison</a></h3> 967 <p id="rfc.section.2.3.3.p.1">Since the "http" and "https" schemes conform to the URI generic syntax, such URIs are normalized and compared according to 880 968 the algorithm defined in <a href="#RFC3986" id="rfc.xref.RFC3986.17"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-6">Section 6</a>, using the defaults described above for each scheme. 881 969 </p> 882 <p id="rfc.section.2. 1.3.p.2">If the port is equal to the default port for a scheme, the normal form is to elide the port subcomponent. Likewise, an empty970 <p id="rfc.section.2.3.3.p.2">If the port is equal to the default port for a scheme, the normal form is to elide the port subcomponent. Likewise, an empty 883 971 path component is equivalent to an absolute path of "/", so the normal form is to provide a path of "/" instead. The scheme 884 972 and host are case-insensitive and normally provided in lowercase; all other components are compared in a case-sensitive manner. 885 973 Characters other than those in the "reserved" set are equivalent to their percent-encoded octets (see <a href="#RFC3986" id="rfc.xref.RFC3986.18"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>): the normal form is to not encode them. 886 974 </p> 887 <p id="rfc.section.2. 1.3.p.3">For example, the following three URIs are equivalent:</p>888 <div id="rfc.figure.u.1 5"></div><pre class="text"> http://example.com:80/~smith/home.html975 <p id="rfc.section.2.3.3.p.3">For example, the following three URIs are equivalent:</p> 976 <div id="rfc.figure.u.19"></div><pre class="text"> http://example.com:80/~smith/home.html 889 977 http://EXAMPLE.com/%7Esmith/home.html 890 978 http://EXAMPLE.com:/%7esmith/home.html 891 </pre><p id="rfc.section.2.1.3.p.5"> <span class="comment" id="rfc.comment.1">[<a href="#rfc.comment.1" class="smpl">rfc.comment.1</a>: [[This paragraph does not belong here. --Roy]]]</span> If path-abempty is the empty string (i.e., there is no slash "/" path separator following the authority), then the "http" 892 URI <em class="bcp14">MUST</em> be given as "/" when used as a request-target (<a href="#request-target" title="request-target">Section 5.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name. 893 </p> 894 <h3 id="rfc.section.2.1.4"><a href="#rfc.section.2.1.4">2.1.4</a> <a id="scheme.aliases" href="#scheme.aliases">Scheme aliases considered harmful</a></h3> 895 <p id="rfc.section.2.1.4.p.1"> <span class="comment" id="rfc.comment.2">[<a href="#rfc.comment.2" class="smpl">rfc.comment.2</a>: TBS: describe why aliases like webcal are harmful.]</span> 896 </p> 897 <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> <a id="intro.overall.operation" href="#intro.overall.operation">Overall Operation</a></h2> 898 <p id="rfc.section.2.2.p.1">HTTP is a request/response protocol. A client sends a request to the server in the form of a request method, URI, and protocol 899 version, followed by a MIME-like message containing request modifiers, client information, and possible body content over 900 a connection with a server. The server responds with a status line, including the message's protocol version and a success 901 or error code, followed by a MIME-like message containing server information, entity metadata, and possible entity-body content. 902 </p> 903 <p id="rfc.section.2.2.p.2">Most HTTP communication is initiated by a user agent and consists of a request to be applied to a resource via the HTTP interface 904 provided by some origin server. In the simplest case, this may be accomplished via a single connection (v) between the user 905 agent (UA) and the origin server (O). 906 </p> 907 <div id="rfc.figure.u.16"></div><pre class="drawing"> request chain ------------------------> 908 UA -------------------v------------------- O 909 <----------------------- response chain 910 </pre><p id="rfc.section.2.2.p.4">A more complicated situation occurs when one or more intermediaries are present in the request/response chain. There are three 911 common forms of intermediary: proxy, gateway, and tunnel. A proxy is a forwarding agent, receiving requests for a URI in its 912 absolute form, rewriting all or part of the message, and forwarding the reformatted request toward the server identified by 913 the URI. A gateway is a receiving agent, acting as a layer above some other server(s) and, if necessary, translating the requests 914 to the underlying server's protocol. A tunnel acts as a relay point between two connections without changing the messages; 915 tunnels are used when the communication needs to pass through an intermediary (such as a firewall) even when the intermediary 916 cannot understand the contents of the messages. 917 </p> 918 <div id="rfc.figure.u.17"></div><pre class="drawing"> request chain --------------------------------------> 919 UA -----v----- A -----v----- B -----v----- C -----v----- O 920 <------------------------------------- response chain 921 </pre><p id="rfc.section.2.2.p.6">The figure above shows three intermediaries (A, B, and C) between the user agent and origin server. A request or response 922 message that travels the whole chain will pass through four separate connections. This distinction is important because some 923 HTTP communication options may apply only to the connection with the nearest, non-tunnel neighbor, only to the end-points 924 of the chain, or to all connections along the chain. Although the diagram is linear, each participant may be engaged in multiple, 925 simultaneous communications. For example, B may be receiving requests from many clients other than A, and/or forwarding requests 926 to servers other than C, at the same time that it is handling A's request. 927 </p> 928 <p id="rfc.section.2.2.p.7">Any party to the communication which is not acting as a tunnel may employ an internal cache for handling requests. The effect 929 of a cache is that the request/response chain is shortened if one of the participants along the chain has a cached response 930 applicable to that request. The following illustrates the resulting chain if B has a cached copy of an earlier response from 931 O (via C) for a request which has not been cached by UA or A. 932 </p> 933 <div id="rfc.figure.u.18"></div><pre class="drawing"> request chain ----------> 934 UA -----v----- A -----v----- B - - - - - - C - - - - - - O 935 <--------- response chain 936 </pre><p id="rfc.section.2.2.p.9">Not all responses are usefully cacheable, and some requests may contain modifiers which place special requirements on cache 937 behavior. HTTP requirements for cache behavior and cacheable responses are defined in <a href="p6-cache.html#caching" title="Introduction">Section 1</a> of <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. 938 </p> 939 <p id="rfc.section.2.2.p.10">In fact, there are a wide variety of architectures and configurations of caches and proxies currently being experimented with 940 or deployed across the World Wide Web. These systems include national hierarchies of proxy caches to save transoceanic bandwidth, 941 systems that broadcast or multicast cache entries, organizations that distribute subsets of cached data via CD-ROM, and so 942 on. HTTP systems are used in corporate intranets over high-bandwidth links, and for access via PDAs with low-power radio links 943 and intermittent connectivity. The goal of HTTP/1.1 is to support the wide diversity of configurations already deployed while 944 introducing protocol constructs that meet the needs of those who build web applications that require high reliability and, 945 failing that, at least reliable indications of failure. 946 </p> 947 <p id="rfc.section.2.2.p.11">HTTP communication usually takes place over TCP/IP connections. The default port is TCP 80 (<<a href="http://www.iana.org/assignments/port-numbers">http://www.iana.org/assignments/port-numbers</a>>), but other ports can be used. This does not preclude HTTP from being implemented on top of any other protocol on the Internet, 948 or on other networks. HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used; the 949 mapping of the HTTP/1.1 request and response structures onto the transport data units of the protocol in question is outside 950 the scope of this specification. 951 </p> 952 <p id="rfc.section.2.2.p.12">In HTTP/1.0, most implementations used a new connection for each request/response exchange. In HTTP/1.1, a connection may 953 be used for one or more request/response exchanges, although connections may be closed for a variety of reasons (see <a href="#persistent.connections" title="Persistent Connections">Section 7.1</a>). 954 </p> 955 <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> <a id="http.proxy" href="#http.proxy">Use of HTTP for proxy communication</a></h2> 956 <p id="rfc.section.2.3.p.1"> <span class="comment" id="rfc.comment.3">[<a href="#rfc.comment.3" class="smpl">rfc.comment.3</a>: TBD: Configured to use HTTP to proxy HTTP or other protocols.]</span> 957 </p> 958 <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4</a> <a id="http.intercept" href="#http.intercept">Interception of HTTP for access control</a></h2> 959 <p id="rfc.section.2.4.p.1"> <span class="comment" id="rfc.comment.4">[<a href="#rfc.comment.4" class="smpl">rfc.comment.4</a>: TBD: Interception of HTTP traffic for initiating access control.]</span> 960 </p> 961 <h2 id="rfc.section.2.5"><a href="#rfc.section.2.5">2.5</a> <a id="http.others" href="#http.others">Use of HTTP by other protocols</a></h2> 962 <p id="rfc.section.2.5.p.1"> <span class="comment" id="rfc.comment.5">[<a href="#rfc.comment.5" class="smpl">rfc.comment.5</a>: TBD: Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.]</span> 963 </p> 964 <h2 id="rfc.section.2.6"><a href="#rfc.section.2.6">2.6</a> <a id="http.media" href="#http.media">Use of HTTP by media type specification</a></h2> 965 <p id="rfc.section.2.6.p.1"> <span class="comment" id="rfc.comment.6">[<a href="#rfc.comment.6" class="smpl">rfc.comment.6</a>: TBD: Instructions on composing HTTP requests via hypertext formats.]</span> 966 </p> 967 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 968 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="http.version" href="#http.version">HTTP Version</a></h2> 969 <p id="rfc.section.3.1.p.1">HTTP uses a "<major>.<minor>" numbering scheme to indicate versions of the protocol. The protocol versioning policy is intended 970 to allow the sender to indicate the format of a message and its capacity for understanding further HTTP communication, rather 971 than the features obtained via that communication. No change is made to the version number for the addition of message components 972 which do not affect communication behavior or which only add to extensible field values. The <minor> number is incremented 973 when the changes made to the protocol add features which do not change the general message parsing algorithm, but which may 974 add to the message semantics and imply additional capabilities of the sender. The <major> number is incremented when the format 975 of a message within the protocol is changed. See <a href="#RFC2145" id="rfc.xref.RFC2145.1"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a> for a fuller explanation. 976 </p> 977 <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> 978 <div id="rfc.figure.u.19"></div><pre class="inline"><span id="rfc.iref.g.32"></span><span id="rfc.iref.g.33"></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> 979 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 980 </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. 981 Leading zeros <em class="bcp14">MUST</em> be ignored by recipients and <em class="bcp14">MUST NOT</em> be sent. 982 </p> 983 <p id="rfc.section.3.1.p.5">An application that sends a request or response message that includes HTTP-Version of "HTTP/1.1" <em class="bcp14">MUST</em> be at least conditionally compliant with this specification. Applications that are at least conditionally compliant with this 984 specification <em class="bcp14">SHOULD</em> use an HTTP-Version of "HTTP/1.1" in their messages, and <em class="bcp14">MUST</em> do so for any message that is not compatible with HTTP/1.0. For more details on when to send specific HTTP-Version values, 985 see <a href="#RFC2145" id="rfc.xref.RFC2145.2"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. 986 </p> 987 <p id="rfc.section.3.1.p.6">The HTTP version of an application is the highest HTTP version for which the application is at least conditionally compliant.</p> 988 <p id="rfc.section.3.1.p.7">Proxy and gateway applications need to be careful when forwarding messages in protocol versions different from that of the 989 application. Since the protocol version indicates the protocol capability of the sender, a proxy/gateway <em class="bcp14">MUST NOT</em> send a message with a version indicator which is greater than its actual version. If a higher version request is received, 990 the proxy/gateway <em class="bcp14">MUST</em> either downgrade the request version, or respond with an error, or switch to tunnel behavior. 991 </p> 992 <p id="rfc.section.3.1.p.8">Due to interoperability problems with HTTP/1.0 proxies discovered since the publication of <a href="#RFC2068" id="rfc.xref.RFC2068.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, caching proxies <em class="bcp14">MUST</em>, gateways <em class="bcp14">MAY</em>, and tunnels <em class="bcp14">MUST NOT</em> upgrade the request to the highest version they support. The proxy/gateway's response to that request <em class="bcp14">MUST</em> be in the same major version as the request. 979 </pre><p id="rfc.section.2.3.3.p.5"> <span class="comment" id="rfc.comment.1">[<a href="#rfc.comment.1" class="smpl">rfc.comment.1</a>: [[This paragraph does not belong here. --Roy]]]</span> If path-abempty is the empty string (i.e., there is no slash "/" path separator following the authority), then the "http" 980 URI <em class="bcp14">MUST</em> be given as "/" when used as a request-target (<a href="#request-target" title="request-target">Section 4.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name. 981 </p> 982 <h3 id="rfc.section.2.3.4"><a href="#rfc.section.2.3.4">2.3.4</a> <a id="scheme.aliases" href="#scheme.aliases">Scheme aliases considered harmful</a></h3> 983 <p id="rfc.section.2.3.4.p.1"> <span class="comment" id="rfc.comment.2">[<a href="#rfc.comment.2" class="smpl">rfc.comment.2</a>: TBS: describe why aliases like webcal are harmful.]</span> 984 </p> 985 <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4</a> <a id="http.proxy" href="#http.proxy">Use of HTTP for proxy communication</a></h2> 986 <p id="rfc.section.2.4.p.1"> <span class="comment" id="rfc.comment.3">[<a href="#rfc.comment.3" class="smpl">rfc.comment.3</a>: TBD: Configured to use HTTP to proxy HTTP or other protocols.]</span> 987 </p> 988 <h2 id="rfc.section.2.5"><a href="#rfc.section.2.5">2.5</a> <a id="http.intercept" href="#http.intercept">Interception of HTTP for access control</a></h2> 989 <p id="rfc.section.2.5.p.1"> <span class="comment" id="rfc.comment.4">[<a href="#rfc.comment.4" class="smpl">rfc.comment.4</a>: TBD: Interception of HTTP traffic for initiating access control.]</span> 990 </p> 991 <h2 id="rfc.section.2.6"><a href="#rfc.section.2.6">2.6</a> <a id="http.others" href="#http.others">Use of HTTP by other protocols</a></h2> 992 <p id="rfc.section.2.6.p.1"> <span class="comment" id="rfc.comment.5">[<a href="#rfc.comment.5" class="smpl">rfc.comment.5</a>: TBD: Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.]</span> 993 </p> 994 <h2 id="rfc.section.2.7"><a href="#rfc.section.2.7">2.7</a> <a id="http.media" href="#http.media">Use of HTTP by media type specification</a></h2> 995 <p id="rfc.section.2.7.p.1"> <span class="comment" id="rfc.comment.6">[<a href="#rfc.comment.6" class="smpl">rfc.comment.6</a>: TBD: Instructions on composing HTTP requests via hypertext formats.]</span> 996 </p> 997 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="http.message" href="#http.message">HTTP Message</a></h1> 998 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="message.types" href="#message.types">Message Types</a></h2> 999 <p id="rfc.section.3.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1000 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.34"></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 1001 </pre><p id="rfc.section.3.1.p.3">Request (<a href="#request" title="Request">Section 4</a>) and Response (<a href="#response" title="Response">Section 5</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 1002 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1003 fields, and possibly a message-body. 1004 </p> 1005 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1006 *( <a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1007 <a href="#core.rules" class="smpl">CRLF</a> 1008 [ <a href="#message.body" class="smpl">message-body</a> ] 1009 <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> 1010 </pre><p id="rfc.section.3.1.p.5">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore any empty line(s) received where a Request-Line is expected. In other words, if the server is reading the protocol 1011 stream at the beginning of a message and receives a CRLF first, it should ignore the CRLF. 1012 </p> 1013 <p id="rfc.section.3.1.p.6">Certain buggy HTTP/1.0 client implementations generate extra CRLF's after a POST request. To restate what is explicitly forbidden 1014 by the BNF, an HTTP/1.1 client <em class="bcp14">MUST NOT</em> preface or follow a request with an extra CRLF. 1015 </p> 1016 <p id="rfc.section.3.1.p.7">Whitespace (WSP) <em class="bcp14">MUST NOT</em> be sent between the start-line and the first header field. The presence of whitespace might be an attempt to trick a noncompliant 1017 implementation of HTTP into ignoring that field or processing the next line as a new request, either of which may result in 1018 security issues when implementations within the request chain interpret the same message differently. HTTP/1.1 servers <em class="bcp14">MUST</em> reject such a message with a 400 (Bad Request) response. 1019 </p> 1020 <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a> <a id="message.headers" href="#message.headers">Message Headers</a></h2> 1021 <p id="rfc.section.3.2.p.1">HTTP header fields follow the same general format as Internet messages in <a href="http://tools.ietf.org/html/rfc5322#section-2.1">Section 2.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>. Each header field consists of a name followed by a colon (":"), optional whitespace, and the field value. Field names are 1022 case-insensitive. 1023 </p> 1024 <div id="rfc.figure.u.22"></div><pre class="inline"><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> <a href="#message.headers" class="smpl">message-header</a> = <a href="#message.headers" class="smpl">field-name</a> ":" OWS [ <a href="#message.headers" class="smpl">field-value</a> ] OWS 1025 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1026 <a href="#message.headers" class="smpl">field-value</a> = *( <a href="#message.headers" class="smpl">field-content</a> / <a href="#rule.whitespace" class="smpl">OWS</a> ) 1027 <a href="#message.headers" class="smpl">field-content</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1028 </pre><p id="rfc.section.3.2.p.3">Historically, HTTP has allowed field-content with text in the ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> character encoding (allowing other character sets through use of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a> encoding). In practice, most HTTP header field-values use only a subset of the US-ASCII charset <a href="#USASCII" id="rfc.xref.USASCII.2"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. Newly defined header fields <em class="bcp14">SHOULD</em> constrain their field-values to US-ASCII characters. Recipients <em class="bcp14">SHOULD</em> treat other (obs-text) octets in field-content as opaque data. 1029 </p> 1030 <p id="rfc.section.3.2.p.4">No whitespace is allowed between the header field-name and colon. For security reasons, any request message received containing 1031 such whitespace <em class="bcp14">MUST</em> be rejected with a response code of 400 (Bad Request) and any such whitespace in a response message <em class="bcp14">MUST</em> be removed. 1032 </p> 1033 <p id="rfc.section.3.2.p.5">The field value <em class="bcp14">MAY</em> be preceded by optional whitespace; a single SP is preferred. The field-value does not include any leading or trailing white 1034 space: OWS occurring before the first non-whitespace character of the field-value or after the last non-whitespace character 1035 of the field-value is ignored and <em class="bcp14">MAY</em> be removed without changing the meaning of the header field. 1036 </p> 1037 <p id="rfc.section.3.2.p.6">Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one 1038 space or horizontal tab character (line folding). This specification deprecates such line folding except within the message/http 1039 media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 9.3.1</a>). HTTP/1.1 senders <em class="bcp14">MUST NOT</em> produce messages that include line folding (i.e., that contain any field-content that matches the obs-fold rule) unless the 1040 message is intended for packaging within the message/http media type. HTTP/1.1 recipients <em class="bcp14">SHOULD</em> accept line folding and replace any embedded obs-fold whitespace with a single SP prior to interpreting the field value or 1041 forwarding the message downstream. 1042 </p> 1043 <div id="rule.comment"> 1044 <p id="rfc.section.3.2.p.7"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 1045 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 1046 of the field value. 1047 </p> 1048 </div> 1049 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.41"></span><span id="rfc.iref.g.42"></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> ) ")" 1050 <a href="#rule.comment" class="smpl">ctext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> / %x21-27 / %x2A-5B / %x5D-7E / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1051 ; <a href="#rule.whitespace" class="smpl">OWS</a> / <<a href="#core.rules" class="smpl">VCHAR</a> except "(", ")", and "\"> / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1052 </pre><p id="rfc.section.3.2.p.9">The order in which header fields with differing field names are received is not significant. However, it is "good practice" 1053 to send general-header fields first, followed by request-header or response-header fields, and ending with the entity-header 1054 fields. 1055 </p> 1056 <p id="rfc.section.3.2.p.10">Multiple message-header fields with the same field-name <em class="bcp14">MAY</em> be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., 1057 #(values)]. It <em class="bcp14">MUST</em> be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics 1058 of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header 1059 fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and 1060 thus a proxy <em class="bcp14">MUST NOT</em> change the order of these field values when a message is forwarded. 993 1061 </p> 994 1062 <div class="note"> 995 <p> <b>Note:</b> Converting between versions of HTTP may involve modification of header fields required or forbidden by the versions involved. 1063 <p> <b>Note:</b> the "Set-Cookie" header as implemented in practice (as opposed to how it is specified in <a href="#RFC2109" id="rfc.xref.RFC2109.1"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>) can occur multiple times, but does not use the list syntax, and thus cannot be combined into a single line. (See Appendix 1064 A.2.3 of <a href="#Kri2001" id="rfc.xref.Kri2001.1"><cite title="HTTP Cookies: Standards, Privacy, and Politics">[Kri2001]</cite></a> for details.) Also note that the Set-Cookie2 header specified in <a href="#RFC2965" id="rfc.xref.RFC2965.1"><cite title="HTTP State Management Mechanism">[RFC2965]</cite></a> does not share this problem. 996 1065 </p> 997 1066 </div> 998 <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a> <a id="date.time.formats.full.date" href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></h2> 999 <p id="rfc.section.3.2.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p> 1000 <div id="rfc.figure.u.20"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 1067 <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a> <a id="message.body" href="#message.body">Message Body</a></h2> 1068 <p id="rfc.section.3.3.p.1">The message-body (if any) of an HTTP message is used to carry the entity-body associated with the request or response. The 1069 message-body differs from the entity-body only when a transfer-coding has been applied, as indicated by the Transfer-Encoding 1070 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.1" title="Transfer-Encoding">Section 8.7</a>). 1071 </p> 1072 <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.43"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1073 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1074 </pre><p id="rfc.section.3.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 1075 is a property of the message, not of the entity, and thus <em class="bcp14">MAY</em> be added or removed by any application along the request/response chain. (However, <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a> places restrictions on when certain transfer-codings may be used.) 1076 </p> 1077 <p id="rfc.section.3.3.p.4">The rules for when a message-body is allowed in a message differ for requests and responses.</p> 1078 <p id="rfc.section.3.3.p.5">The presence of a message-body in a request is signaled by the inclusion of a Content-Length or Transfer-Encoding header field 1079 in the request's message-headers. When a request message contains both a message-body of non-zero length and a method that 1080 does not define any semantics for that request message-body, then an origin server <em class="bcp14">SHOULD</em> either ignore the message-body or respond with an appropriate error message (e.g., 413). A proxy or gateway, when presented 1081 the same request, <em class="bcp14">SHOULD</em> either forward the request inbound with the message-body or ignore the message-body when determining a response. 1082 </p> 1083 <p id="rfc.section.3.3.p.6">For response messages, whether or not a message-body is included with a message is dependent on both the request method and 1084 the response status code (<a href="#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 5.1.1</a>). All responses to the HEAD request method <em class="bcp14">MUST NOT</em> include a message-body, even though the presence of entity-header fields might lead one to believe they do. All 1xx (informational), 1085 204 (No Content), and 304 (Not Modified) responses <em class="bcp14">MUST NOT</em> include a message-body. All other responses do include a message-body, although it <em class="bcp14">MAY</em> be of zero length. 1086 </p> 1087 <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a> <a id="message.length" href="#message.length">Message Length</a></h2> 1088 <p id="rfc.section.3.4.p.1">The transfer-length of a message is the length of the message-body as it appears in the message; that is, after any transfer-codings 1089 have been applied. When a message-body is included with a message, the transfer-length of that body is determined by one of 1090 the following (in order of precedence): 1091 </p> 1092 <p id="rfc.section.3.4.p.2"> </p> 1093 <ol> 1094 <li> 1095 <p>Any response message which "<em class="bcp14">MUST NOT</em>" include a message-body (such as the 1xx, 204, and 304 responses and any response to a HEAD request) is always terminated 1096 by the first empty line after the header fields, regardless of the entity-header fields present in the message. 1097 </p> 1098 </li> 1099 <li> 1100 <p>If a Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>) is present and the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>) is used, the transfer-length is defined by the use of this transfer-coding. If a Transfer-Encoding header field is present 1101 and the "chunked" transfer-coding is not present, the transfer-length is defined by the sender closing the connection. 1102 </p> 1103 </li> 1104 <li> 1105 <p>If a Content-Length header field (<a href="#header.content-length" id="rfc.xref.header.content-length.1" title="Content-Length">Section 8.2</a>) is present, its value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field <em class="bcp14">MUST NOT</em> be sent if these two lengths are different (i.e., if a Transfer-Encoding header field is present). If a message is received 1106 with both a Transfer-Encoding header field and a Content-Length header field, the latter <em class="bcp14">MUST</em> be ignored. 1107 </p> 1108 </li> 1109 <li> 1110 <p>If the message uses the media type "multipart/byteranges", and the transfer-length is not otherwise specified, then this self-delimiting 1111 media type defines the transfer-length. This media type <em class="bcp14">MUST NOT</em> be used unless the sender knows that the recipient can parse it; the presence in a request of a Range header with multiple 1112 byte-range specifiers from a 1.1 client implies that the client can parse multipart/byteranges responses. 1113 </p> 1114 <dl class="empty"> 1115 <dd>A range header might be forwarded by a 1.0 proxy that does not understand multipart/byteranges; in this case the server <em class="bcp14">MUST</em> delimit the message using methods defined in items 1, 3 or 5 of this section. 1116 </dd> 1117 </dl> 1118 </li> 1119 <li> 1120 <p>By the server closing the connection. (Closing the connection cannot be used to indicate the end of a request body, since 1121 that would leave no possibility for the server to send back a response.) 1122 </p> 1123 </li> 1124 </ol> 1125 <p id="rfc.section.3.4.p.3">For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body <em class="bcp14">MUST</em> include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant. If a request contains a message-body 1126 and a Content-Length is not given, the server <em class="bcp14">SHOULD</em> respond with 400 (Bad Request) if it cannot determine the length of the message, or with 411 (Length Required) if it wishes 1127 to insist on receiving a valid Content-Length. 1128 </p> 1129 <p id="rfc.section.3.4.p.4">All HTTP/1.1 applications that receive entities <em class="bcp14">MUST</em> accept the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>), thus allowing this mechanism to be used for messages when the message length cannot be determined in advance. 1130 </p> 1131 <p id="rfc.section.3.4.p.5">Messages <em class="bcp14">MUST NOT</em> include both a Content-Length header field and a transfer-coding. If the message does include a transfer-coding, the Content-Length <em class="bcp14">MUST</em> be ignored. 1132 </p> 1133 <p id="rfc.section.3.4.p.6">When a Content-Length is given in a message where a message-body is allowed, its field value <em class="bcp14">MUST</em> exactly match the number of OCTETs in the message-body. HTTP/1.1 user agents <em class="bcp14">MUST</em> notify the user when an invalid length is received and detected. 1134 </p> 1135 <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a> <a id="general.header.fields" href="#general.header.fields">General Header Fields</a></h2> 1136 <p id="rfc.section.3.5.p.1">There are a few header fields which have general applicability for both request and response messages, but which do not apply 1137 to the entity being transferred. These header fields apply only to the message being transmitted. 1138 </p> 1139 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.44"></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 3.2</a> 1140 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1141 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a> 1142 / <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 3.4</a> 1143 / <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.1" title="Trailer">Section 8.6</a> 1144 / <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.3" title="Transfer-Encoding">Section 8.7</a> 1145 / <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 8.8</a> 1146 / <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 8.9</a> 1147 / <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 3.6</a> 1148 </pre><p id="rfc.section.3.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new 1149 or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize 1150 them to be general-header fields. Unrecognized header fields are treated as entity-header fields. 1151 </p> 1152 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="request" href="#request">Request</a></h1> 1153 <p id="rfc.section.4.p.1">A request message from a client to a server includes, within the first line of that message, the method to be applied to the 1154 resource, the identifier of the resource, and the protocol version in use. 1155 </p> 1156 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.45"></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 4.1</a> 1157 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 3.5</a> 1158 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 3</a> 1159 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1160 <a href="#core.rules" class="smpl">CRLF</a> 1161 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 3.3</a> 1162 </pre><h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="request-line" href="#request-line">Request-Line</a></h2> 1163 <p id="rfc.section.4.1.p.1">The Request-Line begins with a method token, followed by the request-target and the protocol version, and ending with CRLF. 1164 The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1165 </p> 1166 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.46"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a> 1167 </pre><h3 id="rfc.section.4.1.1"><a href="#rfc.section.4.1.1">4.1.1</a> <a id="method" href="#method">Method</a></h3> 1168 <p id="rfc.section.4.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the request-target. The method is case-sensitive.</p> 1169 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1170 </pre><h3 id="rfc.section.4.1.2"><a href="#rfc.section.4.1.2">4.1.2</a> <a id="request-target" href="#request-target">request-target</a></h3> 1171 <p id="rfc.section.4.1.2.p.1">The request-target identifies the resource upon which to apply the request.</p> 1172 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.49"></span> <a href="#request-target" class="smpl">request-target</a> = "*" 1173 / <a href="#uri" class="smpl">absolute-URI</a> 1174 / ( <a href="#uri" class="smpl">path-absolute</a> [ "?" <a href="#uri" class="smpl">query</a> ] ) 1175 / <a href="#uri" class="smpl">authority</a> 1176 </pre><p id="rfc.section.4.1.2.p.3">The four options for request-target are dependent on the nature of the request. The asterisk "*" means that the request does 1177 not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily 1178 apply to a resource. One example would be 1179 </p> 1180 <div id="rfc.figure.u.30"></div><pre class="text"> OPTIONS * HTTP/1.1 1181 </pre><p id="rfc.section.4.1.2.p.5">The absolute-URI form is <em class="bcp14">REQUIRED</em> when the request is being made to a proxy. The proxy is requested to forward the request or service it from a valid cache, 1182 and return the response. Note that the proxy <em class="bcp14">MAY</em> forward the request on to another proxy or directly to the server specified by the absolute-URI. In order to avoid request 1183 loops, a proxy <em class="bcp14">MUST</em> be able to recognize all of its server names, including any aliases, local variations, and the numeric IP address. An example 1184 Request-Line would be: 1185 </p> 1186 <div id="rfc.figure.u.31"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1187 </pre><p id="rfc.section.4.1.2.p.7">To allow for transition to absolute-URIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absolute-URI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies. 1188 </p> 1189 <p id="rfc.section.4.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 7.9</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1190 </p> 1191 <p id="rfc.section.4.1.2.p.9">The most common form of request-target is that used to identify a resource on an origin server or gateway. In this case the 1192 absolute path of the URI <em class="bcp14">MUST</em> be transmitted (see <a href="#http.uri" title="http URI scheme">Section 2.3.1</a>, path-absolute) as the request-target, and the network location of the URI (authority) <em class="bcp14">MUST</em> be transmitted in a Host header field. For example, a client wishing to retrieve the resource above directly from the origin 1193 server would create a TCP connection to port 80 of the host "www.example.org" and send the lines: 1194 </p> 1195 <div id="rfc.figure.u.32"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.1 1196 Host: www.example.org 1197 </pre><p id="rfc.section.4.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 1198 URI, it <em class="bcp14">MUST</em> be given as "/" (the server root). 1199 </p> 1200 <p id="rfc.section.4.1.2.p.12">If a proxy receives a request without any path in the request-target and the method specified is capable of supporting the 1201 asterisk form of request-target, then the last proxy on the request chain <em class="bcp14">MUST</em> forward the request with "*" as the final request-target. 1202 </p> 1203 <div id="rfc.figure.u.33"></div> 1204 <p>For example, the request</p><pre class="text"> OPTIONS http://www.example.org:8001 HTTP/1.1 1205 </pre><div id="rfc.figure.u.34"></div> 1206 <p>would be forwarded by the proxy as</p><pre class="text"> OPTIONS * HTTP/1.1 1207 Host: www.example.org:8001 1208 </pre> <p>after connecting to port 8001 of host "www.example.org".</p> 1209 <p id="rfc.section.4.1.2.p.15">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.3.1</a>. If the request-target is percent-encoded (<a href="#RFC3986" id="rfc.xref.RFC3986.19"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code. 1210 </p> 1211 <p id="rfc.section.4.1.2.p.16">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted 1212 above to replace a null path-absolute with "/". 1213 </p> 1214 <div class="note"> 1215 <p> <b>Note:</b> The "no rewrite" rule prevents the proxy from changing the meaning of the request when the origin server is improperly using 1216 a non-reserved URI character for a reserved purpose. Implementors should be aware that some pre-HTTP/1.1 proxies have been 1217 known to rewrite the request-target. 1218 </p> 1219 </div> 1220 <p id="rfc.section.4.1.2.p.18">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (URI Too Long) status if the received request-target 1221 would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 8.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1222 </p> 1223 <p id="rfc.section.4.1.2.p.19">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs. 1224 </p> 1225 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="the.resource.identified.by.a.request" href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></h2> 1226 <p id="rfc.section.4.2.p.1">The exact resource identified by an Internet request is determined by examining both the request-target and the Host header 1227 field. 1228 </p> 1229 <p id="rfc.section.4.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix B.1.1</a> for other requirements on Host support in HTTP/1.1.) 1230 </p> 1231 <p id="rfc.section.4.2.p.3">An origin server that does differentiate resources based on the host requested (sometimes referred to as virtual hosts or 1232 vanity host names) <em class="bcp14">MUST</em> use the following rules for determining the requested resource on an HTTP/1.1 request: 1233 </p> 1234 <ol> 1235 <li>If request-target is an absolute-URI, the host is part of the request-target. Any Host header field value in the request <em class="bcp14">MUST</em> be ignored. 1236 </li> 1237 <li>If the request-target is not an absolute-URI, and the request includes a Host header field, the host is determined by the 1238 Host header field value. 1239 </li> 1240 <li>If the host as determined by rule 1 or 2 is not a valid host on the server, the response <em class="bcp14">MUST</em> be a 400 (Bad Request) error message. 1241 </li> 1242 </ol> 1243 <p id="rfc.section.4.2.p.4">Recipients of an HTTP/1.0 request that lacks a Host header field <em class="bcp14">MAY</em> attempt to use heuristics (e.g., examination of the URI path for something unique to a particular host) in order to determine 1244 what exact resource is being requested. 1245 </p> 1246 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="response" href="#response">Response</a></h1> 1247 <p id="rfc.section.5.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1248 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.50"></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 5.1</a> 1249 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 3.5</a> 1250 / <a href="#abnf.dependencies" class="smpl">response-header</a> ; <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 5</a> 1251 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1252 <a href="#core.rules" class="smpl">CRLF</a> 1253 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 3.3</a> 1254 </pre><h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="status-line" href="#status-line">Status-Line</a></h2> 1255 <p id="rfc.section.5.1.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version followed by a numeric status code 1256 and its associated textual phrase, with each element separated by SP characters. No CR or LF is allowed except in the final 1257 CRLF sequence. 1258 </p> 1259 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.51"></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> 1260 </pre><h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h3> 1261 <p id="rfc.section.5.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 1262 are fully defined in <a href="p2-semantics.html#status.codes" title="Status Code Definitions">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>. The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code, 1263 out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A 1264 client <em class="bcp14">SHOULD</em> ignore the content of the Reason Phrase. 1265 </p> 1266 <p id="rfc.section.5.1.1.p.2">The first digit of the Status-Code defines the class of response. The last two digits do not have any categorization role. 1267 There are 5 values for the first digit: 1268 </p> 1269 <ul> 1270 <li>1xx: Informational - Request received, continuing process</li> 1271 <li>2xx: Success - The action was successfully received, understood, and accepted</li> 1272 <li>3xx: Redirection - Further action must be taken in order to complete the request</li> 1273 <li>4xx: Client Error - The request contains bad syntax or cannot be fulfilled</li> 1274 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1275 </ul> 1276 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.52"></span><span id="rfc.iref.g.53"></span><span id="rfc.iref.g.54"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1277 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1278 </pre><h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 1279 <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="date.time.formats.full.date" href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></h2> 1280 <p id="rfc.section.6.1.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p> 1281 <div id="rfc.figure.u.38"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 1001 1282 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 1002 1283 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format 1003 </pre><p id="rfc.section. 3.2.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a>. The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers1284 </pre><p id="rfc.section.6.1.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a>. The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers 1004 1285 that parse the date value <em class="bcp14">MUST</em> accept all three formats (for compatibility with HTTP/1.0), though they <em class="bcp14">MUST</em> only generate the RFC 1123 format for representing HTTP-date values in header fields. See <a href="#tolerant.applications" title="Tolerant Applications">Appendix A</a> for further information. 1005 1286 </p> 1006 <p id="rfc.section. 3.2.p.4">All HTTP date/time stamps <em class="bcp14">MUST</em> be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated1287 <p id="rfc.section.6.1.p.4">All HTTP date/time stamps <em class="bcp14">MUST</em> be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated 1007 1288 Universal Time). This is indicated in the first two formats by the inclusion of "GMT" as the three-letter abbreviation for 1008 1289 time zone, and <em class="bcp14">MUST</em> be assumed when reading the asctime format. HTTP-date is case sensitive and <em class="bcp14">MUST NOT</em> include additional whitespace beyond that specifically included as SP in the grammar. 1009 1290 </p> 1010 <div id="rfc.figure.u. 21"></div><pre class="inline"><span id="rfc.iref.g.34"></span> <a href="#date.time.formats.full.date" class="smpl">HTTP-date</a> = <a href="#preferred.date.format" class="smpl">rfc1123-date</a> / <a href="#obsolete.date.formats" class="smpl">obs-date</a>1291 <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.55"></span> <a href="#date.time.formats.full.date" class="smpl">HTTP-date</a> = <a href="#preferred.date.format" class="smpl">rfc1123-date</a> / <a href="#obsolete.date.formats" class="smpl">obs-date</a> 1011 1292 </pre><div id="preferred.date.format"> 1012 <p id="rfc.section. 3.2.p.6"> Preferred format:</p>1293 <p id="rfc.section.6.1.p.6"> Preferred format:</p> 1013 1294 </div> 1014 <div id="rfc.figure.u. 22"></div><pre class="inline"><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><span id="rfc.iref.g.46"></span> <a href="#preferred.date.format" class="smpl">rfc1123-date</a> = <a href="#preferred.date.format" class="smpl">day-name</a> "," <a href="#core.rules" class="smpl">SP</a> date1 <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a>1295 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.56"></span><span id="rfc.iref.g.57"></span><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span> <a href="#preferred.date.format" class="smpl">rfc1123-date</a> = <a href="#preferred.date.format" class="smpl">day-name</a> "," <a href="#core.rules" class="smpl">SP</a> date1 <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a> 1015 1296 1016 1297 <a href="#preferred.date.format" class="smpl">day-name</a> = %x4D.6F.6E ; "Mon", case-sensitive … … 1048 1329 <a href="#preferred.date.format" class="smpl">minute</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> 1049 1330 <a href="#preferred.date.format" class="smpl">second</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> 1050 </pre><p id="rfc.section. 3.2.p.8">The semantics of <a href="#preferred.date.format" class="smpl">day-name</a>, <a href="#preferred.date.format" class="smpl">day</a>, <a href="#preferred.date.format" class="smpl">month</a>, <a href="#preferred.date.format" class="smpl">year</a>, and <a href="#preferred.date.format" class="smpl">time-of-day</a> are the same as those defined for the RFC 5322 constructs with the corresponding name (<a href="#RFC5322" id="rfc.xref.RFC5322.2"><cite title="Internet Message Format">[RFC5322]</cite></a>, <a href="http://tools.ietf.org/html/rfc5322#section-3.3">Section 3.3</a>).1331 </pre><p id="rfc.section.6.1.p.8">The semantics of <a href="#preferred.date.format" class="smpl">day-name</a>, <a href="#preferred.date.format" class="smpl">day</a>, <a href="#preferred.date.format" class="smpl">month</a>, <a href="#preferred.date.format" class="smpl">year</a>, and <a href="#preferred.date.format" class="smpl">time-of-day</a> are the same as those defined for the RFC 5322 constructs with the corresponding name (<a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>, <a href="http://tools.ietf.org/html/rfc5322#section-3.3">Section 3.3</a>). 1051 1332 </p> 1052 1333 <div id="obsolete.date.formats"> 1053 <p id="rfc.section. 3.2.p.9"> Obsolete formats:</p>1334 <p id="rfc.section.6.1.p.9"> Obsolete formats:</p> 1054 1335 </div> 1055 <div id="rfc.figure.u. 23"></div><pre class="inline"><span id="rfc.iref.g.47"></span> <a href="#obsolete.date.formats" class="smpl">obs-date</a> = <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> / <a href="#obsolete.date.formats" class="smpl">asctime-date</a>1056 </pre><div id="rfc.figure.u. 24"></div><pre class="inline"><span id="rfc.iref.g.48"></span> <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> = <a href="#obsolete.date.formats" class="smpl">day-name-l</a> "," <a href="#core.rules" class="smpl">SP</a> <a href="#obsolete.date.formats" class="smpl">date2</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a>1336 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.68"></span> <a href="#obsolete.date.formats" class="smpl">obs-date</a> = <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> / <a href="#obsolete.date.formats" class="smpl">asctime-date</a> 1337 </pre><div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.69"></span> <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> = <a href="#obsolete.date.formats" class="smpl">day-name-l</a> "," <a href="#core.rules" class="smpl">SP</a> <a href="#obsolete.date.formats" class="smpl">date2</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a> 1057 1338 <a href="#obsolete.date.formats" class="smpl">date2</a> = <a href="#preferred.date.format" class="smpl">day</a> "-" <a href="#preferred.date.format" class="smpl">month</a> "-" 2<a href="#core.rules" class="smpl">DIGIT</a> 1058 1339 ; day-month-year (e.g., 02-Jun-82) … … 1065 1346 / %x53.61.74.75.72.64.61.79 ; "Saturday", case-sensitive 1066 1347 / %x53.75.6E.64.61.79 ; "Sunday", case-sensitive 1067 </pre><div id="rfc.figure.u. 25"></div><pre class="inline"><span id="rfc.iref.g.49"></span> <a href="#obsolete.date.formats" class="smpl">asctime-date</a> = <a href="#preferred.date.format" class="smpl">day-name</a> <a href="#core.rules" class="smpl">SP</a> <a href="#obsolete.date.formats" class="smpl">date3</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">year</a>1348 </pre><div id="rfc.figure.u.43"></div><pre class="inline"><span id="rfc.iref.g.70"></span> <a href="#obsolete.date.formats" class="smpl">asctime-date</a> = <a href="#preferred.date.format" class="smpl">day-name</a> <a href="#core.rules" class="smpl">SP</a> <a href="#obsolete.date.formats" class="smpl">date3</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">year</a> 1068 1349 <a href="#obsolete.date.formats" class="smpl">date3</a> = <a href="#preferred.date.format" class="smpl">month</a> <a href="#core.rules" class="smpl">SP</a> ( 2<a href="#core.rules" class="smpl">DIGIT</a> / ( <a href="#core.rules" class="smpl">SP</a> 1<a href="#core.rules" class="smpl">DIGIT</a> )) 1069 1350 ; month day (e.g., Jun 2) … … 1078 1359 </p> 1079 1360 </div> 1080 <h2 id="rfc.section. 3.3"><a href="#rfc.section.3.3">3.3</a> <a id="transfer.codings" href="#transfer.codings">Transfer Codings</a></h2>1081 <p id="rfc.section. 3.3.p.1">Transfer-coding values are used to indicate an encoding transformation that has been, can be, or may need to be applied to1361 <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a> <a id="transfer.codings" href="#transfer.codings">Transfer Codings</a></h2> 1362 <p id="rfc.section.6.2.p.1">Transfer-coding values are used to indicate an encoding transformation that has been, can be, or may need to be applied to 1082 1363 an entity-body in order to ensure "safe transport" through the network. This differs from a content coding in that the transfer-coding 1083 1364 is a property of the message, not of the original entity. 1084 1365 </p> 1085 <div id="rfc.figure.u. 26"></div><pre class="inline"><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a>1366 <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.71"></span><span id="rfc.iref.g.72"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1086 1367 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">transfer-parameter</a> ) 1087 1368 </pre><div id="rule.parameter"> 1088 <p id="rfc.section. 3.3.p.3"> Parameters are in the form of attribute/value pairs.</p>1369 <p id="rfc.section.6.2.p.3"> Parameters are in the form of attribute/value pairs.</p> 1089 1370 </div> 1090 <div id="rfc.figure.u. 27"></div><pre class="inline"><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> <a href="#rule.parameter" class="smpl">transfer-parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> <a href="#rule.whitespace" class="smpl">BWS</a> "=" <a href="#rule.whitespace" class="smpl">BWS</a> <a href="#rule.parameter" class="smpl">value</a>1371 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.73"></span><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span><span id="rfc.iref.g.76"></span><span id="rfc.iref.g.77"></span> <a href="#rule.parameter" class="smpl">transfer-parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> <a href="#rule.whitespace" class="smpl">BWS</a> "=" <a href="#rule.whitespace" class="smpl">BWS</a> <a href="#rule.parameter" class="smpl">value</a> 1091 1372 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1092 1373 <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> 1093 </pre><p id="rfc.section. 3.3.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 8.5</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.1" title="Transfer-Encoding">Section 8.7</a>).1094 </p> 1095 <p id="rfc.section. 3.3.p.6">Whenever a transfer-coding is applied to a message-body, the set of transfer-codings <em class="bcp14">MUST</em> include "chunked", unless the message indicates it is terminated by closing the connection. When the "chunked" transfer-coding1374 </pre><p id="rfc.section.6.2.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 8.5</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 8.7</a>). 1375 </p> 1376 <p id="rfc.section.6.2.p.6">Whenever a transfer-coding is applied to a message-body, the set of transfer-codings <em class="bcp14">MUST</em> include "chunked", unless the message indicates it is terminated by closing the connection. When the "chunked" transfer-coding 1096 1377 is used, it <em class="bcp14">MUST</em> be the last transfer-coding applied to the message-body. The "chunked" transfer-coding <em class="bcp14">MUST NOT</em> be applied more than once to a message-body. These rules allow the recipient to determine the transfer-length of the message 1097 (<a href="#message.length" title="Message Length">Section 4.4</a>).1098 </p> 1099 <p id="rfc.section. 3.3.p.7">Transfer-codings are analogous to the Content-Transfer-Encoding values of MIME <a href="#RFC2045" id="rfc.xref.RFC2045.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>, which were designed to enable safe transport of binary data over a 7-bit transport service. However, safe transport has1378 (<a href="#message.length" title="Message Length">Section 3.4</a>). 1379 </p> 1380 <p id="rfc.section.6.2.p.7">Transfer-codings are analogous to the Content-Transfer-Encoding values of MIME <a href="#RFC2045" id="rfc.xref.RFC2045.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>, which were designed to enable safe transport of binary data over a 7-bit transport service. However, safe transport has 1100 1381 a different focus for an 8bit-clean transfer protocol. In HTTP, the only unsafe characteristic of message-bodies is the difficulty 1101 in determining the exact body length (<a href="#message.length" title="Message Length">Section 4.4</a>), or the desire to encrypt data over a shared transport.1102 </p> 1103 <p id="rfc.section. 3.3.p.8">The Internet Assigned Numbers Authority (IANA) acts as a registry for transfer-coding value tokens. Initially, the registry1104 contains the following tokens: "chunked" (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>), "gzip", "compress", and "deflate" (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>).1105 </p> 1106 <p id="rfc.section. 3.3.p.9">New transfer-coding value tokens <em class="bcp14">SHOULD</em> be registered in the same way as new content-coding value tokens (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>).1107 </p> 1108 <p id="rfc.section. 3.3.p.10">A server which receives an entity-body with a transfer-coding it does not understand <em class="bcp14">SHOULD</em> return 501 (Not Implemented), and close the connection. A server <em class="bcp14">MUST NOT</em> send transfer-codings to an HTTP/1.0 client.1109 </p> 1110 <h3 id="rfc.section. 3.3.1"><a href="#rfc.section.3.3.1">3.3.1</a> <a id="chunked.transfer.encoding" href="#chunked.transfer.encoding">Chunked Transfer Coding</a></h3>1111 <p id="rfc.section. 3.3.1.p.1">The chunked encoding modifies the body of a message in order to transfer it as a series of chunks, each with its own size1382 in determining the exact body length (<a href="#message.length" title="Message Length">Section 3.4</a>), or the desire to encrypt data over a shared transport. 1383 </p> 1384 <p id="rfc.section.6.2.p.8">The Internet Assigned Numbers Authority (IANA) acts as a registry for transfer-coding value tokens. Initially, the registry 1385 contains the following tokens: "chunked" (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 6.2.1</a>), "gzip", "compress", and "deflate" (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>). 1386 </p> 1387 <p id="rfc.section.6.2.p.9">New transfer-coding value tokens <em class="bcp14">SHOULD</em> be registered in the same way as new content-coding value tokens (<a href="p3-payload.html#content.codings" title="Content Codings">Section 2.2</a> of <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>). 1388 </p> 1389 <p id="rfc.section.6.2.p.10">A server which receives an entity-body with a transfer-coding it does not understand <em class="bcp14">SHOULD</em> return 501 (Not Implemented), and close the connection. A server <em class="bcp14">MUST NOT</em> send transfer-codings to an HTTP/1.0 client. 1390 </p> 1391 <h3 id="rfc.section.6.2.1"><a href="#rfc.section.6.2.1">6.2.1</a> <a id="chunked.transfer.encoding" href="#chunked.transfer.encoding">Chunked Transfer Coding</a></h3> 1392 <p id="rfc.section.6.2.1.p.1">The chunked encoding modifies the body of a message in order to transfer it as a series of chunks, each with its own size 1112 1393 indicator, followed by an <em class="bcp14">OPTIONAL</em> trailer containing entity-header fields. This allows dynamically produced content to be transferred along with the information 1113 1394 necessary for the recipient to verify that it has received the full message. 1114 1395 </p> 1115 <div id="rfc.figure.u. 28"></div><pre class="inline"><span id="rfc.iref.g.57"></span><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a>1396 <div id="rfc.figure.u.46"></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><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><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></span> <a href="#chunked.transfer.encoding" class="smpl">Chunked-Body</a> = *<a href="#chunked.transfer.encoding" class="smpl">chunk</a> 1116 1397 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> 1117 1398 <a href="#chunked.transfer.encoding" class="smpl">trailer-part</a> … … 1129 1410 <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 1130 1411 <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> ) 1131 </pre><p id="rfc.section. 3.3.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended1412 </pre><p id="rfc.section.6.2.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 1132 1413 by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line. 1133 1414 </p> 1134 <p id="rfc.section. 3.3.1.p.4">The trailer allows the sender to include additional HTTP header fields at the end of the message. The Trailer header field1135 can be used to indicate which header fields are included in a trailer (see <a href="#header.trailer" id="rfc.xref.header.trailer. 1" title="Trailer">Section 8.6</a>).1136 </p> 1137 <p id="rfc.section. 3.3.1.p.5">A server using chunked transfer-coding in a response <em class="bcp14">MUST NOT</em> use the trailer for any header fields unless at least one of the following is true:1415 <p id="rfc.section.6.2.1.p.4">The trailer allows the sender to include additional HTTP header fields at the end of the message. The Trailer header field 1416 can be used to indicate which header fields are included in a trailer (see <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 8.6</a>). 1417 </p> 1418 <p id="rfc.section.6.2.1.p.5">A server using chunked transfer-coding in a response <em class="bcp14">MUST NOT</em> use the trailer for any header fields unless at least one of the following is true: 1138 1419 </p> 1139 1420 <ol> … … 1146 1427 </li> 1147 1428 </ol> 1148 <p id="rfc.section. 3.3.1.p.6">This requirement prevents an interoperability failure when the message is being received by an HTTP/1.1 (or later) proxy and1429 <p id="rfc.section.6.2.1.p.6">This requirement prevents an interoperability failure when the message is being received by an HTTP/1.1 (or later) proxy and 1149 1430 forwarded to an HTTP/1.0 recipient. It avoids a situation where compliance with the protocol would have necessitated a possibly 1150 1431 infinite buffer on the proxy. 1151 1432 </p> 1152 <p id="rfc.section. 3.3.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p>1153 <div id="rfc.figure.u. 29"></div><pre class="text"> length := 01433 <p id="rfc.section.6.2.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p> 1434 <div id="rfc.figure.u.47"></div><pre class="text"> length := 0 1154 1435 read chunk-size, chunk-ext (if any) and CRLF 1155 1436 while (chunk-size > 0) { … … 1166 1447 Content-Length := length 1167 1448 Remove "chunked" from Transfer-Encoding 1168 </pre><p id="rfc.section. 3.3.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand.1169 </p> 1170 <h2 id="rfc.section. 3.4"><a href="#rfc.section.3.4">3.4</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2>1171 <p id="rfc.section. 3.4.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields1449 </pre><p id="rfc.section.6.2.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand. 1450 </p> 1451 <h2 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2> 1452 <p id="rfc.section.6.3.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields 1172 1453 using product tokens also allow sub-products which form a significant part of the application to be listed, separated by whitespace. 1173 1454 By convention, the products are listed in order of their significance for identifying the application. 1174 1455 </p> 1175 <div id="rfc.figure.u. 30"></div><pre class="inline"><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></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>]1456 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></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>] 1176 1457 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1177 </pre><p id="rfc.section. 3.4.p.3">Examples:</p>1178 <div id="rfc.figure.u. 31"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b31458 </pre><p id="rfc.section.6.3.p.3">Examples:</p> 1459 <div id="rfc.figure.u.49"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 1179 1460 Server: Apache/0.8.4 1180 </pre><p id="rfc.section. 3.4.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).1181 </p> 1182 <h2 id="rfc.section. 3.5"><a href="#rfc.section.3.5">3.5</a> <a id="quality.values" href="#quality.values">Quality Values</a></h2>1183 <p id="rfc.section. 3.5.p.1">Both transfer codings (TE request header, <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 8.5</a>) and content negotiation (<a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) use short "floating point" numbers to indicate the relative importance ("weight") of various negotiable parameters. A weight1461 </pre><p id="rfc.section.6.3.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). 1462 </p> 1463 <h2 id="rfc.section.6.4"><a href="#rfc.section.6.4">6.4</a> <a id="quality.values" href="#quality.values">Quality Values</a></h2> 1464 <p id="rfc.section.6.4.p.1">Both transfer codings (TE request header, <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 8.5</a>) and content negotiation (<a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) use short "floating point" numbers to indicate the relative importance ("weight") of various negotiable parameters. A weight 1184 1465 is normalized to a real number in the range 0 through 1, where 0 is the minimum and 1 the maximum value. If a parameter has 1185 1466 a quality value of 0, then content with this parameter is `not acceptable' for the client. HTTP/1.1 applications <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values <em class="bcp14">SHOULD</em> also be limited in this fashion. 1186 1467 </p> 1187 <div id="rfc.figure.u. 32"></div><pre class="inline"><span id="rfc.iref.g.68"></span> <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#core.rules" class="smpl">DIGIT</a> ] )1468 <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.89"></span> <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#core.rules" class="smpl">DIGIT</a> ] ) 1188 1469 / ( "1" [ "." 0*3("0") ] ) 1189 1470 </pre><div class="note"> … … 1191 1472 </p> 1192 1473 </div> 1193 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="http.message" href="#http.message">HTTP Message</a></h1> 1194 <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> 1195 <p id="rfc.section.4.1.p.1">HTTP messages consist of requests from client to server and responses from server to client.</p> 1196 <div id="rfc.figure.u.33"></div><pre class="inline"><span id="rfc.iref.g.69"></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 1197 </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.3"><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 1198 fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header 1199 fields, and possibly a message-body. 1200 </p> 1201 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.70"></span><span id="rfc.iref.g.71"></span> <a href="#message.types" class="smpl">generic-message</a> = <a href="#message.types" class="smpl">start-line</a> 1202 *( <a href="#message.headers" class="smpl">message-header</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1203 <a href="#core.rules" class="smpl">CRLF</a> 1204 [ <a href="#message.body" class="smpl">message-body</a> ] 1205 <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> 1206 </pre><p id="rfc.section.4.1.p.5">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore any empty line(s) received where a Request-Line is expected. In other words, if the server is reading the protocol 1207 stream at the beginning of a message and receives a CRLF first, it should ignore the CRLF. 1208 </p> 1209 <p id="rfc.section.4.1.p.6">Certain buggy HTTP/1.0 client implementations generate extra CRLF's after a POST request. To restate what is explicitly forbidden 1210 by the BNF, an HTTP/1.1 client <em class="bcp14">MUST NOT</em> preface or follow a request with an extra CRLF. 1211 </p> 1212 <p id="rfc.section.4.1.p.7">Whitespace (WSP) <em class="bcp14">MUST NOT</em> be sent between the start-line and the first header field. The presence of whitespace might be an attempt to trick a noncompliant 1213 implementation of HTTP into ignoring that field or processing the next line as a new request, either of which may result in 1214 security issues when implementations within the request chain interpret the same message differently. HTTP/1.1 servers <em class="bcp14">MUST</em> reject such a message with a 400 (Bad Request) response. 1215 </p> 1216 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="message.headers" href="#message.headers">Message Headers</a></h2> 1217 <p id="rfc.section.4.2.p.1">HTTP header fields follow the same general format as Internet messages in <a href="http://tools.ietf.org/html/rfc5322#section-2.1">Section 2.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>. Each header field consists of a name followed by a colon (":"), optional whitespace, and the field value. Field names are 1218 case-insensitive. 1219 </p> 1220 <div id="rfc.figure.u.35"></div><pre class="inline"><span id="rfc.iref.g.72"></span><span id="rfc.iref.g.73"></span><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span> <a href="#message.headers" class="smpl">message-header</a> = <a href="#message.headers" class="smpl">field-name</a> ":" OWS [ <a href="#message.headers" class="smpl">field-value</a> ] OWS 1221 <a href="#message.headers" class="smpl">field-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1222 <a href="#message.headers" class="smpl">field-value</a> = *( <a href="#message.headers" class="smpl">field-content</a> / <a href="#rule.whitespace" class="smpl">OWS</a> ) 1223 <a href="#message.headers" class="smpl">field-content</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1224 </pre><p id="rfc.section.4.2.p.3">Historically, HTTP has allowed field-content with text in the ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> character encoding (allowing other character sets through use of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a> encoding). In practice, most HTTP header field-values use only a subset of the US-ASCII charset <a href="#USASCII" id="rfc.xref.USASCII.2"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. Newly defined header fields <em class="bcp14">SHOULD</em> constrain their field-values to US-ASCII characters. Recipients <em class="bcp14">SHOULD</em> treat other (obs-text) octets in field-content as opaque data. 1225 </p> 1226 <p id="rfc.section.4.2.p.4">No whitespace is allowed between the header field-name and colon. For security reasons, any request message received containing 1227 such whitespace <em class="bcp14">MUST</em> be rejected with a response code of 400 (Bad Request) and any such whitespace in a response message <em class="bcp14">MUST</em> be removed. 1228 </p> 1229 <p id="rfc.section.4.2.p.5">The field value <em class="bcp14">MAY</em> be preceded by optional whitespace; a single SP is preferred. The field-value does not include any leading or trailing white 1230 space: OWS occurring before the first non-whitespace character of the field-value or after the last non-whitespace character 1231 of the field-value is ignored and <em class="bcp14">MAY</em> be removed without changing the meaning of the header field. 1232 </p> 1233 <p id="rfc.section.4.2.p.6">Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one 1234 space or horizontal tab character (line folding). This specification deprecates such line folding except within the message/http 1235 media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 9.3.1</a>). HTTP/1.1 senders <em class="bcp14">MUST NOT</em> produce messages that include line folding (i.e., that contain any field-content that matches the obs-fold rule) unless the 1236 message is intended for packaging within the message/http media type. HTTP/1.1 recipients <em class="bcp14">SHOULD</em> accept line folding and replace any embedded obs-fold whitespace with a single SP prior to interpreting the field value or 1237 forwarding the message downstream. 1238 </p> 1239 <div id="rule.comment"> 1240 <p id="rfc.section.4.2.p.7"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 1241 in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part 1242 of the field value. 1243 </p> 1244 </div> 1245 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.76"></span><span id="rfc.iref.g.77"></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> ) ")" 1246 <a href="#rule.comment" class="smpl">ctext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> / %x21-27 / %x2A-5B / %x5D-7E / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1247 ; <a href="#rule.whitespace" class="smpl">OWS</a> / <<a href="#core.rules" class="smpl">VCHAR</a> except "(", ")", and "\"> / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1248 </pre><p id="rfc.section.4.2.p.9">The order in which header fields with differing field names are received is not significant. However, it is "good practice" 1249 to send general-header fields first, followed by request-header or response-header fields, and ending with the entity-header 1250 fields. 1251 </p> 1252 <p id="rfc.section.4.2.p.10">Multiple message-header fields with the same field-name <em class="bcp14">MAY</em> be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., 1253 #(values)]. It <em class="bcp14">MUST</em> be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics 1254 of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header 1255 fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and 1256 thus a proxy <em class="bcp14">MUST NOT</em> change the order of these field values when a message is forwarded. 1257 </p> 1258 <div class="note"> 1259 <p> <b>Note:</b> the "Set-Cookie" header as implemented in practice (as opposed to how it is specified in <a href="#RFC2109" id="rfc.xref.RFC2109.1"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>) can occur multiple times, but does not use the list syntax, and thus cannot be combined into a single line. (See Appendix 1260 A.2.3 of <a href="#Kri2001" id="rfc.xref.Kri2001.1"><cite title="HTTP Cookies: Standards, Privacy, and Politics">[Kri2001]</cite></a> for details.) Also note that the Set-Cookie2 header specified in <a href="#RFC2965" id="rfc.xref.RFC2965.1"><cite title="HTTP State Management Mechanism">[RFC2965]</cite></a> does not share this problem. 1261 </p> 1262 </div> 1263 <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a> <a id="message.body" href="#message.body">Message Body</a></h2> 1264 <p id="rfc.section.4.3.p.1">The message-body (if any) of an HTTP message is used to carry the entity-body associated with the request or response. The 1265 message-body differs from the entity-body only when a transfer-coding has been applied, as indicated by the Transfer-Encoding 1266 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 8.7</a>). 1267 </p> 1268 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.78"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1269 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1270 </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 1271 is a property of the message, not of the entity, and thus <em class="bcp14">MAY</em> be added or removed by any application along the request/response chain. (However, <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a> places restrictions on when certain transfer-codings may be used.) 1272 </p> 1273 <p id="rfc.section.4.3.p.4">The rules for when a message-body is allowed in a message differ for requests and responses.</p> 1274 <p id="rfc.section.4.3.p.5">The presence of a message-body in a request is signaled by the inclusion of a Content-Length or Transfer-Encoding header field 1275 in the request's message-headers. When a request message contains both a message-body of non-zero length and a method that 1276 does not define any semantics for that request message-body, then an origin server <em class="bcp14">SHOULD</em> either ignore the message-body or respond with an appropriate error message (e.g., 413). A proxy or gateway, when presented 1277 the same request, <em class="bcp14">SHOULD</em> either forward the request inbound with the message-body or ignore the message-body when determining a response. 1278 </p> 1279 <p id="rfc.section.4.3.p.6">For response messages, whether or not a message-body is included with a message is dependent on both the request method and 1280 the response status code (<a href="#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 6.1.1</a>). All responses to the HEAD request method <em class="bcp14">MUST NOT</em> include a message-body, even though the presence of entity-header fields might lead one to believe they do. All 1xx (informational), 1281 204 (No Content), and 304 (Not Modified) responses <em class="bcp14">MUST NOT</em> include a message-body. All other responses do include a message-body, although it <em class="bcp14">MAY</em> be of zero length. 1282 </p> 1283 <h2 id="rfc.section.4.4"><a href="#rfc.section.4.4">4.4</a> <a id="message.length" href="#message.length">Message Length</a></h2> 1284 <p id="rfc.section.4.4.p.1">The transfer-length of a message is the length of the message-body as it appears in the message; that is, after any transfer-codings 1285 have been applied. When a message-body is included with a message, the transfer-length of that body is determined by one of 1286 the following (in order of precedence): 1287 </p> 1288 <p id="rfc.section.4.4.p.2"> </p> 1289 <ol> 1290 <li> 1291 <p>Any response message which "<em class="bcp14">MUST NOT</em>" include a message-body (such as the 1xx, 204, and 304 responses and any response to a HEAD request) is always terminated 1292 by the first empty line after the header fields, regardless of the entity-header fields present in the message. 1293 </p> 1294 </li> 1295 <li> 1296 <p>If a Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.3" title="Transfer-Encoding">Section 8.7</a>) is present and the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>) is used, the transfer-length is defined by the use of this transfer-coding. If a Transfer-Encoding header field is present 1297 and the "chunked" transfer-coding is not present, the transfer-length is defined by the sender closing the connection. 1298 </p> 1299 </li> 1300 <li> 1301 <p>If a Content-Length header field (<a href="#header.content-length" id="rfc.xref.header.content-length.1" title="Content-Length">Section 8.2</a>) is present, its value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field <em class="bcp14">MUST NOT</em> be sent if these two lengths are different (i.e., if a Transfer-Encoding header field is present). If a message is received 1302 with both a Transfer-Encoding header field and a Content-Length header field, the latter <em class="bcp14">MUST</em> be ignored. 1303 </p> 1304 </li> 1305 <li> 1306 <p>If the message uses the media type "multipart/byteranges", and the transfer-length is not otherwise specified, then this self-delimiting 1307 media type defines the transfer-length. This media type <em class="bcp14">MUST NOT</em> be used unless the sender knows that the recipient can parse it; the presence in a request of a Range header with multiple 1308 byte-range specifiers from a 1.1 client implies that the client can parse multipart/byteranges responses. 1309 </p> 1310 <dl class="empty"> 1311 <dd>A range header might be forwarded by a 1.0 proxy that does not understand multipart/byteranges; in this case the server <em class="bcp14">MUST</em> delimit the message using methods defined in items 1, 3 or 5 of this section. 1312 </dd> 1313 </dl> 1314 </li> 1315 <li> 1316 <p>By the server closing the connection. (Closing the connection cannot be used to indicate the end of a request body, since 1317 that would leave no possibility for the server to send back a response.) 1318 </p> 1319 </li> 1320 </ol> 1321 <p id="rfc.section.4.4.p.3">For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body <em class="bcp14">MUST</em> include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant. If a request contains a message-body 1322 and a Content-Length is not given, the server <em class="bcp14">SHOULD</em> respond with 400 (Bad Request) if it cannot determine the length of the message, or with 411 (Length Required) if it wishes 1323 to insist on receiving a valid Content-Length. 1324 </p> 1325 <p id="rfc.section.4.4.p.4">All HTTP/1.1 applications that receive entities <em class="bcp14">MUST</em> accept the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>), thus allowing this mechanism to be used for messages when the message length cannot be determined in advance. 1326 </p> 1327 <p id="rfc.section.4.4.p.5">Messages <em class="bcp14">MUST NOT</em> include both a Content-Length header field and a transfer-coding. If the message does include a transfer-coding, the Content-Length <em class="bcp14">MUST</em> be ignored. 1328 </p> 1329 <p id="rfc.section.4.4.p.6">When a Content-Length is given in a message where a message-body is allowed, its field value <em class="bcp14">MUST</em> exactly match the number of OCTETs in the message-body. HTTP/1.1 user agents <em class="bcp14">MUST</em> notify the user when an invalid length is received and detected. 1330 </p> 1331 <h2 id="rfc.section.4.5"><a href="#rfc.section.4.5">4.5</a> <a id="general.header.fields" href="#general.header.fields">General Header Fields</a></h2> 1332 <p id="rfc.section.4.5.p.1">There are a few header fields which have general applicability for both request and response messages, but which do not apply 1333 to the entity being transferred. These header fields apply only to the message being transmitted. 1334 </p> 1335 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.79"></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 3.2</a> 1336 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 8.1</a> 1337 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.3</a> 1338 / <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 3.4</a> 1339 / <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 8.6</a> 1340 / <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 8.7</a> 1341 / <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 8.8</a> 1342 / <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 8.9</a> 1343 / <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 3.6</a> 1344 </pre><p id="rfc.section.4.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new 1345 or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize 1346 them to be general-header fields. Unrecognized header fields are treated as entity-header fields. 1347 </p> 1348 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="request" href="#request">Request</a></h1> 1349 <p id="rfc.section.5.p.1">A request message from a client to a server includes, within the first line of that message, the method to be applied to the 1350 resource, the identifier of the resource, and the protocol version in use. 1351 </p> 1352 <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.80"></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> 1353 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1354 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 3</a> 1355 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.8"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1356 <a href="#core.rules" class="smpl">CRLF</a> 1357 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1358 </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> 1359 <p id="rfc.section.5.1.p.1">The Request-Line begins with a method token, followed by the request-target and the protocol version, and ending with CRLF. 1360 The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1361 </p> 1362 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.81"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a> 1363 </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> 1364 <p id="rfc.section.5.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the request-target. The method is case-sensitive.</p> 1365 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1366 </pre><h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a> <a id="request-target" href="#request-target">request-target</a></h3> 1367 <p id="rfc.section.5.1.2.p.1">The request-target identifies the resource upon which to apply the request.</p> 1368 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.84"></span> <a href="#request-target" class="smpl">request-target</a> = "*" 1369 / <a href="#uri" class="smpl">absolute-URI</a> 1370 / ( <a href="#uri" class="smpl">path-absolute</a> [ "?" <a href="#uri" class="smpl">query</a> ] ) 1371 / <a href="#uri" class="smpl">authority</a> 1372 </pre><p id="rfc.section.5.1.2.p.3">The four options for request-target are dependent on the nature of the request. The asterisk "*" means that the request does 1373 not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily 1374 apply to a resource. One example would be 1375 </p> 1376 <div id="rfc.figure.u.43"></div><pre class="text"> OPTIONS * HTTP/1.1 1377 </pre><p id="rfc.section.5.1.2.p.5">The absolute-URI form is <em class="bcp14">REQUIRED</em> when the request is being made to a proxy. The proxy is requested to forward the request or service it from a valid cache, 1378 and return the response. Note that the proxy <em class="bcp14">MAY</em> forward the request on to another proxy or directly to the server specified by the absolute-URI. In order to avoid request 1379 loops, a proxy <em class="bcp14">MUST</em> be able to recognize all of its server names, including any aliases, local variations, and the numeric IP address. An example 1380 Request-Line would be: 1381 </p> 1382 <div id="rfc.figure.u.44"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1383 </pre><p id="rfc.section.5.1.2.p.7">To allow for transition to absolute-URIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absolute-URI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies. 1384 </p> 1385 <p id="rfc.section.5.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 7.9</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1386 </p> 1387 <p id="rfc.section.5.1.2.p.9">The most common form of request-target is that used to identify a resource on an origin server or gateway. In this case the 1388 absolute path of the URI <em class="bcp14">MUST</em> be transmitted (see <a href="#http.uri" title="http URI scheme">Section 2.1.1</a>, path-absolute) as the request-target, and the network location of the URI (authority) <em class="bcp14">MUST</em> be transmitted in a Host header field. For example, a client wishing to retrieve the resource above directly from the origin 1389 server would create a TCP connection to port 80 of the host "www.example.org" and send the lines: 1390 </p> 1391 <div id="rfc.figure.u.45"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.1 1392 Host: www.example.org 1393 </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 1394 URI, it <em class="bcp14">MUST</em> be given as "/" (the server root). 1395 </p> 1396 <p id="rfc.section.5.1.2.p.12">If a proxy receives a request without any path in the request-target and the method specified is capable of supporting the 1397 asterisk form of request-target, then the last proxy on the request chain <em class="bcp14">MUST</em> forward the request with "*" as the final request-target. 1398 </p> 1399 <div id="rfc.figure.u.46"></div> 1400 <p>For example, the request</p><pre class="text"> OPTIONS http://www.example.org:8001 HTTP/1.1 1401 </pre><div id="rfc.figure.u.47"></div> 1402 <p>would be forwarded by the proxy as</p><pre class="text"> OPTIONS * HTTP/1.1 1403 Host: www.example.org:8001 1404 </pre> <p>after connecting to port 8001 of host "www.example.org".</p> 1405 <p id="rfc.section.5.1.2.p.15">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.1.1</a>. If the request-target is percent-encoded (<a href="#RFC3986" id="rfc.xref.RFC3986.19"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code. 1406 </p> 1407 <p id="rfc.section.5.1.2.p.16">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted 1408 above to replace a null path-absolute with "/". 1409 </p> 1410 <div class="note"> 1411 <p> <b>Note:</b> The "no rewrite" rule prevents the proxy from changing the meaning of the request when the origin server is improperly using 1412 a non-reserved URI character for a reserved purpose. Implementors should be aware that some pre-HTTP/1.1 proxies have been 1413 known to rewrite the request-target. 1414 </p> 1415 </div> 1416 <p id="rfc.section.5.1.2.p.18">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (URI Too Long) status if the received request-target 1417 would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 8.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1418 </p> 1419 <p id="rfc.section.5.1.2.p.19">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs. 1420 </p> 1421 <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a> <a id="the.resource.identified.by.a.request" href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></h2> 1422 <p id="rfc.section.5.2.p.1">The exact resource identified by an Internet request is determined by examining both the request-target and the Host header 1423 field. 1424 </p> 1425 <p id="rfc.section.5.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix B.1.1</a> for other requirements on Host support in HTTP/1.1.) 1426 </p> 1427 <p id="rfc.section.5.2.p.3">An origin server that does differentiate resources based on the host requested (sometimes referred to as virtual hosts or 1428 vanity host names) <em class="bcp14">MUST</em> use the following rules for determining the requested resource on an HTTP/1.1 request: 1429 </p> 1430 <ol> 1431 <li>If request-target is an absolute-URI, the host is part of the request-target. Any Host header field value in the request <em class="bcp14">MUST</em> be ignored. 1432 </li> 1433 <li>If the request-target is not an absolute-URI, and the request includes a Host header field, the host is determined by the 1434 Host header field value. 1435 </li> 1436 <li>If the host as determined by rule 1 or 2 is not a valid host on the server, the response <em class="bcp14">MUST</em> be a 400 (Bad Request) error message. 1437 </li> 1438 </ol> 1439 <p id="rfc.section.5.2.p.4">Recipients of an HTTP/1.0 request that lacks a Host header field <em class="bcp14">MAY</em> attempt to use heuristics (e.g., examination of the URI path for something unique to a particular host) in order to determine 1440 what exact resource is being requested. 1441 </p> 1442 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="response" href="#response">Response</a></h1> 1443 <p id="rfc.section.6.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1444 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.85"></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> 1445 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 4.5</a> 1446 / <a href="#abnf.dependencies" class="smpl">response-header</a> ; <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 5</a> 1447 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1448 <a href="#core.rules" class="smpl">CRLF</a> 1449 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 4.3</a> 1450 </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> 1451 <p id="rfc.section.6.1.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version followed by a numeric status code 1452 and its associated textual phrase, with each element separated by SP characters. No CR or LF is allowed except in the final 1453 CRLF sequence. 1454 </p> 1455 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.86"></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> 1456 </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> 1457 <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 1458 are fully defined in <a href="p2-semantics.html#status.codes" title="Status Code Definitions">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>. The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code, 1459 out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A 1460 client <em class="bcp14">SHOULD</em> ignore the content of the Reason Phrase. 1461 </p> 1462 <p id="rfc.section.6.1.1.p.2">The first digit of the Status-Code defines the class of response. The last two digits do not have any categorization role. 1463 There are 5 values for the first digit: 1464 </p> 1465 <ul> 1466 <li>1xx: Informational - Request received, continuing process</li> 1467 <li>2xx: Success - The action was successfully received, understood, and accepted</li> 1468 <li>3xx: Redirection - Further action must be taken in order to complete the request</li> 1469 <li>4xx: Client Error - The request contains bad syntax or cannot be fulfilled</li> 1470 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1471 </ul> 1472 <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></span><span id="rfc.iref.g.89"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1473 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1474 </pre><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> 1474 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> 1475 1475 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h2> 1476 1476 <h3 id="rfc.section.7.1.1"><a href="#rfc.section.7.1.1">7.1.1</a> <a id="persistent.purpose" href="#persistent.purpose">Purpose</a></h3> … … 1519 1519 <p id="rfc.section.7.1.2.1.p.4">Clients and servers <em class="bcp14">SHOULD NOT</em> assume that a persistent connection is maintained for HTTP versions less than 1.1 unless it is explicitly signaled. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a> for more information on backward compatibility with HTTP/1.0 clients. 1520 1520 </p> 1521 <p id="rfc.section.7.1.2.1.p.5">In order to remain persistent, all messages on the connection <em class="bcp14">MUST</em> have a self-defined message length (i.e., one not defined by closure of the connection), as described in <a href="#message.length" title="Message Length">Section 4.4</a>.1521 <p id="rfc.section.7.1.2.1.p.5">In order to remain persistent, all messages on the connection <em class="bcp14">MUST</em> have a self-defined message length (i.e., one not defined by closure of the connection), as described in <a href="#message.length" title="Message Length">Section 3.4</a>. 1522 1522 </p> 1523 1523 <h4 id="rfc.section.7.1.2.2"><a href="#rfc.section.7.1.2.2">7.1.2.2</a> <a id="pipelining" href="#pipelining">Pipelining</a></h4> … … 1566 1566 <h3 id="rfc.section.7.2.2"><a href="#rfc.section.7.2.2">7.2.2</a> <a id="persistent.monitor" href="#persistent.monitor">Monitoring Connections for Error Status Messages</a></h3> 1567 1567 <p id="rfc.section.7.2.2.p.1">An HTTP/1.1 (or later) client sending a message-body <em class="bcp14">SHOULD</em> monitor the network connection for an error status while it is transmitting the request. If the client sees an error status, 1568 it <em class="bcp14">SHOULD</em> immediately cease transmitting the body. If the body is being sent using a "chunked" encoding (<a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>), a zero length chunk and empty trailer <em class="bcp14">MAY</em> be used to prematurely mark the end of the message. If the body was preceded by a Content-Length header, the client <em class="bcp14">MUST</em> close the connection.1568 it <em class="bcp14">SHOULD</em> immediately cease transmitting the body. If the body is being sent using a "chunked" encoding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>), a zero length chunk and empty trailer <em class="bcp14">MAY</em> be used to prematurely mark the end of the message. If the body was preceded by a Content-Length header, the client <em class="bcp14">MUST</em> close the connection. 1569 1569 </p> 1570 1570 <h3 id="rfc.section.7.2.3"><a href="#rfc.section.7.2.3">7.2.3</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h3> … … 1695 1695 </pre><p id="rfc.section.8.2.p.3">An example is</p> 1696 1696 <div id="rfc.figure.u.54"></div><pre class="text"> Content-Length: 3495 1697 </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>.1698 </p> 1699 <p id="rfc.section.8.2.p.6">Any Content-Length greater than or equal to zero is a valid value. <a href="#message.length" title="Message Length">Section 4.4</a> describes how to determine the length of a message-body if a Content-Length is not given.1697 </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 3.4</a>. 1698 </p> 1699 <p id="rfc.section.8.2.p.6">Any Content-Length greater than or equal to zero is a valid value. <a href="#message.length" title="Message Length">Section 3.4</a> describes how to determine the length of a message-body if a Content-Length is not given. 1700 1700 </p> 1701 1701 <p id="rfc.section.8.2.p.7">Note that the meaning of this field is significantly different from the corresponding definition in MIME, where it is an optional 1702 1702 field used within the "message/external-body" content-type. In HTTP, it <em class="bcp14">SHOULD</em> be sent whenever the message's length can be determined prior to being transferred, unless this is prohibited by the rules 1703 in <a href="#message.length" title="Message Length">Section 4.4</a>.1703 in <a href="#message.length" title="Message Length">Section 3.4</a>. 1704 1704 </p> 1705 1705 <div id="rfc.iref.d.1"></div> … … 1707 1707 <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a> <a id="header.date" href="#header.date">Date</a></h2> 1708 1708 <p id="rfc.section.8.3.p.1">The general-header field "Date" represents the date and time at which the message was originated, having the same semantics 1709 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.5"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as described in <a href="#date.time.formats.full.date" title="Date/Time Formats: Full Date">Section 3.2</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format.1709 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.5"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as described in <a href="#date.time.formats.full.date" title="Date/Time Formats: Full Date">Section 6.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1710 1710 </p> 1711 1711 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.date" class="smpl">Date-v</a> … … 1744 1744 <h2 id="rfc.section.8.4"><a href="#rfc.section.8.4">8.4</a> <a id="header.host" href="#header.host">Host</a></h2> 1745 1745 <p id="rfc.section.8.4.p.1">The request-header field "Host" specifies the Internet host and port number of the resource being requested, as obtained from 1746 the original URI given by the user or referring resource (generally an http URI, as described in <a href="#http.uri" title="http URI scheme">Section 2. 1.1</a>). The Host field value <em class="bcp14">MUST</em> represent the naming authority of the origin server or gateway given by the original URL. This allows the origin server or1746 the original URI given by the user or referring resource (generally an http URI, as described in <a href="#http.uri" title="http URI scheme">Section 2.3.1</a>). The Host field value <em class="bcp14">MUST</em> represent the naming authority of the origin server or gateway given by the original URL. This allows the origin server or 1747 1747 gateway to differentiate between internally-ambiguous URLs, such as the root "/" URL of a server for multiple host names on 1748 1748 a single IP address. 1749 1749 </p> 1750 1750 <div id="rfc.figure.u.57"></div><pre class="inline"><span id="rfc.iref.g.97"></span><span id="rfc.iref.g.98"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.host" class="smpl">Host-v</a> 1751 <a href="#header.host" class="smpl">Host-v</a> = <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2. 1.1</a>1751 <a href="#header.host" class="smpl">Host-v</a> = <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2.3.1</a> 1752 1752 </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 1753 1753 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: … … 1759 1759 requested by the proxy. All Internet-based HTTP/1.1 servers <em class="bcp14">MUST</em> respond with a 400 (Bad Request) status code to any HTTP/1.1 request message which lacks a Host header field. 1760 1760 </p> 1761 <p id="rfc.section.8.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request"> 5.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">B.1.1</a> for other requirements relating to Host.1761 <p id="rfc.section.8.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request">4.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">B.1.1</a> for other requirements relating to Host. 1762 1762 </p> 1763 1763 <div id="rfc.iref.t.1"></div> … … 1766 1766 <p id="rfc.section.8.5.p.1">The request-header field "TE" indicates what extension transfer-codings it is willing to accept in the response and whether 1767 1767 or not it is willing to accept trailer fields in a chunked transfer-coding. Its value may consist of the keyword "trailers" 1768 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>).1768 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 6.2</a>). 1769 1769 </p> 1770 1770 <div id="rfc.figure.u.59"></div><pre class="inline"><span id="rfc.iref.g.99"></span><span id="rfc.iref.g.100"></span><span id="rfc.iref.g.101"></span><span id="rfc.iref.g.102"></span><span id="rfc.iref.g.103"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.te" class="smpl">TE-v</a> … … 1774 1774 <a href="#header.te" class="smpl">te-ext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.token.separators" class="smpl">token</a> [ "=" ( <a href="#rule.token.separators" class="smpl">token</a> / <a href="#rule.quoted-string" class="smpl">quoted-string</a> ) ] 1775 1775 </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, 1776 as defined in <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding.1776 as defined in <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 6.2.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding. 1777 1777 </p> 1778 1778 <p id="rfc.section.8.5.p.4">Examples of its use are:</p> … … 1796 1796 <li> 1797 1797 <p>If the transfer-coding being tested is one of the transfer-codings listed in the TE field, then it is acceptable unless it 1798 is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 3.5</a>, a qvalue of 0 means "not acceptable.")1798 is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 6.4</a>, a qvalue of 0 means "not acceptable.") 1799 1799 </p> 1800 1800 </li> … … 1819 1819 to know which header fields to expect in the trailer. 1820 1820 </p> 1821 <p id="rfc.section.8.6.p.4">If no Trailer header field is present, the trailer <em class="bcp14">SHOULD NOT</em> include any header fields. See <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a> for restrictions on the use of trailer fields in a "chunked" transfer-coding.1821 <p id="rfc.section.8.6.p.4">If no Trailer header field is present, the trailer <em class="bcp14">SHOULD NOT</em> include any header fields. See <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 6.2.1</a> for restrictions on the use of trailer fields in a "chunked" transfer-coding. 1822 1822 </p> 1823 1823 <p id="rfc.section.8.6.p.5">Message header fields listed in the Trailer header field <em class="bcp14">MUST NOT</em> include the following header fields: … … 1838 1838 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> 1839 1839 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> = 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1840 </pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 3.3</a>. An example is:1840 </pre><p id="rfc.section.8.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>. An example is: 1841 1841 </p> 1842 1842 <div id="rfc.figure.u.63"></div><pre class="text"> Transfer-Encoding: chunked … … 1872 1872 </p> 1873 1873 <p id="rfc.section.8.8.p.9">This specification only defines the protocol name "HTTP" for use by the family of Hypertext Transfer Protocols, as defined 1874 by the HTTP version rules of <a href="#http.version" title="HTTP Version">Section 3.1</a> and future updates to this specification. Any token can be used as a protocol name; however, it will only be useful if both1874 by the HTTP version rules of <a href="#http.version" title="HTTP Version">Section 2.2</a> and future updates to this specification. Any token can be used as a protocol name; however, it will only be useful if both 1875 1875 the client and server associate the name with the same protocol. 1876 1876 </p> … … 2003 2003 <p id="rfc.section.9.1.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p> 2004 2004 <h2 id="rfc.section.9.2"><a href="#rfc.section.9.2">9.2</a> <a id="uri.scheme.registration" href="#uri.scheme.registration">URI Scheme Registration</a></h2> 2005 <p id="rfc.section.9.2.p.1">The entry for the "http" URI Scheme in the registry located at <<a href="http://www.iana.org/assignments/uri-schemes.html">http://www.iana.org/assignments/uri-schemes.html</a>> should be updated to point to <a href="#http.uri" title="http URI scheme">Section 2. 1.1</a> of this document (see <a href="#RFC4395" id="rfc.xref.RFC4395.1"><cite title="Guidelines and Registration Procedures for New URI Schemes">[RFC4395]</cite></a>).2005 <p id="rfc.section.9.2.p.1">The entry for the "http" URI Scheme in the registry located at <<a href="http://www.iana.org/assignments/uri-schemes.html">http://www.iana.org/assignments/uri-schemes.html</a>> should be updated to point to <a href="#http.uri" title="http URI scheme">Section 2.3.1</a> of this document (see <a href="#RFC4395" id="rfc.xref.RFC4395.1"><cite title="Guidelines and Registration Procedures for New URI Schemes">[RFC4395]</cite></a>). 2006 2006 </p> 2007 2007 <h2 id="rfc.section.9.3"><a href="#rfc.section.9.3">9.3</a> <a id="internet.media.type.http" href="#internet.media.type.http">Internet Media Type Registrations</a></h2> … … 2450 2450 <p id="rfc.section.B.1.p.1">This section summarizes major differences between versions HTTP/1.0 and HTTP/1.1.</p> 2451 2451 <h3 id="rfc.section.B.1.1"><a href="#rfc.section.B.1.1">B.1.1</a> <a id="changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></h3> 2452 <p id="rfc.section.B.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 8.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 5.1.2</a>) are among the most important changes defined by this specification.2452 <p id="rfc.section.B.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 8.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 4.1.2</a>) are among the most important changes defined by this specification. 2453 2453 </p> 2454 2454 <p id="rfc.section.B.1.1.p.2">Older HTTP/1.0 clients assumed a one-to-one relationship of IP addresses and servers; there was no other established mechanism … … 2493 2493 <p id="rfc.section.B.3.p.2">Transfer-coding and message lengths all interact in ways that required fixing exactly when chunked encoding is used (to allow 2494 2494 for transfer encoding that may not be self delimiting); it was important to straighten out exactly how message lengths are 2495 computed. (Sections <a href="#transfer.codings" title="Transfer Codings"> 3.3</a>, <a href="#message.length" title="Message Length">4.4</a>, <a href="#header.content-length" id="rfc.xref.header.content-length.3" title="Content-Length">8.2</a>, see also <a href="#Part3" id="rfc.xref.Part3.11"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> and <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>)2495 computed. (Sections <a href="#transfer.codings" title="Transfer Codings">6.2</a>, <a href="#message.length" title="Message Length">3.4</a>, <a href="#header.content-length" id="rfc.xref.header.content-length.3" title="Content-Length">8.2</a>, see also <a href="#Part3" id="rfc.xref.Part3.11"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> and <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) 2496 2496 </p> 2497 2497 <p id="rfc.section.B.3.p.3">The use and interpretation of HTTP version numbers has been clarified by <a href="#RFC2145" id="rfc.xref.RFC2145.3"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. Require proxies to upgrade requests to highest protocol version they support to deal with problems discovered in HTTP/1.0 2498 implementations (<a href="#http.version" title="HTTP Version">Section 3.1</a>)2499 </p> 2500 <p id="rfc.section.B.3.p.4">Quality Values of zero should indicate that "I don't want something" to allow clients to refuse a representation. (<a href="#quality.values" title="Quality Values">Section 3.5</a>)2498 implementations (<a href="#http.version" title="HTTP Version">Section 2.2</a>) 2499 </p> 2500 <p id="rfc.section.B.3.p.4">Quality Values of zero should indicate that "I don't want something" to allow clients to refuse a representation. (<a href="#quality.values" title="Quality Values">Section 6.4</a>) 2501 2501 </p> 2502 2502 <p id="rfc.section.B.3.p.5">Transfer-coding had significant problems, particularly with interactions with chunked encoding. The solution is that transfer-codings … … 2504 2504 codings), a new header field (TE) and enabling trailer headers in the future. Transfer encoding is a major performance benefit, 2505 2505 so it was worth fixing <a href="#Nie1997" id="rfc.xref.Nie1997.2"><cite title="Network Performance Effects of HTTP/1.1, CSS1, and PNG">[Nie1997]</cite></a>. TE also solves another, obscure, downward interoperability problem that could have occurred due to interactions between 2506 authentication trailers, chunked encoding and HTTP/1.0 clients.(Section <a href="#transfer.codings" title="Transfer Codings"> 3.3</a>, <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">3.3.1</a>, and <a href="#header.te" id="rfc.xref.header.te.5" title="TE">8.5</a>)2506 authentication trailers, chunked encoding and HTTP/1.0 clients.(Section <a href="#transfer.codings" title="Transfer Codings">6.2</a>, <a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">6.2.1</a>, and <a href="#header.te" id="rfc.xref.header.te.5" title="TE">8.5</a>) 2507 2507 </p> 2508 2508 <h2 id="rfc.section.B.4"><a href="#rfc.section.B.4">B.4</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> … … 2514 2514 (the TEXT rule was removed) (<a href="#basic.rules" title="Basic Rules">Section 1.2.2</a>) 2515 2515 </p> 2516 <p id="rfc.section.B.4.p.3">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 3.1</a>)2517 </p> 2518 <p id="rfc.section.B.4.p.4">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings"> 3.3</a> and <a href="#message.length" title="Message Length">4.4</a>)2519 </p> 2520 <p id="rfc.section.B.4.p.5">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 3.3.1</a>)2521 </p> 2522 <p id="rfc.section.B.4.p.6">Require that invalid whitespace around field-names be rejected. (<a href="#message.headers" title="Message Headers">Section 4.2</a>)2523 </p> 2524 <p id="rfc.section.B.4.p.7">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 5.1.2</a>)2516 <p id="rfc.section.B.4.p.3">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 2.2</a>) 2517 </p> 2518 <p id="rfc.section.B.4.p.4">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings">6.2</a> and <a href="#message.length" title="Message Length">3.4</a>) 2519 </p> 2520 <p id="rfc.section.B.4.p.5">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.transfer.encoding" title="Chunked Transfer Coding">Section 6.2.1</a>) 2521 </p> 2522 <p id="rfc.section.B.4.p.6">Require that invalid whitespace around field-names be rejected. (<a href="#message.headers" title="Message Headers">Section 3.2</a>) 2523 </p> 2524 <p id="rfc.section.B.4.p.7">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 4.1.2</a>) 2525 2525 </p> 2526 2526 <p id="rfc.section.B.4.p.8">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.8" title="Connection">Section 8.1</a>) … … 2584 2584 </p> 2585 2585 <dl class="empty"> 2586 <dd>The basic unit of HTTP communication, consisting of a structured sequence of octets matching the syntax defined in <a href="#http.message" title="HTTP Message">Section 4</a> and transmitted via the connection.2586 <dd>The basic unit of HTTP communication, consisting of a structured sequence of octets matching the syntax defined in <a href="#http.message" title="HTTP Message">Section 3</a> and transmitted via the connection. 2587 2587 </dd> 2588 2588 </dl> … … 2606 2606 </p> 2607 2607 <dl class="empty"> 2608 <dd>An HTTP request message, as defined in <a href="#request" title="Request">Section 5</a>.2608 <dd>An HTTP request message, as defined in <a href="#request" title="Request">Section 4</a>. 2609 2609 </dd> 2610 2610 </dl> … … 2612 2612 </p> 2613 2613 <dl class="empty"> 2614 <dd>An HTTP response message, as defined in <a href="#response" title="Response">Section 6</a>.2614 <dd>An HTTP response message, as defined in <a href="#response" title="Response">Section 5</a>. 2615 2615 </dd> 2616 2616 </dl> … … 3063 3063 <li class="indline1">client <a class="iref" href="#rfc.iref.c.5">C</a></li> 3064 3064 <li class="indline1">connection <a class="iref" href="#rfc.iref.c.6">C</a></li> 3065 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1"> 4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.c.1"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li>3065 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.c.1"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 3066 3066 <li class="indline1">content negotiation <a class="iref" href="#rfc.iref.c.7">C</a></li> 3067 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1"> 4.4</a>, <a class="iref" href="#rfc.iref.c.2"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li>3067 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1">3.4</a>, <a class="iref" href="#rfc.iref.c.2"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 3068 3068 </ul> 3069 3069 </li> 3070 3070 <li class="indline0"><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul class="ind"> 3071 <li class="indline1">Date header <a class="iref" href="#rfc.xref.header.date.1"> 4.5</a>, <a class="iref" href="#rfc.iref.d.1"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li>3071 <li class="indline1">Date header <a class="iref" href="#rfc.xref.header.date.1">3.5</a>, <a class="iref" href="#rfc.iref.d.1"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li> 3072 3072 <li class="indline1">downstream <a class="iref" href="#rfc.iref.d.2">C</a></li> 3073 3073 </ul> … … 3081 3081 <li class="indline1"><tt>Grammar</tt> 3082 3082 <ul class="ind"> 3083 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.2 4"><b>2.1</b></a></li>3083 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.26"><b>2.3</b></a></li> 3084 3084 <li class="indline1">ALPHA <a class="iref" href="#rfc.iref.g.1"><b>1.2</b></a></li> 3085 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g. 49"><b>3.2</b></a></li>3086 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g. 53"><b>3.3</b></a></li>3087 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.2 5"><b>2.1</b></a></li>3085 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.70"><b>6.1</b></a></li> 3086 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.74"><b>6.2</b></a></li> 3087 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.27"><b>2.3</b></a></li> 3088 3088 <li class="indline1"><tt>BWS</tt> <a class="iref" href="#rfc.iref.g.15"><b>1.2.2</b></a></li> 3089 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g. 58"><b>3.3.1</b></a></li>3090 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g. 64"><b>3.3.1</b></a></li>3091 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g. 61"><b>3.3.1</b></a></li>3092 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g. 62"><b>3.3.1</b></a></li>3093 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g. 63"><b>3.3.1</b></a></li>3094 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g. 59"><b>3.3.1</b></a></li>3095 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g. 57"><b>3.3.1</b></a></li>3096 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g. 76"><b>4.2</b></a></li>3089 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.2.1</b></a></li> 3090 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.85"><b>6.2.1</b></a></li> 3091 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.82"><b>6.2.1</b></a></li> 3092 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.83"><b>6.2.1</b></a></li> 3093 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.84"><b>6.2.1</b></a></li> 3094 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.80"><b>6.2.1</b></a></li> 3095 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.78"><b>6.2.1</b></a></li> 3096 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.2</b></a></li> 3097 3097 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.90"><b>8.1</b></a></li> 3098 3098 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.92"><b>8.1</b></a></li> … … 3102 3102 <li class="indline1">CR <a class="iref" href="#rfc.iref.g.2"><b>1.2</b></a></li> 3103 3103 <li class="indline1">CRLF <a class="iref" href="#rfc.iref.g.3"><b>1.2</b></a></li> 3104 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g. 77"><b>4.2</b></a></li>3104 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.2</b></a></li> 3105 3105 <li class="indline1">CTL <a class="iref" href="#rfc.iref.g.4"><b>1.2</b></a></li> 3106 3106 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.95"><b>8.3</b></a></li> 3107 3107 <li class="indline1"><tt>Date-v</tt> <a class="iref" href="#rfc.iref.g.96"><b>8.3</b></a></li> 3108 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g. 36"><b>3.2</b></a></li>3109 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g. 55"><b>3.3</b></a></li>3110 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g. 56"><b>3.3</b></a></li>3111 <li class="indline1"><tt>day</tt> <a class="iref" href="#rfc.iref.g. 43"><b>3.2</b></a></li>3112 <li class="indline1"><tt>day-name</tt> <a class="iref" href="#rfc.iref.g. 41"><b>3.2</b></a></li>3113 <li class="indline1"><tt>day-name-l</tt> <a class="iref" href="#rfc.iref.g. 42"><b>3.2</b></a></li>3108 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.57"><b>6.1</b></a></li> 3109 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.76"><b>6.2</b></a></li> 3110 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.77"><b>6.2</b></a></li> 3111 <li class="indline1"><tt>day</tt> <a class="iref" href="#rfc.iref.g.64"><b>6.1</b></a></li> 3112 <li class="indline1"><tt>day-name</tt> <a class="iref" href="#rfc.iref.g.62"><b>6.1</b></a></li> 3113 <li class="indline1"><tt>day-name-l</tt> <a class="iref" href="#rfc.iref.g.63"><b>6.1</b></a></li> 3114 3114 <li class="indline1">DIGIT <a class="iref" href="#rfc.iref.g.5"><b>1.2</b></a></li> 3115 3115 <li class="indline1">DQUOTE <a class="iref" href="#rfc.iref.g.6"><b>1.2</b></a></li> 3116 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g. 88"><b>6.1.1</b></a></li>3117 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g. 83"><b>5.1.1</b></a></li>3118 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g. 75"><b>4.2</b></a></li>3119 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g. 73"><b>4.2</b></a></li>3120 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g. 74"><b>4.2</b></a></li>3121 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g. 79"><b>4.5</b></a></li>3122 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g. 70"><b>4.1</b></a></li>3123 <li class="indline1"><tt>GMT</tt> <a class="iref" href="#rfc.iref.g. 46"><b>3.2</b></a></li>3116 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.53"><b>5.1.1</b></a></li> 3117 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.48"><b>4.1.1</b></a></li> 3118 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.2</b></a></li> 3119 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.2</b></a></li> 3120 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.2</b></a></li> 3121 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.5</b></a></li> 3122 <li class="indline1"><tt>generic-message</tt> <a class="iref" href="#rfc.iref.g.35"><b>3.1</b></a></li> 3123 <li class="indline1"><tt>GMT</tt> <a class="iref" href="#rfc.iref.g.67"><b>6.1</b></a></li> 3124 3124 <li class="indline1">HEXDIG <a class="iref" href="#rfc.iref.g.7"><b>1.2</b></a></li> 3125 3125 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.97"><b>8.4</b></a></li> 3126 3126 <li class="indline1"><tt>Host-v</tt> <a class="iref" href="#rfc.iref.g.98"><b>8.4</b></a></li> 3127 <li class="indline1"><tt>hour</tt> <a class="iref" href="#rfc.iref.g. 38"><b>3.2</b></a></li>3128 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g. 34"><b>3.2</b></a></li>3129 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g. 69"><b>4.1</b></a></li>3130 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g. 33"><b>3.1</b></a></li>3131 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.3 0"><b>2.1.1</b></a></li>3132 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g. 32"><b>3.1</b></a></li>3133 <li class="indline1"><tt>https-URI</tt> <a class="iref" href="#rfc.iref.g.3 1"><b>2.1.2</b></a></li>3134 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g. 60"><b>3.3.1</b></a></li>3127 <li class="indline1"><tt>hour</tt> <a class="iref" href="#rfc.iref.g.59"><b>6.1</b></a></li> 3128 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.55"><b>6.1</b></a></li> 3129 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.34"><b>3.1</b></a></li> 3130 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.24"><b>2.2</b></a></li> 3131 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.32"><b>2.3.1</b></a></li> 3132 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.23"><b>2.2</b></a></li> 3133 <li class="indline1"><tt>https-URI</tt> <a class="iref" href="#rfc.iref.g.33"><b>2.3.2</b></a></li> 3134 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.81"><b>6.2.1</b></a></li> 3135 3135 <li class="indline1">LF <a class="iref" href="#rfc.iref.g.8"><b>1.2</b></a></li> 3136 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g. 78"><b>4.3</b></a></li>3137 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g. 72"><b>4.2</b></a></li>3138 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g. 82"><b>5.1.1</b></a></li>3139 <li class="indline1"><tt>minute</tt> <a class="iref" href="#rfc.iref.g. 39"><b>3.2</b></a></li>3140 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g. 44"><b>3.2</b></a></li>3141 <li class="indline1"><tt>obs-date</tt> <a class="iref" href="#rfc.iref.g. 47"><b>3.2</b></a></li>3136 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.3</b></a></li> 3137 <li class="indline1"><tt>message-header</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.2</b></a></li> 3138 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.47"><b>4.1.1</b></a></li> 3139 <li class="indline1"><tt>minute</tt> <a class="iref" href="#rfc.iref.g.60"><b>6.1</b></a></li> 3140 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.65"><b>6.1</b></a></li> 3141 <li class="indline1"><tt>obs-date</tt> <a class="iref" href="#rfc.iref.g.68"><b>6.1</b></a></li> 3142 3142 <li class="indline1"><tt>obs-text</tt> <a class="iref" href="#rfc.iref.g.20"><b>1.2.2</b></a></li> 3143 3143 <li class="indline1">OCTET <a class="iref" href="#rfc.iref.g.9"><b>1.2</b></a></li> 3144 3144 <li class="indline1"><tt>OWS</tt> <a class="iref" href="#rfc.iref.g.13"><b>1.2.2</b></a></li> 3145 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.2 6"><b>2.1</b></a></li>3146 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.2 7"><b>2.1</b></a></li>3147 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g. 66"><b>3.4</b></a></li>3148 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g. 67"><b>3.4</b></a></li>3145 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.28"><b>2.3</b></a></li> 3146 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.29"><b>2.3</b></a></li> 3147 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.87"><b>6.3</b></a></li> 3148 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.88"><b>6.3</b></a></li> 3149 3149 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.113"><b>8.9</b></a></li> 3150 3150 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.114"><b>8.9</b></a></li> 3151 3151 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.116"><b>8.9</b></a></li> 3152 3152 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.19"><b>1.2.2</b></a></li> 3153 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g. 28"><b>2.1</b></a></li>3153 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.30"><b>2.3</b></a></li> 3154 3154 <li class="indline1"><tt>quoted-pair</tt> <a class="iref" href="#rfc.iref.g.22"><b>1.2.2</b></a></li> 3155 3155 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.18"><b>1.2.2</b></a></li> 3156 3156 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.21"><b>1.2.2</b></a></li> 3157 <li class="indline1"><tt>qvalue</tt> <a class="iref" href="#rfc.iref.g. 68"><b>3.5</b></a></li>3158 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g. 89"><b>6.1.1</b></a></li>3157 <li class="indline1"><tt>qvalue</tt> <a class="iref" href="#rfc.iref.g.89"><b>6.4</b></a></li> 3158 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.54"><b>5.1.1</b></a></li> 3159 3159 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.115"><b>8.9</b></a></li> 3160 3160 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.112"><b>8.9</b></a></li> 3161 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g. 80"><b>5</b></a></li>3162 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g. 81"><b>5.1</b></a></li>3163 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g. 84"><b>5.1.2</b></a></li>3164 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g. 85"><b>6</b></a></li>3165 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g. 35"><b>3.2</b></a></li>3166 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g. 48"><b>3.2</b></a></li>3161 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.45"><b>4</b></a></li> 3162 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.46"><b>4.1</b></a></li> 3163 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.49"><b>4.1.2</b></a></li> 3164 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.50"><b>5</b></a></li> 3165 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.56"><b>6.1</b></a></li> 3166 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.69"><b>6.1</b></a></li> 3167 3167 <li class="indline1"><tt>RWS</tt> <a class="iref" href="#rfc.iref.g.14"><b>1.2.2</b></a></li> 3168 <li class="indline1"><tt>second</tt> <a class="iref" href="#rfc.iref.g. 40"><b>3.2</b></a></li>3168 <li class="indline1"><tt>second</tt> <a class="iref" href="#rfc.iref.g.61"><b>6.1</b></a></li> 3169 3169 <li class="indline1">SP <a class="iref" href="#rfc.iref.g.10"><b>1.2</b></a></li> 3170 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g. 71"><b>4.1</b></a></li>3171 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g. 87"><b>6.1.1</b></a></li>3172 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g. 86"><b>6.1</b></a></li>3170 <li class="indline1"><tt>start-line</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.1</b></a></li> 3171 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.52"><b>5.1.1</b></a></li> 3172 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.51"><b>5.1</b></a></li> 3173 3173 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.101"><b>8.5</b></a></li> 3174 3174 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.17"><b>1.2.2</b></a></li> … … 3177 3177 <li class="indline1"><tt>te-params</tt> <a class="iref" href="#rfc.iref.g.102"><b>8.5</b></a></li> 3178 3178 <li class="indline1"><tt>TE-v</tt> <a class="iref" href="#rfc.iref.g.100"><b>8.5</b></a></li> 3179 <li class="indline1"><tt>time-of-day</tt> <a class="iref" href="#rfc.iref.g. 37"><b>3.2</b></a></li>3179 <li class="indline1"><tt>time-of-day</tt> <a class="iref" href="#rfc.iref.g.58"><b>6.1</b></a></li> 3180 3180 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.16"><b>1.2.2</b></a></li> 3181 3181 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.104"><b>8.6</b></a></li> 3182 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g. 65"><b>3.3.1</b></a></li>3182 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.86"><b>6.2.1</b></a></li> 3183 3183 <li class="indline1"><tt>Trailer-v</tt> <a class="iref" href="#rfc.iref.g.105"><b>8.6</b></a></li> 3184 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g. 50"><b>3.3</b></a></li>3184 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.71"><b>6.2</b></a></li> 3185 3185 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.106"><b>8.7</b></a></li> 3186 3186 <li class="indline1"><tt>Transfer-Encoding-v</tt> <a class="iref" href="#rfc.iref.g.107"><b>8.7</b></a></li> 3187 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g. 51"><b>3.3</b></a></li>3188 <li class="indline1"><tt>transfer-parameter</tt> <a class="iref" href="#rfc.iref.g. 52"><b>3.3</b></a></li>3187 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.72"><b>6.2</b></a></li> 3188 <li class="indline1"><tt>transfer-parameter</tt> <a class="iref" href="#rfc.iref.g.73"><b>6.2</b></a></li> 3189 3189 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.108"><b>8.8</b></a></li> 3190 3190 <li class="indline1"><tt>Upgrade-v</tt> <a class="iref" href="#rfc.iref.g.109"><b>8.8</b></a></li> 3191 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g. 29"><b>2.1</b></a></li>3192 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.2 3"><b>2.1</b></a></li>3193 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g. 54"><b>3.3</b></a></li>3191 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.31"><b>2.3</b></a></li> 3192 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.25"><b>2.3</b></a></li> 3193 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.75"><b>6.2</b></a></li> 3194 3194 <li class="indline1">VCHAR <a class="iref" href="#rfc.iref.g.11"><b>1.2</b></a></li> 3195 3195 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.110"><b>8.9</b></a></li> 3196 3196 <li class="indline1"><tt>Via-v</tt> <a class="iref" href="#rfc.iref.g.111"><b>8.9</b></a></li> 3197 3197 <li class="indline1">WSP <a class="iref" href="#rfc.iref.g.12"><b>1.2</b></a></li> 3198 <li class="indline1"><tt>year</tt> <a class="iref" href="#rfc.iref.g. 45"><b>3.2</b></a></li>3198 <li class="indline1"><tt>year</tt> <a class="iref" href="#rfc.iref.g.66"><b>6.1</b></a></li> 3199 3199 </ul> 3200 3200 </li> … … 3204 3204 <li class="indline1">Headers 3205 3205 <ul class="ind"> 3206 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1"> 4.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.h.3"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li>3207 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1"> 4.4</a>, <a class="iref" href="#rfc.iref.h.4"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li>3208 <li class="indline1">Date <a class="iref" href="#rfc.xref.header.date.1"> 4.5</a>, <a class="iref" href="#rfc.iref.h.5"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li>3206 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.h.3"><b>8.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">8.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">8.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">9.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 3207 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1">3.4</a>, <a class="iref" href="#rfc.iref.h.4"><b>8.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">9.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 3208 <li class="indline1">Date <a class="iref" href="#rfc.xref.header.date.1">3.5</a>, <a class="iref" href="#rfc.iref.h.5"><b>8.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">9.1</a></li> 3209 3209 <li class="indline1">Host <a class="iref" href="#rfc.iref.h.7"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 3210 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1"> 3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.xref.header.te.3">3.5</a>, <a class="iref" href="#rfc.iref.h.8"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">9.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li>3211 <li class="indline1">Trailer <a class="iref" href="#rfc.xref.header.trailer.1">3. 3.1</a>, <a class="iref" href="#rfc.xref.header.trailer.2">4.5</a>, <a class="iref" href="#rfc.iref.h.9"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li>3212 <li class="indline1">Transfer-Encoding <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2"> 4.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">4.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">4.5</a>, <a class="iref" href="#rfc.iref.h.10"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li>3213 <li class="indline1">Upgrade <a class="iref" href="#rfc.xref.header.upgrade.1"> 4.5</a>, <a class="iref" href="#rfc.iref.h.11"><b>8.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">9.1</a></li>3214 <li class="indline1">Via <a class="iref" href="#rfc.xref.header.via.1"> 4.5</a>, <a class="iref" href="#rfc.iref.h.12"><b>8.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">9.1</a></li>3210 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1">6.2</a>, <a class="iref" href="#rfc.xref.header.te.2">6.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">6.4</a>, <a class="iref" href="#rfc.iref.h.8"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">9.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li> 3211 <li class="indline1">Trailer <a class="iref" href="#rfc.xref.header.trailer.1">3.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">6.2.1</a>, <a class="iref" href="#rfc.iref.h.9"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li> 3212 <li class="indline1">Transfer-Encoding <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">3.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">3.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">6.2</a>, <a class="iref" href="#rfc.iref.h.10"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li> 3213 <li class="indline1">Upgrade <a class="iref" href="#rfc.xref.header.upgrade.1">3.5</a>, <a class="iref" href="#rfc.iref.h.11"><b>8.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">9.1</a></li> 3214 <li class="indline1">Via <a class="iref" href="#rfc.xref.header.via.1">3.5</a>, <a class="iref" href="#rfc.iref.h.12"><b>8.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">9.1</a></li> 3215 3215 </ul> 3216 3216 </li> 3217 3217 <li class="indline1">Host header <a class="iref" href="#rfc.iref.h.6"><b>8.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">9.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 3218 <li class="indline1">http URI scheme <a class="iref" href="#rfc.iref.h.1"><b>2. 1.1</b></a></li>3219 <li class="indline1">https URI scheme <a class="iref" href="#rfc.iref.h.2">2. 1.2</a></li>3218 <li class="indline1">http URI scheme <a class="iref" href="#rfc.iref.h.1"><b>2.3.1</b></a></li> 3219 <li class="indline1">https URI scheme <a class="iref" href="#rfc.iref.h.2">2.3.2</a></li> 3220 3220 </ul> 3221 3221 </li> 3222 3222 <li class="indline0"><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul class="ind"> 3223 3223 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.1">C</a></li> 3224 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1"> 4.2</a>, <a class="iref" href="#ISO-8859-1"><b>12.1</b></a></li>3224 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1">3.2</a>, <a class="iref" href="#ISO-8859-1"><b>12.1</b></a></li> 3225 3225 </ul> 3226 3226 </li> 3227 3227 <li class="indline0"><a id="rfc.index.K" href="#rfc.index.K"><b>K</b></a><ul class="ind"> 3228 <li class="indline1"><em>Kri2001</em> <a class="iref" href="#rfc.xref.Kri2001.1"> 4.2</a>, <a class="iref" href="#Kri2001"><b>12.2</b></a></li>3228 <li class="indline1"><em>Kri2001</em> <a class="iref" href="#rfc.xref.Kri2001.1">3.2</a>, <a class="iref" href="#Kri2001"><b>12.2</b></a></li> 3229 3229 </ul> 3230 3230 </li> … … 3251 3251 <li class="indline0"><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul class="ind"> 3252 3252 <li class="indline1"><em>Pad1995</em> <a class="iref" href="#rfc.xref.Pad1995.1">7.1.1</a>, <a class="iref" href="#Pad1995"><b>12.2</b></a></li> 3253 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3"> 5</a>, <a class="iref" href="#rfc.xref.Part2.4">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.5">5.1.2</a>, <a class="iref" href="#rfc.xref.Part2.6">6</a>, <a class="iref" href="#rfc.xref.Part2.7">6.1.1</a>, <a class="iref" href="#rfc.xref.Part2.8">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.4</a>, <a class="iref" href="#rfc.xref.Part2.10">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a>, <a class="iref" href="#Part2"><b>12.1</b></a><ul class="ind">3254 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3"> 5</a></li>3255 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.6"> 6</a></li>3253 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4</a>, <a class="iref" href="#rfc.xref.Part2.4">4.1.2</a>, <a class="iref" href="#rfc.xref.Part2.5">4.1.2</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a>, <a class="iref" href="#rfc.xref.Part2.7">5.1.1</a>, <a class="iref" href="#rfc.xref.Part2.8">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.4</a>, <a class="iref" href="#rfc.xref.Part2.10">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a>, <a class="iref" href="#Part2"><b>12.1</b></a><ul class="ind"> 3254 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4</a></li> 3255 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a></li> 3256 3256 <li class="indline1"><em>Section 7.1.2</em> <a class="iref" href="#rfc.xref.Part2.8">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.4</a></li> 3257 <li class="indline1"><em>Section 7.9</em> <a class="iref" href="#rfc.xref.Part2.4"> 5.1.2</a></li>3258 <li class="indline1"><em>Section 8</em> <a class="iref" href="#rfc.xref.Part2.7"> 6.1.1</a></li>3257 <li class="indline1"><em>Section 7.9</em> <a class="iref" href="#rfc.xref.Part2.4">4.1.2</a></li> 3258 <li class="indline1"><em>Section 8</em> <a class="iref" href="#rfc.xref.Part2.7">5.1.1</a></li> 3259 3259 <li class="indline1"><em>Section 8.1.1</em> <a class="iref" href="#rfc.xref.Part2.10">7.2.3</a></li> 3260 3260 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a></li> 3261 <li class="indline1"><em>Section 8.4.15</em> <a class="iref" href="#rfc.xref.Part2.5"> 5.1.2</a></li>3261 <li class="indline1"><em>Section 8.4.15</em> <a class="iref" href="#rfc.xref.Part2.5">4.1.2</a></li> 3262 3262 <li class="indline1"><em>Section 9.2</em> <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a></li> 3263 3263 </ul> 3264 3264 </li> 3265 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5"> 3.3</a>, <a class="iref" href="#rfc.xref.Part3.6">3.3</a>, <a class="iref" href="#rfc.xref.Part3.7">3.5</a>, <a class="iref" href="#rfc.xref.Part3.8">5</a>, <a class="iref" href="#rfc.xref.Part3.9">6</a>, <a class="iref" href="#Part3"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part3.10">A</a>, <a class="iref" href="#rfc.xref.Part3.11">B.3</a>, <a class="iref" href="#rfc.xref.Part3.12">C</a>, <a class="iref" href="#rfc.xref.Part3.13">C</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a><ul class="ind">3266 <li class="indline1"><em>Section 2.2</em> <a class="iref" href="#rfc.xref.Part3. 5">3.3</a>, <a class="iref" href="#rfc.xref.Part3.6">3.3</a></li>3265 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">4</a>, <a class="iref" href="#rfc.xref.Part3.6">5</a>, <a class="iref" href="#rfc.xref.Part3.7">6.2</a>, <a class="iref" href="#rfc.xref.Part3.8">6.2</a>, <a class="iref" href="#rfc.xref.Part3.9">6.4</a>, <a class="iref" href="#Part3"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part3.10">A</a>, <a class="iref" href="#rfc.xref.Part3.11">B.3</a>, <a class="iref" href="#rfc.xref.Part3.12">C</a>, <a class="iref" href="#rfc.xref.Part3.13">C</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a><ul class="ind"> 3266 <li class="indline1"><em>Section 2.2</em> <a class="iref" href="#rfc.xref.Part3.7">6.2</a>, <a class="iref" href="#rfc.xref.Part3.8">6.2</a></li> 3267 3267 <li class="indline1"><em>Section 2.3</em> <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a></li> 3268 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3. 8">5</a>, <a class="iref" href="#rfc.xref.Part3.9">6</a></li>3268 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">4</a>, <a class="iref" href="#rfc.xref.Part3.6">5</a></li> 3269 3269 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part3.13">C</a></li> 3270 3270 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a></li> 3271 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3. 7">3.5</a>, <a class="iref" href="#rfc.xref.Part3.12">C</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a></li>3271 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.9">6.4</a>, <a class="iref" href="#rfc.xref.Part3.12">C</a>, <a class="iref" href="#rfc.xref.Part3.14">C</a></li> 3272 3272 <li class="indline1"><em>Appendix A</em> <a class="iref" href="#rfc.xref.Part3.1">1</a></li> 3273 3273 </ul> 3274 3274 </li> 3275 3275 <li class="indline1"><em>Part5</em> <a class="iref" href="#Part5"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part5.1">B.3</a></li> 3276 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2. 2</a>, <a class="iref" href="#rfc.xref.Part6.5">4.5</a>, <a class="iref" href="#rfc.xref.Part6.6">4.5</a>, <a class="iref" href="#rfc.xref.Part6.7">4.5</a>, <a class="iref" href="#Part6"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8">B.3</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a><ul class="ind">3277 <li class="indline1"><em>Section 1</em> <a class="iref" href="#rfc.xref.Part6.4">2. 2</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a></li>3278 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part6.5"> 4.5</a></li>3279 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.6"> 4.5</a></li>3280 <li class="indline1"><em>Section 3.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7"> 4.5</a></li>3276 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2.1</a>, <a class="iref" href="#rfc.xref.Part6.5">3.5</a>, <a class="iref" href="#rfc.xref.Part6.6">3.5</a>, <a class="iref" href="#rfc.xref.Part6.7">3.5</a>, <a class="iref" href="#Part6"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8">B.3</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a><ul class="ind"> 3277 <li class="indline1"><em>Section 1</em> <a class="iref" href="#rfc.xref.Part6.4">2.1</a>, <a class="iref" href="#rfc.xref.Part6.9">C</a></li> 3278 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part6.5">3.5</a></li> 3279 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.6">3.5</a></li> 3280 <li class="indline1"><em>Section 3.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7">3.5</a></li> 3281 3281 </ul> 3282 3282 </li> … … 3287 3287 <li class="indline1">representation <a class="iref" href="#rfc.iref.r.4">C</a></li> 3288 3288 <li class="indline1">request <a class="iref" href="#rfc.iref.r.2">C</a></li> 3289 <li class="indline1">resource <a class="iref" href="#rfc.iref.r.1"><b>2. 1</b></a></li>3289 <li class="indline1">resource <a class="iref" href="#rfc.iref.r.1"><b>2.3</b></a></li> 3290 3290 <li class="indline1">response <a class="iref" href="#rfc.iref.r.3">C</a></li> 3291 <li class="indline1"><em>RFC1123</em> <a class="iref" href="#rfc.xref.RFC1123.1"> 3.2</a>, <a class="iref" href="#RFC1123"><b>12.2</b></a></li>3291 <li class="indline1"><em>RFC1123</em> <a class="iref" href="#rfc.xref.RFC1123.1">6.1</a>, <a class="iref" href="#RFC1123"><b>12.2</b></a></li> 3292 3292 <li class="indline1"><em>RFC1305</em> <a class="iref" href="#rfc.xref.RFC1305.1">8.3</a>, <a class="iref" href="#RFC1305"><b>12.2</b></a></li> 3293 3293 <li class="indline1"><em>RFC1900</em> <a class="iref" href="#rfc.xref.RFC1900.1">10.4</a>, <a class="iref" href="#RFC1900"><b>12.2</b></a></li> 3294 3294 <li class="indline1"><em>RFC1945</em> <a class="iref" href="#RFC1945"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC1945.1">B</a></li> 3295 <li class="indline1"><em>RFC2045</em> <a class="iref" href="#rfc.xref.RFC2045.1">1</a>, <a class="iref" href="#rfc.xref.RFC2045.2"> 3.3</a>, <a class="iref" href="#rfc.xref.RFC2045.3">11</a>, <a class="iref" href="#RFC2045"><b>12.2</b></a></li>3296 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1"> 4.2</a>, <a class="iref" href="#RFC2047"><b>12.2</b></a></li>3297 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1"> 3.1</a>, <a class="iref" href="#rfc.xref.RFC2068.2">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.3">7.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">11</a>, <a class="iref" href="#RFC2068"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.5">B</a>, <a class="iref" href="#rfc.xref.RFC2068.6">B.2</a><ul class="ind">3295 <li class="indline1"><em>RFC2045</em> <a class="iref" href="#rfc.xref.RFC2045.1">1</a>, <a class="iref" href="#rfc.xref.RFC2045.2">6.2</a>, <a class="iref" href="#rfc.xref.RFC2045.3">11</a>, <a class="iref" href="#RFC2045"><b>12.2</b></a></li> 3296 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1">3.2</a>, <a class="iref" href="#RFC2047"><b>12.2</b></a></li> 3297 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1">2.2</a>, <a class="iref" href="#rfc.xref.RFC2068.2">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.3">7.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">11</a>, <a class="iref" href="#RFC2068"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.5">B</a>, <a class="iref" href="#rfc.xref.RFC2068.6">B.2</a><ul class="ind"> 3298 3298 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.2">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.5">B</a>, <a class="iref" href="#rfc.xref.RFC2068.6">B.2</a></li> 3299 3299 </ul> 3300 3300 </li> 3301 <li class="indline1"><em>RFC2109</em> <a class="iref" href="#rfc.xref.RFC2109.1"> 4.2</a>, <a class="iref" href="#RFC2109"><b>12.2</b></a></li>3301 <li class="indline1"><em>RFC2109</em> <a class="iref" href="#rfc.xref.RFC2109.1">3.2</a>, <a class="iref" href="#RFC2109"><b>12.2</b></a></li> 3302 3302 <li class="indline1"><em>RFC2119</em> <a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b>12.1</b></a>, <a class="iref" href="#rfc.xref.RFC2119.2">B.3</a></li> 3303 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1"> 3.1</a>, <a class="iref" href="#rfc.xref.RFC2145.2">3.1</a>, <a class="iref" href="#RFC2145"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3">B.3</a></li>3303 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1">2.2</a>, <a class="iref" href="#rfc.xref.RFC2145.2">2.2</a>, <a class="iref" href="#RFC2145"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3">B.3</a></li> 3304 3304 <li class="indline1"><em>RFC2616</em> <a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2">11</a>, <a class="iref" href="#RFC2616"><b>12.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3">E.1</a></li> 3305 <li class="indline1"><em>RFC2818</em> <a class="iref" href="#rfc.xref.RFC2818.1">2. 1.2</a>, <a class="iref" href="#RFC2818"><b>12.2</b></a></li>3306 <li class="indline1"><em>RFC2965</em> <a class="iref" href="#rfc.xref.RFC2965.1"> 4.2</a>, <a class="iref" href="#RFC2965"><b>12.2</b></a></li>3305 <li class="indline1"><em>RFC2818</em> <a class="iref" href="#rfc.xref.RFC2818.1">2.3.2</a>, <a class="iref" href="#RFC2818"><b>12.2</b></a></li> 3306 <li class="indline1"><em>RFC2965</em> <a class="iref" href="#rfc.xref.RFC2965.1">3.2</a>, <a class="iref" href="#RFC2965"><b>12.2</b></a></li> 3307 3307 <li class="indline1"><em>RFC3864</em> <a class="iref" href="#rfc.xref.RFC3864.1">9.1</a>, <a class="iref" href="#RFC3864"><b>12.2</b></a></li> 3308 <li class="indline1"><em>RFC3986</em> <a class="iref" href="#rfc.xref.RFC3986.1">1</a>, <a class="iref" href="#rfc.xref.RFC3986.2">2. 1</a>, <a class="iref" href="#rfc.xref.RFC3986.3">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.4">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.5">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.6">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.7">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.8">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.9">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.10">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.11">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.13">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.14">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.15">2.1</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.1.1</a>, <a class="iref" href="#rfc.xref.RFC3986.17">2.1.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18">2.1.3</a>, <a class="iref" href="#rfc.xref.RFC3986.19">5.1.2</a>, <a class="iref" href="#RFC3986"><b>12.1</b></a><ul class="ind">3309 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC3986.18">2. 1.3</a>, <a class="iref" href="#rfc.xref.RFC3986.19">5.1.2</a></li>3310 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.RFC3986.5">2. 1</a></li>3311 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.RFC3986.9">2. 1</a></li>3312 <li class="indline1"><em>Section 3.2.2</em> <a class="iref" href="#rfc.xref.RFC3986.15">2. 1</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.1.1</a></li>3313 <li class="indline1"><em>Section 3.2.3</em> <a class="iref" href="#rfc.xref.RFC3986.13">2. 1</a></li>3314 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC3986.11">2. 1</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.1</a></li>3315 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.RFC3986.14">2. 1</a></li>3316 <li class="indline1"><em>Section 3.5</em> <a class="iref" href="#rfc.xref.RFC3986.10">2. 1</a></li>3317 <li class="indline1"><em>Section 4.1</em> <a class="iref" href="#rfc.xref.RFC3986.6">2. 1</a></li>3318 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.RFC3986.8">2. 1</a></li>3319 <li class="indline1"><em>Section 4.3</em> <a class="iref" href="#rfc.xref.RFC3986.7">2. 1</a></li>3320 <li class="indline1"><em>Section 6</em> <a class="iref" href="#rfc.xref.RFC3986.17">2. 1.3</a></li>3308 <li class="indline1"><em>RFC3986</em> <a class="iref" href="#rfc.xref.RFC3986.1">1</a>, <a class="iref" href="#rfc.xref.RFC3986.2">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.3">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.4">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.5">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.6">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.7">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.8">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.9">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.10">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.11">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.13">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.14">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.15">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.3.1</a>, <a class="iref" href="#rfc.xref.RFC3986.17">2.3.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18">2.3.3</a>, <a class="iref" href="#rfc.xref.RFC3986.19">4.1.2</a>, <a class="iref" href="#RFC3986"><b>12.1</b></a><ul class="ind"> 3309 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC3986.18">2.3.3</a>, <a class="iref" href="#rfc.xref.RFC3986.19">4.1.2</a></li> 3310 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.RFC3986.5">2.3</a></li> 3311 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.RFC3986.9">2.3</a></li> 3312 <li class="indline1"><em>Section 3.2.2</em> <a class="iref" href="#rfc.xref.RFC3986.15">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.3.1</a></li> 3313 <li class="indline1"><em>Section 3.2.3</em> <a class="iref" href="#rfc.xref.RFC3986.13">2.3</a></li> 3314 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC3986.11">2.3</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.3</a></li> 3315 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.RFC3986.14">2.3</a></li> 3316 <li class="indline1"><em>Section 3.5</em> <a class="iref" href="#rfc.xref.RFC3986.10">2.3</a></li> 3317 <li class="indline1"><em>Section 4.1</em> <a class="iref" href="#rfc.xref.RFC3986.6">2.3</a></li> 3318 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.RFC3986.8">2.3</a></li> 3319 <li class="indline1"><em>Section 4.3</em> <a class="iref" href="#rfc.xref.RFC3986.7">2.3</a></li> 3320 <li class="indline1"><em>Section 6</em> <a class="iref" href="#rfc.xref.RFC3986.17">2.3.3</a></li> 3321 3321 </ul> 3322 3322 </li> … … 3327 3327 </ul> 3328 3328 </li> 3329 <li class="indline1"><em>RFC5322</em> <a class="iref" href="#rfc.xref.RFC5322.1">1</a>, <a class="iref" href="#rfc.xref.RFC5322.2">3. 2</a>, <a class="iref" href="#rfc.xref.RFC5322.3">4.1</a>, <a class="iref" href="#rfc.xref.RFC5322.4">4.2</a>, <a class="iref" href="#rfc.xref.RFC5322.5">8.3</a>, <a class="iref" href="#rfc.xref.RFC5322.6">8.9</a>, <a class="iref" href="#RFC5322"><b>12.2</b></a><ul class="ind">3330 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC5322. 4">4.2</a></li>3331 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC5322. 2">3.2</a></li>3329 <li class="indline1"><em>RFC5322</em> <a class="iref" href="#rfc.xref.RFC5322.1">1</a>, <a class="iref" href="#rfc.xref.RFC5322.2">3.1</a>, <a class="iref" href="#rfc.xref.RFC5322.3">3.2</a>, <a class="iref" href="#rfc.xref.RFC5322.4">6.1</a>, <a class="iref" href="#rfc.xref.RFC5322.5">8.3</a>, <a class="iref" href="#rfc.xref.RFC5322.6">8.9</a>, <a class="iref" href="#RFC5322"><b>12.2</b></a><ul class="ind"> 3330 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC5322.3">3.2</a></li> 3331 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC5322.4">6.1</a></li> 3332 3332 <li class="indline1"><em>Section 3.6.1</em> <a class="iref" href="#rfc.xref.RFC5322.5">8.3</a></li> 3333 3333 <li class="indline1"><em>Section 3.6.7</em> <a class="iref" href="#rfc.xref.RFC5322.6">8.9</a></li> … … 3342 3342 </li> 3343 3343 <li class="indline0"><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul class="ind"> 3344 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1"> 3.3</a>, <a class="iref" href="#rfc.xref.header.te.2">3.3.1</a>, <a class="iref" href="#rfc.xref.header.te.3">3.5</a>, <a class="iref" href="#rfc.iref.t.1"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">9.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li>3344 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1">6.2</a>, <a class="iref" href="#rfc.xref.header.te.2">6.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">6.4</a>, <a class="iref" href="#rfc.iref.t.1"><b>8.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">9.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li> 3345 3345 <li class="indline1"><em>Tou1998</em> <a class="iref" href="#rfc.xref.Tou1998.1">7.1.1</a>, <a class="iref" href="#Tou1998"><b>12.2</b></a></li> 3346 <li class="indline1">Trailer header <a class="iref" href="#rfc.xref.header.trailer.1">3. 3.1</a>, <a class="iref" href="#rfc.xref.header.trailer.2">4.5</a>, <a class="iref" href="#rfc.iref.t.2"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li>3347 <li class="indline1">Transfer-Encoding header <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2"> 4.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">4.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">4.5</a>, <a class="iref" href="#rfc.iref.t.3"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li>3346 <li class="indline1">Trailer header <a class="iref" href="#rfc.xref.header.trailer.1">3.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">6.2.1</a>, <a class="iref" href="#rfc.iref.t.2"><b>8.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">9.1</a></li> 3347 <li class="indline1">Transfer-Encoding header <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">3.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">3.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">6.2</a>, <a class="iref" href="#rfc.iref.t.3"><b>8.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">9.1</a></li> 3348 3348 <li class="indline1">tunnel <a class="iref" href="#rfc.iref.t.4">C</a></li> 3349 3349 </ul> 3350 3350 </li> 3351 3351 <li class="indline0"><a id="rfc.index.U" href="#rfc.index.U"><b>U</b></a><ul class="ind"> 3352 <li class="indline1">Upgrade header <a class="iref" href="#rfc.xref.header.upgrade.1"> 4.5</a>, <a class="iref" href="#rfc.iref.u.3"><b>8.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">9.1</a></li>3352 <li class="indline1">Upgrade header <a class="iref" href="#rfc.xref.header.upgrade.1">3.5</a>, <a class="iref" href="#rfc.iref.u.3"><b>8.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">9.1</a></li> 3353 3353 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u.4">C</a></li> 3354 3354 <li class="indline1">URI scheme 3355 3355 <ul class="ind"> 3356 <li class="indline1">http <a class="iref" href="#rfc.iref.u.1"><b>2. 1.1</b></a></li>3357 <li class="indline1">https <a class="iref" href="#rfc.iref.u.2">2. 1.2</a></li>3356 <li class="indline1">http <a class="iref" href="#rfc.iref.u.1"><b>2.3.1</b></a></li> 3357 <li class="indline1">https <a class="iref" href="#rfc.iref.u.2">2.3.2</a></li> 3358 3358 </ul> 3359 3359 </li> 3360 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#rfc.xref.USASCII.2"> 4.2</a>, <a class="iref" href="#USASCII"><b>12.1</b></a></li>3360 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#rfc.xref.USASCII.2">3.2</a>, <a class="iref" href="#USASCII"><b>12.1</b></a></li> 3361 3361 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u.5">C</a></li> 3362 3362 </ul> … … 3364 3364 <li class="indline0"><a id="rfc.index.V" href="#rfc.index.V"><b>V</b></a><ul class="ind"> 3365 3365 <li class="indline1">variant <a class="iref" href="#rfc.iref.v.2">C</a></li> 3366 <li class="indline1">Via header <a class="iref" href="#rfc.xref.header.via.1"> 4.5</a>, <a class="iref" href="#rfc.iref.v.1"><b>8.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">9.1</a></li>3366 <li class="indline1">Via header <a class="iref" href="#rfc.xref.header.via.1">3.5</a>, <a class="iref" href="#rfc.iref.v.1"><b>8.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">9.1</a></li> 3367 3367 </ul> 3368 3368 </li>
Note: See TracChangeset
for help on using the changeset viewer.