Changeset 1905
- Timestamp:
- 18/09/12 09:26:12 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r1904 r1905 907 907 or an intranet-to-Internet privacy filter. Such transformations are presumed to be desired by the client (or client organization) 908 908 that selected the proxy and are beyond the scope of this specification. However, when a proxy is not intended to transform 909 a given message, we use the term "<dfn>non-transforming proxy</dfn>" to target requirements that preserve HTTP message semantics. See <a href="p2-semantics.html#status.203" title="203 Non-Authoritative Information">Section 7.3.4</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> and <a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a> for status and warning codes related to transformations.909 a given message, we use the term "<dfn>non-transforming proxy</dfn>" to target requirements that preserve HTTP message semantics. See <a href="p2-semantics.html#status.203" title="203 Non-Authoritative Information">Section 6.3.4</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> and <a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a> for status and warning codes related to transformations. 910 910 </p> 911 911 <p id="rfc.section.2.3.p.7"><span id="rfc.iref.g.13"></span><span id="rfc.iref.r.4"></span> <span id="rfc.iref.a.1"></span> A "<dfn>gateway</dfn>" (a.k.a., "<dfn>reverse proxy</dfn>") is a receiving agent that acts as a layer above some other server(s) and translates the received requests to the underlying … … 1077 1077 </p> 1078 1078 <p id="rfc.section.2.7.1.p.6">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, 1079 and sending an HTTP request message (<a href="#http.message" title="Message Format">Section 3</a>) containing the URI's identifying data (<a href="#message.routing" title="Message Routing">Section 5</a>) to the server. If the server responds to that request with a non-interim HTTP response message, as described in <a href="p2-semantics.html#status.codes" title="Response Status Codes">Section 7</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, then that response is considered an authoritative answer to the client's request.1079 and sending an HTTP request message (<a href="#http.message" title="Message Format">Section 3</a>) containing the URI's identifying data (<a href="#message.routing" title="Message Routing">Section 5</a>) to the server. If the server responds to that request with a non-interim HTTP response message, as described in <a href="p2-semantics.html#status.codes" title="Response Status Codes">Section 6</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, then that response is considered an authoritative answer to the client's request. 1080 1080 </p> 1081 1081 <p id="rfc.section.2.7.1.p.7">Although HTTP is independent of the transport protocol, the "http" scheme is specific to TCP-based services because the name … … 1175 1175 </div> 1176 1176 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.29"></span> <a href="#method" class="smpl">method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1177 </pre><p id="rfc.section.3.1.1.p.6">The methods defined by this specification can be found in <a href="p2-semantics.html#methods" title="Request Methods">Section 5</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, along with information regarding the HTTP method registry and considerations for defining new methods.1177 </pre><p id="rfc.section.3.1.1.p.6">The methods defined by this specification can be found in <a href="p2-semantics.html#methods" title="Request Methods">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, along with information regarding the HTTP method registry and considerations for defining new methods. 1178 1178 </p> 1179 1179 <div id="rfc.iref.r.6"></div> … … 1188 1188 </p> 1189 1189 <p id="rfc.section.3.1.1.p.10">HTTP does not place a pre-defined limit on the length of a request-line. A server that receives a method longer than any that 1190 it implements <em class="bcp14">SHOULD</em> respond with either a <a href="p2-semantics.html#status.405" class="smpl">405 (Method Not Allowed)</a>, if it is an origin server, or a <a href="p2-semantics.html#status.501" class="smpl">501 (Not Implemented)</a> status code. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the <a href="p2-semantics.html#status.414" class="smpl">414 (URI Too Long)</a> status code if the received request-target would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 7.5.12</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>).1190 it implements <em class="bcp14">SHOULD</em> respond with either a <a href="p2-semantics.html#status.405" class="smpl">405 (Method Not Allowed)</a>, if it is an origin server, or a <a href="p2-semantics.html#status.501" class="smpl">501 (Not Implemented)</a> status code. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the <a href="p2-semantics.html#status.414" class="smpl">414 (URI Too Long)</a> status code if the received request-target would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 6.5.12</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). 1191 1191 </p> 1192 1192 <p id="rfc.section.3.1.1.p.11">Various ad-hoc limitations on request-line length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support, at a minimum, request-line lengths of up to 8000 octets. … … 1201 1201 <p id="rfc.section.3.1.2.p.4">The status-code element is a 3-digit integer code describing the result of the server's attempt to understand and satisfy 1202 1202 the client's corresponding request. The rest of the response message is to be interpreted in light of the semantics defined 1203 for that status code. See <a href="p2-semantics.html#status.codes" title="Response Status Codes">Section 7</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> for information about the semantics of status codes, including the classes of status code (indicated by the first digit),1203 for that status code. See <a href="p2-semantics.html#status.codes" title="Response Status Codes">Section 6</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> for information about the semantics of status codes, including the classes of status code (indicated by the first digit), 1204 1204 the status codes defined by this specification, considerations for the definition of new status codes, and the IANA registry. 1205 1205 </p> … … 1222 1222 ; see <a href="#field.parsing" title="Field Parsing">Section 3.2.2</a> 1223 1223 </pre><p id="rfc.section.3.2.p.3">The field-name token labels the corresponding field-value as having the semantics defined by that header field. For example, 1224 the <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field is defined in <a href="p2-semantics.html#header.date" title="Date">Section 8.2.1</a> of <a href="#Part2" id="rfc.xref.Part2.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> as containing the origination timestamp for the message in which it appears.1224 the <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field is defined in <a href="p2-semantics.html#header.date" title="Date">Section 7.2.1</a> of <a href="#Part2" id="rfc.xref.Part2.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> as containing the origination timestamp for the message in which it appears. 1225 1225 </p> 1226 1226 <p id="rfc.section.3.2.p.4">HTTP header fields are fully extensible: there is no limit on the introduction of new field names, each presumably defining … … 1230 1230 them. 1231 1231 </p> 1232 <p id="rfc.section.3.2.p.5">New HTTP header fields <em class="bcp14">SHOULD</em> be registered with IANA in the Message Header Field Registry, as described in <a href="p2-semantics.html#header.field.registry" title="Header Field Registry">Section 10.3</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>. Unrecognized header fields <em class="bcp14">MUST</em> be forwarded by a proxy unless the field-name is listed in the <a href="#header.connection" class="smpl">Connection</a> header field (<a href="#header.connection" id="rfc.xref.header.connection.3" title="Connection">Section 6.1</a>) or the proxy is specifically configured to block or otherwise transform such fields. Unrecognized header fields <em class="bcp14">SHOULD</em> be ignored by other recipients.1232 <p id="rfc.section.3.2.p.5">New HTTP header fields <em class="bcp14">SHOULD</em> be registered with IANA in the Message Header Field Registry, as described in <a href="p2-semantics.html#header.field.registry" title="Header Field Registry">Section 9.3</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>. Unrecognized header fields <em class="bcp14">MUST</em> be forwarded by a proxy unless the field-name is listed in the <a href="#header.connection" class="smpl">Connection</a> header field (<a href="#header.connection" id="rfc.xref.header.connection.3" title="Connection">Section 6.1</a>) or the proxy is specifically configured to block or otherwise transform such fields. Unrecognized header fields <em class="bcp14">SHOULD</em> be ignored by other recipients. 1233 1233 </p> 1234 1234 <p id="rfc.section.3.2.p.6">The order in which header fields with differing field names are received is not significant. However, it is "good practice" … … 1381 1381 <p id="rfc.section.3.3.1.p.6">If more than one Transfer-Encoding header field is present in a message, the multiple field-values <em class="bcp14">MUST</em> be combined into one field-value, according to the algorithm defined in <a href="#header.fields" title="Header Fields">Section 3.2</a>, before determining the message body length. 1382 1382 </p> 1383 <p id="rfc.section.3.3.1.p.7">Unlike <a href="p2-semantics.html#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 9.4</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), Transfer-Encoding is a property of the message, not of the payload, and thus <em class="bcp14">MAY</em> be added or removed by any implementation along the request/response chain. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other header fields not defined by this specification.1383 <p id="rfc.section.3.3.1.p.7">Unlike <a href="p2-semantics.html#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 8.4</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), Transfer-Encoding is a property of the message, not of the payload, and thus <em class="bcp14">MAY</em> be added or removed by any implementation along the request/response chain. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other header fields not defined by this specification. 1384 1384 </p> 1385 1385 <p id="rfc.section.3.3.1.p.8">Transfer-Encoding <em class="bcp14">MAY</em> be sent in a response to a HEAD request or in a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response (<a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>) to a GET request, neither of which includes a message body, to indicate that the origin server would have applied a transfer … … 1655 1655 </p> 1656 1656 <p id="rfc.section.4.3.p.7">When multiple transfer-codings are acceptable, the client <em class="bcp14">MAY</em> rank the codings by preference using a case-insensitive "q" parameter (similar to the qvalues used in content negotiation 1657 fields, <a href="p2-semantics.html#quality.values" title="Quality Values">Section 6.3.1</a> of <a href="#Part2" id="rfc.xref.Part2.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). The rank value is a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred;1657 fields, <a href="p2-semantics.html#quality.values" title="Quality Values">Section 5.3.1</a> of <a href="#Part2" id="rfc.xref.Part2.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). The rank value is a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred; 1658 1658 a value of 0 means "not acceptable". 1659 1659 </p> … … 1735 1735 </p> 1736 1736 <div id="authority-form"> 1737 <p id="rfc.section.5.3.p.13"><span id="rfc.iref.a.3"></span> The authority-form of request-target is only used for CONNECT requests (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 5.3.6</a> of <a href="#Part2" id="rfc.xref.Part2.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When making a CONNECT request to establish a tunnel through one or more proxies, a client <em class="bcp14">MUST</em> send only the target URI's authority component (excluding any userinfo) as the request-target. For example,1737 <p id="rfc.section.5.3.p.13"><span id="rfc.iref.a.3"></span> The authority-form of request-target is only used for CONNECT requests (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 4.3.6</a> of <a href="#Part2" id="rfc.xref.Part2.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When making a CONNECT request to establish a tunnel through one or more proxies, a client <em class="bcp14">MUST</em> send only the target URI's authority component (excluding any userinfo) as the request-target. For example, 1738 1738 </p> 1739 1739 </div> 1740 1740 <div id="rfc.figure.u.41"></div><pre class="text2">CONNECT www.example.com:80 HTTP/1.1 1741 1741 </pre><div id="asterisk-form"> 1742 <p id="rfc.section.5.3.p.15"><span id="rfc.iref.a.4"></span> The asterisk-form of request-target is only used for a server-wide OPTIONS request (<a href="p2-semantics.html#OPTIONS" title="OPTIONS">Section 5.3.7</a> of <a href="#Part2" id="rfc.xref.Part2.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When a client wishes to request OPTIONS for the server as a whole, as opposed to a specific named resource of that server,1742 <p id="rfc.section.5.3.p.15"><span id="rfc.iref.a.4"></span> The asterisk-form of request-target is only used for a server-wide OPTIONS request (<a href="p2-semantics.html#OPTIONS" title="OPTIONS">Section 4.3.7</a> of <a href="#Part2" id="rfc.xref.Part2.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When a client wishes to request OPTIONS for the server as a whole, as opposed to a specific named resource of that server, 1743 1743 the client <em class="bcp14">MUST</em> send only "*" (%x2A) as the request-target. For example, 1744 1744 </p> … … 1876 1876 except as noted above to replace an empty path with "/" or "*". 1877 1877 </p> 1878 <p id="rfc.section.5.8.p.3">A non-transforming proxy <em class="bcp14">MUST</em> preserve the message payload (<a href=" #Part2" id="rfc.xref.Part2.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), though it <em class="bcp14">MAY</em> change the message body through application or removal of a transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 4</a>).1878 <p id="rfc.section.5.8.p.3">A non-transforming proxy <em class="bcp14">MUST</em> preserve the message payload (<a href="p2-semantics.html#payload" title="Message Payload">Section 3.1</a> of <a href="#Part2" id="rfc.xref.Part2.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), though it <em class="bcp14">MAY</em> change the message body through application or removal of a transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 4</a>). 1879 1879 </p> 1880 1880 <p id="rfc.section.5.8.p.4">A non-transforming proxy <em class="bcp14">SHOULD NOT</em> modify header fields that provide information about the end points of the communication chain, the resource state, or the … … 1884 1884 </p> 1885 1885 <ul> 1886 <li><a href="p2-semantics.html#header.allow" class="smpl">Allow</a> (<a href="p2-semantics.html#header.allow" title="Allow">Section 8.4.1</a> of <a href="#Part2" id="rfc.xref.Part2.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>)1887 </li> 1888 <li><a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> (<a href="p2-semantics.html#header.content-location" title="Content-Location">Section 3. 2.4</a> of <a href="#Part2" id="rfc.xref.Part2.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>)1886 <li><a href="p2-semantics.html#header.allow" class="smpl">Allow</a> (<a href="p2-semantics.html#header.allow" title="Allow">Section 7.4.1</a> of <a href="#Part2" id="rfc.xref.Part2.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) 1887 </li> 1888 <li><a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> (<a href="p2-semantics.html#header.content-location" title="Content-Location">Section 3.3.4</a> of <a href="#Part2" id="rfc.xref.Part2.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) 1889 1889 </li> 1890 1890 <li>Content-MD5 (<a href="http://tools.ietf.org/html/rfc2616#section-14.15">Section 14.15</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>) … … 1894 1894 <li><a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> (<a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>) 1895 1895 </li> 1896 <li><a href="p2-semantics.html#header.server" class="smpl">Server</a> (<a href="p2-semantics.html#header.server" title="Server">Section 8.4.2</a> of <a href="#Part2" id="rfc.xref.Part2.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>)1896 <li><a href="p2-semantics.html#header.server" class="smpl">Server</a> (<a href="p2-semantics.html#header.server" title="Server">Section 7.4.2</a> of <a href="#Part2" id="rfc.xref.Part2.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) 1897 1897 </li> 1898 1898 </ul> … … 1902 1902 </p> 1903 1903 <ul> 1904 <li><a href="p2-semantics.html#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="p2-semantics.html#header.content-encoding" title="Content-Encoding">Section 3. 2.2</a> of <a href="#Part2" id="rfc.xref.Part2.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>)1904 <li><a href="p2-semantics.html#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="p2-semantics.html#header.content-encoding" title="Content-Encoding">Section 3.3.2</a> of <a href="#Part2" id="rfc.xref.Part2.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) 1905 1905 </li> 1906 1906 <li><a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> (<a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>) 1907 1907 </li> 1908 <li><a href="p2-semantics.html#header.content-type" class="smpl">Content-Type</a> (<a href="p2-semantics.html#header.content-type" title="Content-Type">Section 3. 2.1</a> of <a href="#Part2" id="rfc.xref.Part2.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>)1908 <li><a href="p2-semantics.html#header.content-type" class="smpl">Content-Type</a> (<a href="p2-semantics.html#header.content-type" title="Content-Type">Section 3.3.1</a> of <a href="#Part2" id="rfc.xref.Part2.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) 1909 1909 </li> 1910 1910 </ul> … … 1919 1919 <p id="rfc.section.5.9.p.1">HTTP does not include a request identifier for associating a given request message with its corresponding one or more response 1920 1920 messages. Hence, it relies on the order of response arrival to correspond exactly to the order in which requests are made 1921 on the same connection. More than one response message per request only occurs when one or more informational responses (<a href="p2-semantics.html#status.1xx" class="smpl">1xx</a>, see <a href="p2-semantics.html#status.1xx" title="Informational 1xx">Section 7.2</a> of <a href="#Part2" id="rfc.xref.Part2.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) precede a final response to the same request.1921 on the same connection. More than one response message per request only occurs when one or more informational responses (<a href="p2-semantics.html#status.1xx" class="smpl">1xx</a>, see <a href="p2-semantics.html#status.1xx" title="Informational 1xx">Section 6.2</a> of <a href="#Part2" id="rfc.xref.Part2.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) precede a final response to the same request. 1922 1922 </p> 1923 1923 <p id="rfc.section.5.9.p.2">A client that uses persistent connections and sends more than one request per connection <em class="bcp14">MUST</em> maintain a list of outstanding requests in the order sent on that connection and <em class="bcp14">MUST</em> associate each received response message to the highest ordered request that has not yet received a final (non-<a href="p2-semantics.html#status.1xx" class="smpl">1xx</a>) response. … … 2040 2040 <p id="rfc.section.6.2.2.1.p.2">Clients which assume persistent connections and pipeline immediately after connection establishment <em class="bcp14">SHOULD</em> be prepared to retry their connection if the first pipelined attempt fails. If a client does such a retry, it <em class="bcp14">MUST NOT</em> pipeline before it knows the connection is persistent. Clients <em class="bcp14">MUST</em> also be prepared to resend their requests if the server closes the connection before sending all of the corresponding responses. 2041 2041 </p> 2042 <p id="rfc.section.6.2.2.1.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent request methods or non-idempotent sequences of request methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 5.2.2</a> of <a href="#Part2" id="rfc.xref.Part2.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to2042 <p id="rfc.section.6.2.2.1.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent request methods or non-idempotent sequences of request methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 4.2.2</a> of <a href="#Part2" id="rfc.xref.Part2.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to 2043 2043 send a non-idempotent request <em class="bcp14">SHOULD</em> wait to send that request until it has received the response status line for the previous request. 2044 2044 </p> 2045 2045 <h4 id="rfc.section.6.2.2.2"><a href="#rfc.section.6.2.2.2">6.2.2.2</a> <a id="persistent.retrying.requests" href="#persistent.retrying.requests">Retrying Requests</a></h4> 2046 2046 <p id="rfc.section.6.2.2.2.p.1">Senders can close the transport connection at any time. Therefore, clients, servers, and proxies <em class="bcp14">MUST</em> be able to recover from asynchronous close events. Client software <em class="bcp14">MAY</em> reopen the transport connection and retransmit the aborted sequence of requests without user interaction so long as the request 2047 sequence is idempotent (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 5.2.2</a> of <a href="#Part2" id="rfc.xref.Part2.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). Non-idempotent request methods or sequences <em class="bcp14">MUST NOT</em> be automatically retried, although user agents <em class="bcp14">MAY</em> offer a human operator the choice of retrying the request(s). Confirmation by user-agent software with semantic understanding2047 sequence is idempotent (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 4.2.2</a> of <a href="#Part2" id="rfc.xref.Part2.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). Non-idempotent request methods or sequences <em class="bcp14">MUST NOT</em> be automatically retried, although user agents <em class="bcp14">MAY</em> offer a human operator the choice of retrying the request(s). Confirmation by user-agent software with semantic understanding 2048 2048 of the application <em class="bcp14">MAY</em> substitute for user confirmation. The automatic retry <em class="bcp14">SHOULD NOT</em> be repeated if the second sequence of requests fails. 2049 2049 </p> … … 2138 2138 </p> 2139 2139 <p id="rfc.section.6.3.p.9">The Upgrade header field only applies to switching application-level protocols on the existing connection; it cannot be used 2140 to switch to a protocol on a different connection. For that purpose, it is more appropriate to use a <a href="p2-semantics.html#status.3xx" class="smpl">3xx (Redirection)</a> response (<a href="p2-semantics.html#status.3xx" title="Redirection 3xx">Section 7.4</a> of <a href="#Part2" id="rfc.xref.Part2.25"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>).2140 to switch to a protocol on a different connection. For that purpose, it is more appropriate to use a <a href="p2-semantics.html#status.3xx" class="smpl">3xx (Redirection)</a> response (<a href="p2-semantics.html#status.3xx" title="Redirection 3xx">Section 6.4</a> of <a href="#Part2" id="rfc.xref.Part2.25"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). 2141 2141 </p> 2142 2142 <p id="rfc.section.6.3.p.10">This specification only defines the protocol name "HTTP" for use by the family of Hypertext Transfer Protocols, as defined … … 2399 2399 <li>Pointer to specification text</li> 2400 2400 </ul> 2401 <p id="rfc.section.7.4.p.3">Names of transfer codings <em class="bcp14">MUST NOT</em> overlap with names of content codings (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 9.4</a> of <a href="#Part2" id="rfc.xref.Part2.26"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) unless the encoding transformation is identical, as is the case for the compression codings defined in <a href="#compression.codings" title="Compression Codings">Section 4.2</a>.2401 <p id="rfc.section.7.4.p.3">Names of transfer codings <em class="bcp14">MUST NOT</em> overlap with names of content codings (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 8.4</a> of <a href="#Part2" id="rfc.xref.Part2.26"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) unless the encoding transformation is identical, as is the case for the compression codings defined in <a href="#compression.codings" title="Compression Codings">Section 4.2</a>. 2402 2402 </p> 2403 2403 <p id="rfc.section.7.4.p.4">Values to be added to this name space require IETF Review (see <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a> of <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>), and <em class="bcp14">MUST</em> conform to the purpose of transfer coding defined in this section. Use of program names for the identification of encoding … … 2554 2554 that most implementations will choose substantially higher limits. 2555 2555 </p> 2556 <p id="rfc.section.8.6.p.3">This specification also provides a way for servers to reject messages that have request-targets that are too long (<a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 7.5.12</a> of <a href="#Part2" id="rfc.xref.Part2.27"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) or request entities that are too large (<a href="p2-semantics.html#status.4xx" title="Client Error 4xx">Section 7.5</a> of <a href="#Part2" id="rfc.xref.Part2.28"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>).2556 <p id="rfc.section.8.6.p.3">This specification also provides a way for servers to reject messages that have request-targets that are too long (<a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 6.5.12</a> of <a href="#Part2" id="rfc.xref.Part2.27"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) or request entities that are too large (<a href="p2-semantics.html#status.4xx" title="Client Error 4xx">Section 6.5</a> of <a href="#Part2" id="rfc.xref.Part2.28"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). 2557 2557 </p> 2558 2558 <p id="rfc.section.8.6.p.4">Recipients <em class="bcp14">SHOULD</em> carefully limit the extent to which they read other fields, including (but not limited to) request methods, response status … … 3632 3632 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.1</a>, <a href="#rfc.xref.Part2.3">2.3</a>, <a href="#rfc.xref.Part2.4">2.7</a>, <a href="#rfc.xref.Part2.5">2.7.1</a>, <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.7">3.1.1</a>, <a href="#rfc.xref.Part2.8">3.1.2</a>, <a href="#rfc.xref.Part2.9">3.2</a>, <a href="#rfc.xref.Part2.10">3.2</a>, <a href="#rfc.xref.Part2.11">3.3.1</a>, <a href="#rfc.xref.Part2.12">4.3</a>, <a href="#rfc.xref.Part2.13">5.1</a>, <a href="#rfc.xref.Part2.14">5.3</a>, <a href="#rfc.xref.Part2.15">5.3</a>, <a href="#rfc.xref.Part2.16">5.8</a>, <a href="#rfc.xref.Part2.17">5.8</a>, <a href="#rfc.xref.Part2.18">5.8</a>, <a href="#rfc.xref.Part2.19">5.8</a>, <a href="#rfc.xref.Part2.20">5.8</a>, <a href="#rfc.xref.Part2.21">5.8</a>, <a href="#rfc.xref.Part2.22">5.9</a>, <a href="#rfc.xref.Part2.23">6.2.2.1</a>, <a href="#rfc.xref.Part2.24">6.2.2.2</a>, <a href="#rfc.xref.Part2.25">6.3</a>, <a href="#rfc.xref.Part2.26">7.4</a>, <a href="#rfc.xref.Part2.27">8.6</a>, <a href="#rfc.xref.Part2.28">8.6</a>, <a href="#Part2"><b>10.1</b></a><ul> 3633 3633 <li><em>Section 2</em> <a href="#rfc.xref.Part2.4">2.7</a></li> 3634 <li><em>Section 3.2.1</em> <a href="#rfc.xref.Part2.21">5.8</a></li> 3635 <li><em>Section 3.2.2</em> <a href="#rfc.xref.Part2.20">5.8</a></li> 3636 <li><em>Section 3.2.4</em> <a href="#rfc.xref.Part2.18">5.8</a></li> 3637 <li><em>Section 5</em> <a href="#rfc.xref.Part2.6">3.1.1</a></li> 3638 <li><em>Section 5.2.2</em> <a href="#rfc.xref.Part2.23">6.2.2.1</a>, <a href="#rfc.xref.Part2.24">6.2.2.2</a></li> 3639 <li><em>Section 5.3.6</em> <a href="#rfc.xref.Part2.14">5.3</a></li> 3640 <li><em>Section 5.3.7</em> <a href="#rfc.xref.Part2.15">5.3</a></li> 3641 <li><em>Section 6.3.1</em> <a href="#rfc.xref.Part2.12">4.3</a></li> 3642 <li><em>Section 7</em> <a href="#rfc.xref.Part2.5">2.7.1</a>, <a href="#rfc.xref.Part2.8">3.1.2</a></li> 3643 <li><em>Section 7.2</em> <a href="#rfc.xref.Part2.22">5.9</a></li> 3644 <li><em>Section 7.3.4</em> <a href="#rfc.xref.Part2.3">2.3</a></li> 3645 <li><em>Section 7.4</em> <a href="#rfc.xref.Part2.25">6.3</a></li> 3646 <li><em>Section 7.5</em> <a href="#rfc.xref.Part2.28">8.6</a></li> 3647 <li><em>Section 7.5.12</em> <a href="#rfc.xref.Part2.7">3.1.1</a>, <a href="#rfc.xref.Part2.27">8.6</a></li> 3648 <li><em>Section 8.2.1</em> <a href="#rfc.xref.Part2.9">3.2</a></li> 3649 <li><em>Section 8.4.1</em> <a href="#rfc.xref.Part2.17">5.8</a></li> 3650 <li><em>Section 8.4.2</em> <a href="#rfc.xref.Part2.19">5.8</a></li> 3651 <li><em>Section 9.4</em> <a href="#rfc.xref.Part2.11">3.3.1</a>, <a href="#rfc.xref.Part2.26">7.4</a></li> 3652 <li><em>Section 10.3</em> <a href="#rfc.xref.Part2.10">3.2</a></li> 3634 <li><em>Section 3.1</em> <a href="#rfc.xref.Part2.16">5.8</a></li> 3635 <li><em>Section 3.3.1</em> <a href="#rfc.xref.Part2.21">5.8</a></li> 3636 <li><em>Section 3.3.2</em> <a href="#rfc.xref.Part2.20">5.8</a></li> 3637 <li><em>Section 3.3.4</em> <a href="#rfc.xref.Part2.18">5.8</a></li> 3638 <li><em>Section 4</em> <a href="#rfc.xref.Part2.6">3.1.1</a></li> 3639 <li><em>Section 4.2.2</em> <a href="#rfc.xref.Part2.23">6.2.2.1</a>, <a href="#rfc.xref.Part2.24">6.2.2.2</a></li> 3640 <li><em>Section 4.3.6</em> <a href="#rfc.xref.Part2.14">5.3</a></li> 3641 <li><em>Section 4.3.7</em> <a href="#rfc.xref.Part2.15">5.3</a></li> 3642 <li><em>Section 5.3.1</em> <a href="#rfc.xref.Part2.12">4.3</a></li> 3643 <li><em>Section 6</em> <a href="#rfc.xref.Part2.5">2.7.1</a>, <a href="#rfc.xref.Part2.8">3.1.2</a></li> 3644 <li><em>Section 6.2</em> <a href="#rfc.xref.Part2.22">5.9</a></li> 3645 <li><em>Section 6.3.4</em> <a href="#rfc.xref.Part2.3">2.3</a></li> 3646 <li><em>Section 6.4</em> <a href="#rfc.xref.Part2.25">6.3</a></li> 3647 <li><em>Section 6.5</em> <a href="#rfc.xref.Part2.28">8.6</a></li> 3648 <li><em>Section 6.5.12</em> <a href="#rfc.xref.Part2.7">3.1.1</a>, <a href="#rfc.xref.Part2.27">8.6</a></li> 3649 <li><em>Section 7.2.1</em> <a href="#rfc.xref.Part2.9">3.2</a></li> 3650 <li><em>Section 7.4.1</em> <a href="#rfc.xref.Part2.17">5.8</a></li> 3651 <li><em>Section 7.4.2</em> <a href="#rfc.xref.Part2.19">5.8</a></li> 3652 <li><em>Section 8.4</em> <a href="#rfc.xref.Part2.11">3.3.1</a>, <a href="#rfc.xref.Part2.26">7.4</a></li> 3653 <li><em>Section 9.3</em> <a href="#rfc.xref.Part2.10">3.2</a></li> 3653 3654 <li><em>Appendix A</em> <a href="#rfc.xref.Part2.2">2.1</a></li> 3654 3655 </ul> -
draft-ietf-httpbis/latest/p1-messaging.xml
r1904 r1905 19 19 <!ENTITY caching-overview "<xref target='Part6' x:rel='#caching.overview' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 20 20 <!ENTITY cache-incomplete "<xref target='Part6' x:rel='#response.cacheability' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 21 <!ENTITY payload "<xref target='Part2' x mlns:x='http://purl.org/net/xml2rfc/ext'/>">21 <!ENTITY payload "<xref target='Part2' x:rel='#payload' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 22 22 <!ENTITY media-types "<xref target='Part2' x:rel='#media.types' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 23 23 <!ENTITY content-codings "<xref target='Part2' x:rel='#content.codings' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> -
draft-ietf-httpbis/latest/p2-semantics.html
r1901 r1905 449 449 } 450 450 @bottom-center { 451 content: "Expires March 2 1, 2013";451 content: "Expires March 22, 2013"; 452 452 } 453 453 @bottom-right { … … 474 474 <link rel="Chapter" title="2 Resource" href="#rfc.section.2"> 475 475 <link rel="Chapter" title="3 Representation" href="#rfc.section.3"> 476 <link rel="Chapter" title="4 Payload" href="#rfc.section.4"> 477 <link rel="Chapter" title="5 Request Methods" href="#rfc.section.5"> 478 <link rel="Chapter" title="6 Request Header Fields" href="#rfc.section.6"> 479 <link rel="Chapter" title="7 Response Status Codes" href="#rfc.section.7"> 480 <link rel="Chapter" title="8 Response Header Fields" href="#rfc.section.8"> 481 <link rel="Chapter" title="9 Protocol Parameters" href="#rfc.section.9"> 482 <link rel="Chapter" title="10 IANA Considerations" href="#rfc.section.10"> 483 <link rel="Chapter" title="11 Security Considerations" href="#rfc.section.11"> 484 <link rel="Chapter" title="12 Acknowledgments" href="#rfc.section.12"> 485 <link rel="Chapter" href="#rfc.section.13" title="13 References"> 476 <link rel="Chapter" title="4 Request Methods" href="#rfc.section.4"> 477 <link rel="Chapter" title="5 Request Header Fields" href="#rfc.section.5"> 478 <link rel="Chapter" title="6 Response Status Codes" href="#rfc.section.6"> 479 <link rel="Chapter" title="7 Response Header Fields" href="#rfc.section.7"> 480 <link rel="Chapter" title="8 Protocol Parameters" href="#rfc.section.8"> 481 <link rel="Chapter" title="9 IANA Considerations" href="#rfc.section.9"> 482 <link rel="Chapter" title="10 Security Considerations" href="#rfc.section.10"> 483 <link rel="Chapter" title="11 Acknowledgments" href="#rfc.section.11"> 484 <link rel="Chapter" href="#rfc.section.12" title="12 References"> 486 485 <link rel="Appendix" title="A Differences between HTTP and MIME" href="#rfc.section.A"> 487 486 <link rel="Appendix" title="B Additional Features" href="#rfc.section.B"> … … 498 497 <meta name="dct.creator" content="Reschke, J. F."> 499 498 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest"> 500 <meta name="dct.issued" scheme="ISO8601" content="2012-09-1 7">499 <meta name="dct.issued" scheme="ISO8601" content="2012-09-18"> 501 500 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 502 501 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation."> … … 529 528 </tr> 530 529 <tr> 531 <td class="left">Expires: March 2 1, 2013</td>530 <td class="left">Expires: March 22, 2013</td> 532 531 <td class="right">greenbytes</td> 533 532 </tr> 534 533 <tr> 535 534 <td class="left"></td> 536 <td class="right">September 1 7, 2012</td>535 <td class="right">September 18, 2012</td> 537 536 </tr> 538 537 </tbody> … … 561 560 in progress”. 562 561 </p> 563 <p>This Internet-Draft will expire on March 2 1, 2013.</p>562 <p>This Internet-Draft will expire on March 22, 2013.</p> 564 563 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 565 564 <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 586 585 <li><a href="#rfc.section.2">2.</a> <a href="#resource">Resource</a></li> 587 586 <li><a href="#rfc.section.3">3.</a> <a href="#representation">Representation</a><ul> 588 <li><a href="#rfc.section.3.1">3.1</a> <a href="#associating.representation.with.resource">Associating a Representation with its Resource</a></li> 589 <li><a href="#rfc.section.3.2">3.2</a> <a href="#representation.header.fields">Representation Header Fields</a><ul> 590 <li><a href="#rfc.section.3.2.1">3.2.1</a> <a href="#header.content-type">Content-Type</a></li> 591 <li><a href="#rfc.section.3.2.2">3.2.2</a> <a href="#header.content-encoding">Content-Encoding</a></li> 592 <li><a href="#rfc.section.3.2.3">3.2.3</a> <a href="#header.content-language">Content-Language</a></li> 593 <li><a href="#rfc.section.3.2.4">3.2.4</a> <a href="#header.content-location">Content-Location</a></li> 587 <li><a href="#rfc.section.3.1">3.1</a> <a href="#payload">Message Payload</a></li> 588 <li><a href="#rfc.section.3.2">3.2</a> <a href="#associating.representation.with.resource">Associating a Representation with its Resource</a></li> 589 <li><a href="#rfc.section.3.3">3.3</a> <a href="#representation.header.fields">Representation Header Fields</a><ul> 590 <li><a href="#rfc.section.3.3.1">3.3.1</a> <a href="#header.content-type">Content-Type</a></li> 591 <li><a href="#rfc.section.3.3.2">3.3.2</a> <a href="#header.content-encoding">Content-Encoding</a></li> 592 <li><a href="#rfc.section.3.3.3">3.3.3</a> <a href="#header.content-language">Content-Language</a></li> 593 <li><a href="#rfc.section.3.3.4">3.3.4</a> <a href="#header.content-location">Content-Location</a></li> 594 594 </ul> 595 595 </li> 596 <li><a href="#rfc.section.3. 3">3.3</a> <a href="#selected.representation">Selected Representation Header Fields</a></li>597 <li><a href="#rfc.section.3. 4">3.4</a> <a href="#representation.data">Representation Data</a></li>598 <li><a href="#rfc.section.3. 5">3.5</a> <a href="#content.negotiation">Content Negotiation</a><ul>599 <li><a href="#rfc.section.3. 5.1">3.5.1</a> <a href="#proactive.negotiation">Proactive Negotiation</a></li>600 <li><a href="#rfc.section.3. 5.2">3.5.2</a> <a href="#reactive.negotiation">Reactive Negotiation</a></li>596 <li><a href="#rfc.section.3.4">3.4</a> <a href="#selected.representation">Selected Representation Header Fields</a></li> 597 <li><a href="#rfc.section.3.5">3.5</a> <a href="#representation.data">Representation Data</a></li> 598 <li><a href="#rfc.section.3.6">3.6</a> <a href="#content.negotiation">Content Negotiation</a><ul> 599 <li><a href="#rfc.section.3.6.1">3.6.1</a> <a href="#proactive.negotiation">Proactive Negotiation</a></li> 600 <li><a href="#rfc.section.3.6.2">3.6.2</a> <a href="#reactive.negotiation">Reactive Negotiation</a></li> 601 601 </ul> 602 602 </li> 603 603 </ul> 604 604 </li> 605 <li><a href="#rfc.section.4">4.</a> <a href="#payload">Payload</a><ul> 606 <li><a href="#rfc.section.4.1">4.1</a> <a href="#payload.header.fields">Payload Header Fields</a></li> 607 <li><a href="#rfc.section.4.2">4.2</a> <a href="#payload.body">Payload Body</a></li> 608 </ul> 609 </li> 610 <li><a href="#rfc.section.5">5.</a> <a href="#methods">Request Methods</a><ul> 611 <li><a href="#rfc.section.5.1">5.1</a> <a href="#method.overview">Overview</a></li> 612 <li><a href="#rfc.section.5.2">5.2</a> <a href="#method.properties">Common Method Properties</a><ul> 613 <li><a href="#rfc.section.5.2.1">5.2.1</a> <a href="#safe.methods">Safe Methods</a></li> 614 <li><a href="#rfc.section.5.2.2">5.2.2</a> <a href="#idempotent.methods">Idempotent Methods</a></li> 615 <li><a href="#rfc.section.5.2.3">5.2.3</a> <a href="#cacheable.methods">Cacheable Methods</a></li> 605 <li><a href="#rfc.section.4">4.</a> <a href="#methods">Request Methods</a><ul> 606 <li><a href="#rfc.section.4.1">4.1</a> <a href="#method.overview">Overview</a></li> 607 <li><a href="#rfc.section.4.2">4.2</a> <a href="#method.properties">Common Method Properties</a><ul> 608 <li><a href="#rfc.section.4.2.1">4.2.1</a> <a href="#safe.methods">Safe Methods</a></li> 609 <li><a href="#rfc.section.4.2.2">4.2.2</a> <a href="#idempotent.methods">Idempotent Methods</a></li> 610 <li><a href="#rfc.section.4.2.3">4.2.3</a> <a href="#cacheable.methods">Cacheable Methods</a></li> 616 611 </ul> 617 612 </li> 618 <li><a href="#rfc.section. 5.3">5.3</a> <a href="#method.definitions">Method Definitions</a><ul>619 <li><a href="#rfc.section. 5.3.1">5.3.1</a> <a href="#GET">GET</a></li>620 <li><a href="#rfc.section. 5.3.2">5.3.2</a> <a href="#HEAD">HEAD</a></li>621 <li><a href="#rfc.section. 5.3.3">5.3.3</a> <a href="#POST">POST</a></li>622 <li><a href="#rfc.section. 5.3.4">5.3.4</a> <a href="#PUT">PUT</a></li>623 <li><a href="#rfc.section. 5.3.5">5.3.5</a> <a href="#DELETE">DELETE</a></li>624 <li><a href="#rfc.section. 5.3.6">5.3.6</a> <a href="#CONNECT">CONNECT</a></li>625 <li><a href="#rfc.section. 5.3.7">5.3.7</a> <a href="#OPTIONS">OPTIONS</a></li>626 <li><a href="#rfc.section. 5.3.8">5.3.8</a> <a href="#TRACE">TRACE</a></li>613 <li><a href="#rfc.section.4.3">4.3</a> <a href="#method.definitions">Method Definitions</a><ul> 614 <li><a href="#rfc.section.4.3.1">4.3.1</a> <a href="#GET">GET</a></li> 615 <li><a href="#rfc.section.4.3.2">4.3.2</a> <a href="#HEAD">HEAD</a></li> 616 <li><a href="#rfc.section.4.3.3">4.3.3</a> <a href="#POST">POST</a></li> 617 <li><a href="#rfc.section.4.3.4">4.3.4</a> <a href="#PUT">PUT</a></li> 618 <li><a href="#rfc.section.4.3.5">4.3.5</a> <a href="#DELETE">DELETE</a></li> 619 <li><a href="#rfc.section.4.3.6">4.3.6</a> <a href="#CONNECT">CONNECT</a></li> 620 <li><a href="#rfc.section.4.3.7">4.3.7</a> <a href="#OPTIONS">OPTIONS</a></li> 621 <li><a href="#rfc.section.4.3.8">4.3.8</a> <a href="#TRACE">TRACE</a></li> 627 622 </ul> 628 623 </li> 629 624 </ul> 630 625 </li> 631 <li><a href="#rfc.section. 6">6.</a> <a href="#request.header.fields">Request Header Fields</a><ul>632 <li><a href="#rfc.section. 6.1">6.1</a> <a href="#request.controls">Controls</a><ul>633 <li><a href="#rfc.section. 6.1.1">6.1.1</a> <a href="#header.max-forwards">Max-Forwards</a></li>634 <li><a href="#rfc.section. 6.1.2">6.1.2</a> <a href="#header.expect">Expect</a><ul>635 <li><a href="#rfc.section. 6.1.2.1">6.1.2.1</a> <a href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></li>626 <li><a href="#rfc.section.5">5.</a> <a href="#request.header.fields">Request Header Fields</a><ul> 627 <li><a href="#rfc.section.5.1">5.1</a> <a href="#request.controls">Controls</a><ul> 628 <li><a href="#rfc.section.5.1.1">5.1.1</a> <a href="#header.max-forwards">Max-Forwards</a></li> 629 <li><a href="#rfc.section.5.1.2">5.1.2</a> <a href="#header.expect">Expect</a><ul> 630 <li><a href="#rfc.section.5.1.2.1">5.1.2.1</a> <a href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></li> 636 631 </ul> 637 632 </li> 638 633 </ul> 639 634 </li> 640 <li><a href="#rfc.section. 6.2">6.2</a> <a href="#request.conditionals">Conditionals</a></li>641 <li><a href="#rfc.section. 6.3">6.3</a> <a href="#request.conneg">Content Negotiation</a><ul>642 <li><a href="#rfc.section. 6.3.1">6.3.1</a> <a href="#quality.values">Quality Values</a></li>643 <li><a href="#rfc.section. 6.3.2">6.3.2</a> <a href="#header.accept">Accept</a></li>644 <li><a href="#rfc.section. 6.3.3">6.3.3</a> <a href="#header.accept-charset">Accept-Charset</a></li>645 <li><a href="#rfc.section. 6.3.4">6.3.4</a> <a href="#header.accept-encoding">Accept-Encoding</a></li>646 <li><a href="#rfc.section. 6.3.5">6.3.5</a> <a href="#header.accept-language">Accept-Language</a></li>635 <li><a href="#rfc.section.5.2">5.2</a> <a href="#request.conditionals">Conditionals</a></li> 636 <li><a href="#rfc.section.5.3">5.3</a> <a href="#request.conneg">Content Negotiation</a><ul> 637 <li><a href="#rfc.section.5.3.1">5.3.1</a> <a href="#quality.values">Quality Values</a></li> 638 <li><a href="#rfc.section.5.3.2">5.3.2</a> <a href="#header.accept">Accept</a></li> 639 <li><a href="#rfc.section.5.3.3">5.3.3</a> <a href="#header.accept-charset">Accept-Charset</a></li> 640 <li><a href="#rfc.section.5.3.4">5.3.4</a> <a href="#header.accept-encoding">Accept-Encoding</a></li> 641 <li><a href="#rfc.section.5.3.5">5.3.5</a> <a href="#header.accept-language">Accept-Language</a></li> 647 642 </ul> 648 643 </li> 649 <li><a href="#rfc.section. 6.4">6.4</a> <a href="#request.auth">Authentication</a></li>650 <li><a href="#rfc.section. 6.5">6.5</a> <a href="#request.context">Context</a><ul>651 <li><a href="#rfc.section. 6.5.1">6.5.1</a> <a href="#header.from">From</a></li>652 <li><a href="#rfc.section. 6.5.2">6.5.2</a> <a href="#header.referer">Referer</a></li>653 <li><a href="#rfc.section. 6.5.3">6.5.3</a> <a href="#header.user-agent">User-Agent</a></li>644 <li><a href="#rfc.section.5.4">5.4</a> <a href="#request.auth">Authentication</a></li> 645 <li><a href="#rfc.section.5.5">5.5</a> <a href="#request.context">Context</a><ul> 646 <li><a href="#rfc.section.5.5.1">5.5.1</a> <a href="#header.from">From</a></li> 647 <li><a href="#rfc.section.5.5.2">5.5.2</a> <a href="#header.referer">Referer</a></li> 648 <li><a href="#rfc.section.5.5.3">5.5.3</a> <a href="#header.user-agent">User-Agent</a></li> 654 649 </ul> 655 650 </li> 656 651 </ul> 657 652 </li> 658 <li><a href="#rfc.section. 7">7.</a> <a href="#status.codes">Response Status Codes</a><ul>659 <li><a href="#rfc.section. 7.1">7.1</a> <a href="#overview.of.status.codes">Overview of Status Codes</a></li>660 <li><a href="#rfc.section. 7.2">7.2</a> <a href="#status.1xx">Informational 1xx</a><ul>661 <li><a href="#rfc.section. 7.2.1">7.2.1</a> <a href="#status.100">100 Continue</a></li>662 <li><a href="#rfc.section. 7.2.2">7.2.2</a> <a href="#status.101">101 Switching Protocols</a></li>653 <li><a href="#rfc.section.6">6.</a> <a href="#status.codes">Response Status Codes</a><ul> 654 <li><a href="#rfc.section.6.1">6.1</a> <a href="#overview.of.status.codes">Overview of Status Codes</a></li> 655 <li><a href="#rfc.section.6.2">6.2</a> <a href="#status.1xx">Informational 1xx</a><ul> 656 <li><a href="#rfc.section.6.2.1">6.2.1</a> <a href="#status.100">100 Continue</a></li> 657 <li><a href="#rfc.section.6.2.2">6.2.2</a> <a href="#status.101">101 Switching Protocols</a></li> 663 658 </ul> 664 659 </li> 665 <li><a href="#rfc.section. 7.3">7.3</a> <a href="#status.2xx">Successful 2xx</a><ul>666 <li><a href="#rfc.section. 7.3.1">7.3.1</a> <a href="#status.200">200 OK</a></li>667 <li><a href="#rfc.section. 7.3.2">7.3.2</a> <a href="#status.201">201 Created</a></li>668 <li><a href="#rfc.section. 7.3.3">7.3.3</a> <a href="#status.202">202 Accepted</a></li>669 <li><a href="#rfc.section. 7.3.4">7.3.4</a> <a href="#status.203">203 Non-Authoritative Information</a></li>670 <li><a href="#rfc.section. 7.3.5">7.3.5</a> <a href="#status.204">204 No Content</a></li>671 <li><a href="#rfc.section. 7.3.6">7.3.6</a> <a href="#status.205">205 Reset Content</a></li>660 <li><a href="#rfc.section.6.3">6.3</a> <a href="#status.2xx">Successful 2xx</a><ul> 661 <li><a href="#rfc.section.6.3.1">6.3.1</a> <a href="#status.200">200 OK</a></li> 662 <li><a href="#rfc.section.6.3.2">6.3.2</a> <a href="#status.201">201 Created</a></li> 663 <li><a href="#rfc.section.6.3.3">6.3.3</a> <a href="#status.202">202 Accepted</a></li> 664 <li><a href="#rfc.section.6.3.4">6.3.4</a> <a href="#status.203">203 Non-Authoritative Information</a></li> 665 <li><a href="#rfc.section.6.3.5">6.3.5</a> <a href="#status.204">204 No Content</a></li> 666 <li><a href="#rfc.section.6.3.6">6.3.6</a> <a href="#status.205">205 Reset Content</a></li> 672 667 </ul> 673 668 </li> 674 <li><a href="#rfc.section. 7.4">7.4</a> <a href="#status.3xx">Redirection 3xx</a><ul>675 <li><a href="#rfc.section. 7.4.1">7.4.1</a> <a href="#status.300">300 Multiple Choices</a></li>676 <li><a href="#rfc.section. 7.4.2">7.4.2</a> <a href="#status.301">301 Moved Permanently</a></li>677 <li><a href="#rfc.section. 7.4.3">7.4.3</a> <a href="#status.302">302 Found</a></li>678 <li><a href="#rfc.section. 7.4.4">7.4.4</a> <a href="#status.303">303 See Other</a></li>679 <li><a href="#rfc.section. 7.4.5">7.4.5</a> <a href="#status.305">305 Use Proxy</a></li>680 <li><a href="#rfc.section. 7.4.6">7.4.6</a> <a href="#status.306">306 (Unused)</a></li>681 <li><a href="#rfc.section. 7.4.7">7.4.7</a> <a href="#status.307">307 Temporary Redirect</a></li>669 <li><a href="#rfc.section.6.4">6.4</a> <a href="#status.3xx">Redirection 3xx</a><ul> 670 <li><a href="#rfc.section.6.4.1">6.4.1</a> <a href="#status.300">300 Multiple Choices</a></li> 671 <li><a href="#rfc.section.6.4.2">6.4.2</a> <a href="#status.301">301 Moved Permanently</a></li> 672 <li><a href="#rfc.section.6.4.3">6.4.3</a> <a href="#status.302">302 Found</a></li> 673 <li><a href="#rfc.section.6.4.4">6.4.4</a> <a href="#status.303">303 See Other</a></li> 674 <li><a href="#rfc.section.6.4.5">6.4.5</a> <a href="#status.305">305 Use Proxy</a></li> 675 <li><a href="#rfc.section.6.4.6">6.4.6</a> <a href="#status.306">306 (Unused)</a></li> 676 <li><a href="#rfc.section.6.4.7">6.4.7</a> <a href="#status.307">307 Temporary Redirect</a></li> 682 677 </ul> 683 678 </li> 684 <li><a href="#rfc.section. 7.5">7.5</a> <a href="#status.4xx">Client Error 4xx</a><ul>685 <li><a href="#rfc.section. 7.5.1">7.5.1</a> <a href="#status.400">400 Bad Request</a></li>686 <li><a href="#rfc.section. 7.5.2">7.5.2</a> <a href="#status.402">402 Payment Required</a></li>687 <li><a href="#rfc.section. 7.5.3">7.5.3</a> <a href="#status.403">403 Forbidden</a></li>688 <li><a href="#rfc.section. 7.5.4">7.5.4</a> <a href="#status.404">404 Not Found</a></li>689 <li><a href="#rfc.section. 7.5.5">7.5.5</a> <a href="#status.405">405 Method Not Allowed</a></li>690 <li><a href="#rfc.section. 7.5.6">7.5.6</a> <a href="#status.406">406 Not Acceptable</a></li>691 <li><a href="#rfc.section. 7.5.7">7.5.7</a> <a href="#status.408">408 Request Timeout</a></li>692 <li><a href="#rfc.section. 7.5.8">7.5.8</a> <a href="#status.409">409 Conflict</a></li>693 <li><a href="#rfc.section. 7.5.9">7.5.9</a> <a href="#status.410">410 Gone</a></li>694 <li><a href="#rfc.section. 7.5.10">7.5.10</a> <a href="#status.411">411 Length Required</a></li>695 <li><a href="#rfc.section. 7.5.11">7.5.11</a> <a href="#status.413">413 Request Representation Too Large</a></li>696 <li><a href="#rfc.section. 7.5.12">7.5.12</a> <a href="#status.414">414 URI Too Long</a></li>697 <li><a href="#rfc.section. 7.5.13">7.5.13</a> <a href="#status.415">415 Unsupported Media Type</a></li>698 <li><a href="#rfc.section. 7.5.14">7.5.14</a> <a href="#status.417">417 Expectation Failed</a></li>699 <li><a href="#rfc.section. 7.5.15">7.5.15</a> <a href="#status.426">426 Upgrade Required</a></li>679 <li><a href="#rfc.section.6.5">6.5</a> <a href="#status.4xx">Client Error 4xx</a><ul> 680 <li><a href="#rfc.section.6.5.1">6.5.1</a> <a href="#status.400">400 Bad Request</a></li> 681 <li><a href="#rfc.section.6.5.2">6.5.2</a> <a href="#status.402">402 Payment Required</a></li> 682 <li><a href="#rfc.section.6.5.3">6.5.3</a> <a href="#status.403">403 Forbidden</a></li> 683 <li><a href="#rfc.section.6.5.4">6.5.4</a> <a href="#status.404">404 Not Found</a></li> 684 <li><a href="#rfc.section.6.5.5">6.5.5</a> <a href="#status.405">405 Method Not Allowed</a></li> 685 <li><a href="#rfc.section.6.5.6">6.5.6</a> <a href="#status.406">406 Not Acceptable</a></li> 686 <li><a href="#rfc.section.6.5.7">6.5.7</a> <a href="#status.408">408 Request Timeout</a></li> 687 <li><a href="#rfc.section.6.5.8">6.5.8</a> <a href="#status.409">409 Conflict</a></li> 688 <li><a href="#rfc.section.6.5.9">6.5.9</a> <a href="#status.410">410 Gone</a></li> 689 <li><a href="#rfc.section.6.5.10">6.5.10</a> <a href="#status.411">411 Length Required</a></li> 690 <li><a href="#rfc.section.6.5.11">6.5.11</a> <a href="#status.413">413 Request Representation Too Large</a></li> 691 <li><a href="#rfc.section.6.5.12">6.5.12</a> <a href="#status.414">414 URI Too Long</a></li> 692 <li><a href="#rfc.section.6.5.13">6.5.13</a> <a href="#status.415">415 Unsupported Media Type</a></li> 693 <li><a href="#rfc.section.6.5.14">6.5.14</a> <a href="#status.417">417 Expectation Failed</a></li> 694 <li><a href="#rfc.section.6.5.15">6.5.15</a> <a href="#status.426">426 Upgrade Required</a></li> 700 695 </ul> 701 696 </li> 702 <li><a href="#rfc.section. 7.6">7.6</a> <a href="#status.5xx">Server Error 5xx</a><ul>703 <li><a href="#rfc.section. 7.6.1">7.6.1</a> <a href="#status.500">500 Internal Server Error</a></li>704 <li><a href="#rfc.section. 7.6.2">7.6.2</a> <a href="#status.501">501 Not Implemented</a></li>705 <li><a href="#rfc.section. 7.6.3">7.6.3</a> <a href="#status.502">502 Bad Gateway</a></li>706 <li><a href="#rfc.section. 7.6.4">7.6.4</a> <a href="#status.503">503 Service Unavailable</a></li>707 <li><a href="#rfc.section. 7.6.5">7.6.5</a> <a href="#status.504">504 Gateway Timeout</a></li>708 <li><a href="#rfc.section. 7.6.6">7.6.6</a> <a href="#status.505">505 HTTP Version Not Supported</a></li>697 <li><a href="#rfc.section.6.6">6.6</a> <a href="#status.5xx">Server Error 5xx</a><ul> 698 <li><a href="#rfc.section.6.6.1">6.6.1</a> <a href="#status.500">500 Internal Server Error</a></li> 699 <li><a href="#rfc.section.6.6.2">6.6.2</a> <a href="#status.501">501 Not Implemented</a></li> 700 <li><a href="#rfc.section.6.6.3">6.6.3</a> <a href="#status.502">502 Bad Gateway</a></li> 701 <li><a href="#rfc.section.6.6.4">6.6.4</a> <a href="#status.503">503 Service Unavailable</a></li> 702 <li><a href="#rfc.section.6.6.5">6.6.5</a> <a href="#status.504">504 Gateway Timeout</a></li> 703 <li><a href="#rfc.section.6.6.6">6.6.6</a> <a href="#status.505">505 HTTP Version Not Supported</a></li> 709 704 </ul> 710 705 </li> 711 706 </ul> 712 707 </li> 713 <li><a href="#rfc.section. 8">8.</a> <a href="#response.header.fields">Response Header Fields</a><ul>714 <li><a href="#rfc.section. 8.1">8.1</a> <a href="#response.control.data">Control Data</a><ul>715 <li><a href="#rfc.section. 8.1.1">8.1.1</a> <a href="#header.location">Location</a></li>716 <li><a href="#rfc.section. 8.1.2">8.1.2</a> <a href="#header.retry-after">Retry-After</a></li>708 <li><a href="#rfc.section.7">7.</a> <a href="#response.header.fields">Response Header Fields</a><ul> 709 <li><a href="#rfc.section.7.1">7.1</a> <a href="#response.control.data">Control Data</a><ul> 710 <li><a href="#rfc.section.7.1.1">7.1.1</a> <a href="#header.location">Location</a></li> 711 <li><a href="#rfc.section.7.1.2">7.1.2</a> <a href="#header.retry-after">Retry-After</a></li> 717 712 </ul> 718 713 </li> 719 <li><a href="#rfc.section. 8.2">8.2</a> <a href="#response.cache.related">Cache-related</a><ul>720 <li><a href="#rfc.section. 8.2.1">8.2.1</a> <a href="#header.date">Date</a></li>721 <li><a href="#rfc.section. 8.2.2">8.2.2</a> <a href="#header.vary">Vary</a></li>714 <li><a href="#rfc.section.7.2">7.2</a> <a href="#response.cache.related">Cache-related</a><ul> 715 <li><a href="#rfc.section.7.2.1">7.2.1</a> <a href="#header.date">Date</a></li> 716 <li><a href="#rfc.section.7.2.2">7.2.2</a> <a href="#header.vary">Vary</a></li> 722 717 </ul> 723 718 </li> 724 <li><a href="#rfc.section. 8.3">8.3</a> <a href="#response.auth">Authentication Challenges</a></li>725 <li><a href="#rfc.section. 8.4">8.4</a> <a href="#response.inform">Informative</a><ul>726 <li><a href="#rfc.section. 8.4.1">8.4.1</a> <a href="#header.allow">Allow</a></li>727 <li><a href="#rfc.section. 8.4.2">8.4.2</a> <a href="#header.server">Server</a></li>719 <li><a href="#rfc.section.7.3">7.3</a> <a href="#response.auth">Authentication Challenges</a></li> 720 <li><a href="#rfc.section.7.4">7.4</a> <a href="#response.inform">Informative</a><ul> 721 <li><a href="#rfc.section.7.4.1">7.4.1</a> <a href="#header.allow">Allow</a></li> 722 <li><a href="#rfc.section.7.4.2">7.4.2</a> <a href="#header.server">Server</a></li> 728 723 </ul> 729 724 </li> 730 725 </ul> 731 726 </li> 732 <li><a href="#rfc.section. 9">9.</a> <a href="#protocol.parameters">Protocol Parameters</a><ul>733 <li><a href="#rfc.section. 9.1">9.1</a> <a href="#http.date">Date/Time Formats</a></li>734 <li><a href="#rfc.section. 9.2">9.2</a> <a href="#product.tokens">Product Tokens</a></li>735 <li><a href="#rfc.section. 9.3">9.3</a> <a href="#character.sets">Character Encodings (charset)</a></li>736 <li><a href="#rfc.section. 9.4">9.4</a> <a href="#content.codings">Content Codings</a></li>737 <li><a href="#rfc.section. 9.5">9.5</a> <a href="#media.types">Media Types</a><ul>738 <li><a href="#rfc.section. 9.5.1">9.5.1</a> <a href="#canonicalization.and.text.defaults">Canonicalization and Text Defaults</a></li>739 <li><a href="#rfc.section. 9.5.2">9.5.2</a> <a href="#multipart.types">Multipart Types</a></li>727 <li><a href="#rfc.section.8">8.</a> <a href="#protocol.parameters">Protocol Parameters</a><ul> 728 <li><a href="#rfc.section.8.1">8.1</a> <a href="#http.date">Date/Time Formats</a></li> 729 <li><a href="#rfc.section.8.2">8.2</a> <a href="#product.tokens">Product Tokens</a></li> 730 <li><a href="#rfc.section.8.3">8.3</a> <a href="#character.sets">Character Encodings (charset)</a></li> 731 <li><a href="#rfc.section.8.4">8.4</a> <a href="#content.codings">Content Codings</a></li> 732 <li><a href="#rfc.section.8.5">8.5</a> <a href="#media.types">Media Types</a><ul> 733 <li><a href="#rfc.section.8.5.1">8.5.1</a> <a href="#canonicalization.and.text.defaults">Canonicalization and Text Defaults</a></li> 734 <li><a href="#rfc.section.8.5.2">8.5.2</a> <a href="#multipart.types">Multipart Types</a></li> 740 735 </ul> 741 736 </li> 742 <li><a href="#rfc.section. 9.6">9.6</a> <a href="#language.tags">Language Tags</a></li>737 <li><a href="#rfc.section.8.6">8.6</a> <a href="#language.tags">Language Tags</a></li> 743 738 </ul> 744 739 </li> 745 <li><a href="#rfc.section. 10">10.</a> <a href="#IANA.considerations">IANA Considerations</a><ul>746 <li><a href="#rfc.section. 10.1">10.1</a> <a href="#method.registry">Method Registry</a><ul>747 <li><a href="#rfc.section. 10.1.1">10.1.1</a> <a href="#method.procedure">Procedure</a></li>748 <li><a href="#rfc.section. 10.1.2">10.1.2</a> <a href="#considerations.for.new.methods">Considerations for New Methods</a></li>749 <li><a href="#rfc.section. 10.1.3">10.1.3</a> <a href="#method.registration">Registrations</a></li>740 <li><a href="#rfc.section.9">9.</a> <a href="#IANA.considerations">IANA Considerations</a><ul> 741 <li><a href="#rfc.section.9.1">9.1</a> <a href="#method.registry">Method Registry</a><ul> 742 <li><a href="#rfc.section.9.1.1">9.1.1</a> <a href="#method.procedure">Procedure</a></li> 743 <li><a href="#rfc.section.9.1.2">9.1.2</a> <a href="#considerations.for.new.methods">Considerations for New Methods</a></li> 744 <li><a href="#rfc.section.9.1.3">9.1.3</a> <a href="#method.registration">Registrations</a></li> 750 745 </ul> 751 746 </li> 752 <li><a href="#rfc.section. 10.2">10.2</a> <a href="#status.code.registry">Status Code Registry</a><ul>753 <li><a href="#rfc.section. 10.2.1">10.2.1</a> <a href="#status.code.procedure">Procedure</a></li>754 <li><a href="#rfc.section. 10.2.2">10.2.2</a> <a href="#considerations.for.new.status.codes">Considerations for New Status Codes</a></li>755 <li><a href="#rfc.section. 10.2.3">10.2.3</a> <a href="#status.code.registration">Registrations</a></li>747 <li><a href="#rfc.section.9.2">9.2</a> <a href="#status.code.registry">Status Code Registry</a><ul> 748 <li><a href="#rfc.section.9.2.1">9.2.1</a> <a href="#status.code.procedure">Procedure</a></li> 749 <li><a href="#rfc.section.9.2.2">9.2.2</a> <a href="#considerations.for.new.status.codes">Considerations for New Status Codes</a></li> 750 <li><a href="#rfc.section.9.2.3">9.2.3</a> <a href="#status.code.registration">Registrations</a></li> 756 751 </ul> 757 752 </li> 758 <li><a href="#rfc.section. 10.3">10.3</a> <a href="#header.field.registry">Header Field Registry</a><ul>759 <li><a href="#rfc.section. 10.3.1">10.3.1</a> <a href="#considerations.for.new.header.fields">Considerations for New Header Fields</a></li>760 <li><a href="#rfc.section. 10.3.2">10.3.2</a> <a href="#header.field.registration">Registrations</a></li>753 <li><a href="#rfc.section.9.3">9.3</a> <a href="#header.field.registry">Header Field Registry</a><ul> 754 <li><a href="#rfc.section.9.3.1">9.3.1</a> <a href="#considerations.for.new.header.fields">Considerations for New Header Fields</a></li> 755 <li><a href="#rfc.section.9.3.2">9.3.2</a> <a href="#header.field.registration">Registrations</a></li> 761 756 </ul> 762 757 </li> 763 <li><a href="#rfc.section. 10.4">10.4</a> <a href="#content.coding.registry">Content Coding Registry</a><ul>764 <li><a href="#rfc.section. 10.4.1">10.4.1</a> <a href="#content.coding.procedure">Procedure</a></li>765 <li><a href="#rfc.section. 10.4.2">10.4.2</a> <a href="#content.coding.registration">Registrations</a></li>758 <li><a href="#rfc.section.9.4">9.4</a> <a href="#content.coding.registry">Content Coding Registry</a><ul> 759 <li><a href="#rfc.section.9.4.1">9.4.1</a> <a href="#content.coding.procedure">Procedure</a></li> 760 <li><a href="#rfc.section.9.4.2">9.4.2</a> <a href="#content.coding.registration">Registrations</a></li> 766 761 </ul> 767 762 </li> 768 763 </ul> 769 764 </li> 770 <li><a href="#rfc.section.1 1">11.</a> <a href="#security.considerations">Security Considerations</a><ul>771 <li><a href="#rfc.section.1 1.1">11.1</a> <a href="#security.sensitive">Transfer of Sensitive Information</a></li>772 <li><a href="#rfc.section.1 1.2">11.2</a> <a href="#encoding.sensitive.information.in.uris">Encoding Sensitive Information in URIs</a></li>773 <li><a href="#rfc.section.1 1.3">11.3</a> <a href="#location.spoofing-leakage">Location Header Fields: Spoofing and Information Leakage</a></li>774 <li><a href="#rfc.section.1 1.4">11.4</a> <a href="#rfc.section.11.4">Security Considerations for CONNECT</a></li>775 <li><a href="#rfc.section.1 1.5">11.5</a> <a href="#privacy.issues.connected.to.accept.header.fields">Privacy Issues Connected to Accept Header Fields</a></li>765 <li><a href="#rfc.section.10">10.</a> <a href="#security.considerations">Security Considerations</a><ul> 766 <li><a href="#rfc.section.10.1">10.1</a> <a href="#security.sensitive">Transfer of Sensitive Information</a></li> 767 <li><a href="#rfc.section.10.2">10.2</a> <a href="#encoding.sensitive.information.in.uris">Encoding Sensitive Information in URIs</a></li> 768 <li><a href="#rfc.section.10.3">10.3</a> <a href="#location.spoofing-leakage">Location Header Fields: Spoofing and Information Leakage</a></li> 769 <li><a href="#rfc.section.10.4">10.4</a> <a href="#rfc.section.10.4">Security Considerations for CONNECT</a></li> 770 <li><a href="#rfc.section.10.5">10.5</a> <a href="#privacy.issues.connected.to.accept.header.fields">Privacy Issues Connected to Accept Header Fields</a></li> 776 771 </ul> 777 772 </li> 778 <li><a href="#rfc.section.1 2">12.</a> <a href="#acks">Acknowledgments</a></li>779 <li><a href="#rfc.section.1 3">13.</a> <a href="#rfc.references">References</a><ul>780 <li><a href="#rfc.section.1 3.1">13.1</a> <a href="#rfc.references.1">Normative References</a></li>781 <li><a href="#rfc.section.1 3.2">13.2</a> <a href="#rfc.references.2">Informative References</a></li>773 <li><a href="#rfc.section.11">11.</a> <a href="#acks">Acknowledgments</a></li> 774 <li><a href="#rfc.section.12">12.</a> <a href="#rfc.references">References</a><ul> 775 <li><a href="#rfc.section.12.1">12.1</a> <a href="#rfc.references.1">Normative References</a></li> 776 <li><a href="#rfc.section.12.2">12.2</a> <a href="#rfc.references.2">Informative References</a></li> 782 777 </ul> 783 778 </li> … … 848 843 </p> 849 844 <p id="rfc.section.1.p.2">HTTP provides a uniform interface for interacting with resources regardless of their type, nature, or implementation. HTTP 850 semantics includes the intentions defined by each request method (<a href="#methods" title="Request Methods">Section 5</a>), extensions to those semantics that might be described in request header fields (<a href="#request.header.fields" title="Request Header Fields">Section 6</a>), the meaning of status codes to indicate a machine-readable response (<a href="#status.codes" title="Response Status Codes">Section 7</a>), and other control data and resource metadata that might be given in response header fields (<a href="#response.header.fields" title="Response Header Fields">Section 8</a>).845 semantics includes the intentions defined by each request method (<a href="#methods" title="Request Methods">Section 4</a>), extensions to those semantics that might be described in request header fields (<a href="#request.header.fields" title="Request Header Fields">Section 5</a>), the meaning of status codes to indicate a machine-readable response (<a href="#status.codes" title="Response Status Codes">Section 6</a>), and other control data and resource metadata that might be given in response header fields (<a href="#response.header.fields" title="Response Header Fields">Section 7</a>). 851 846 </p> 852 847 <p id="rfc.section.1.p.3"><span id="rfc.iref.c.1"></span> In addition, this document defines the payload of messages (a.k.a., content), the associated metadata header fields that define … … 871 866 </p> 872 867 <p id="rfc.section.2.p.3">One design goal of HTTP is to separate resource identification from request semantics, which is made possible by vesting the 873 request semantics in the request method (<a href="#methods" title="Request Methods">Section 5</a>) and a few request-modifying header fields (<a href="#request.header.fields" title="Request Header Fields">Section 6</a>). Resource owners <em class="bcp14">SHOULD NOT</em> include request semantics within a URI, such as by specifying an action to invoke within the path or query components of the868 request semantics in the request method (<a href="#methods" title="Request Methods">Section 4</a>) and a few request-modifying header fields (<a href="#request.header.fields" title="Request Header Fields">Section 5</a>). Resource owners <em class="bcp14">SHOULD NOT</em> include request semantics within a URI, such as by specifying an action to invoke within the path or query components of the 874 869 effective request URI, unless those semantics are disabled when they are inconsistent with the request method. 875 870 </p> … … 885 880 (representation body). 886 881 </p> 887 <p id="rfc.section.3.p.3">HTTP messages can transfer a full or partial representation in the payload (<a href="#payload" title="Payload">Section 4</a>) if not otherwise restricted by the request method or response status code. In a request, the purpose of such a representation 888 is defined by the method semantics. In a response, the purpose is defined by both the request method and the response status 889 code. 890 </p> 891 <p id="rfc.section.3.p.4">For example, a representation in the payload of a PUT request (<a href="#PUT" id="rfc.xref.PUT.1" title="PUT">Section 5.3.4</a>) represents the desired state of the target resource if the request is successfully applied, whereas a representation in 892 the payload of a POST request (<a href="#POST" id="rfc.xref.POST.1" title="POST">Section 5.3.3</a>) represents an anonymous resource for providing data to be processed, such as the information that a user entered within 882 <div id="rfc.iref.p.1"></div> 883 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="payload" href="#payload">Message Payload</a></h2> 884 <p id="rfc.section.3.1.p.1">Some HTTP messages transfer a complete or partial representation as the message "<dfn>payload</dfn>". In some cases, a payload might only contain the associated representation's header fields (e.g., responses to HEAD) or 885 only some part(s) of the representation body (e.g., the <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a> status code). 886 </p> 887 <p id="rfc.section.3.1.p.2">The purpose of a payload in a request is defined by the method semantics. In a response, the payload's purpose is defined 888 by both the request method and the response status code. 889 </p> 890 <p id="rfc.section.3.1.p.3">For example, a representation in the payload of a PUT request (<a href="#PUT" id="rfc.xref.PUT.1" title="PUT">Section 4.3.4</a>) represents the desired state of the target resource if the request is successfully applied, whereas a representation in 891 the payload of a POST request (<a href="#POST" id="rfc.xref.POST.1" title="POST">Section 4.3.3</a>) represents an anonymous resource for providing data to be processed, such as the information that a user entered within 893 892 an HTML form. 894 893 </p> 895 <p id="rfc.section.3. p.5">Likewise, the payload of a <a href="#status.200" class="smpl">200 (OK)</a> response to GET (<a href="#GET" id="rfc.xref.GET.1" title="GET">Section 5.3.1</a>) contains a representation of the target resource, as observed at the time of the message origination date (<a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 8.2.1</a>), whereas the same status code in a response to POST might contain either a representation of the processing result or a894 <p id="rfc.section.3.1.p.4">Likewise, the payload of a <a href="#status.200" class="smpl">200 (OK)</a> response to GET (<a href="#GET" id="rfc.xref.GET.1" title="GET">Section 4.3.1</a>) contains a representation of the target resource, as observed at the time of the message origination date (<a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 7.2.1</a>), whereas the same status code in a response to POST might contain either a representation of the processing result or a 896 895 current representation of the target resource after applying the processing. Some responses only contain the representation's 897 896 header fields as the payload. Response messages with an error status code usually contain a representation that describes 898 897 the error and what next steps are suggested for resolving it. 899 898 </p> 900 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="associating.representation.with.resource" href="#associating.representation.with.resource">Associating a Representation with its Resource</a></h2> 901 <p id="rfc.section.3.1.p.1">It is sometimes necessary to determine an identifier for the resource associated with a representation.</p> 902 <p id="rfc.section.3.1.p.2">An HTTP request representation, when present, is always associated with an anonymous (i.e., unidentified) resource.</p> 903 <p id="rfc.section.3.1.p.3">In the common case, an HTTP response is a representation of the target resource (see <a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). However, this is not always the case. To determine the URI of the resource a response is associated with, the following 899 <p id="rfc.section.3.1.p.5">Header fields that specifically describe the payload, rather than the associated representation, are referred to as "payload 900 header fields". Payload header fields are defined in other parts of this specification, due to their impact on message parsing. 901 </p> 902 <div id="rfc.table.u.1"> 903 <table class="tt full left" cellpadding="3" cellspacing="0"> 904 <thead> 905 <tr> 906 <th>Header Field Name</th> 907 <th>Defined in...</th> 908 </tr> 909 </thead> 910 <tbody> 911 <tr> 912 <td class="left">Content-Length</td> 913 <td class="left"><a href="p1-messaging.html#header.content-length" title="Content-Length">Section 3.3.2</a> of <a href="#Part1" id="rfc.xref.Part1.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a></td> 914 </tr> 915 <tr> 916 <td class="left">Content-Range</td> 917 <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 918 </tr> 919 <tr> 920 <td class="left">Transfer-Encoding</td> 921 <td class="left"><a href="p1-messaging.html#header.transfer-encoding" title="Transfer-Encoding">Section 3.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a></td> 922 </tr> 923 </tbody> 924 </table> 925 </div> 926 <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a> <a id="associating.representation.with.resource" href="#associating.representation.with.resource">Associating a Representation with its Resource</a></h2> 927 <p id="rfc.section.3.2.p.1">It is sometimes necessary to determine an identifier for the resource associated with a representation.</p> 928 <p id="rfc.section.3.2.p.2">An HTTP request representation, when present, is always associated with an anonymous (i.e., unidentified) resource.</p> 929 <p id="rfc.section.3.2.p.3">In the common case, an HTTP response is a representation of the target resource (see <a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). However, this is not always the case. To determine the URI of the resource a response is associated with, the following 904 930 rules are used (with the first applicable one being selected): 905 931 </p> … … 919 945 <li>Otherwise, the response is a representation of an anonymous (i.e., unidentified) resource.</li> 920 946 </ol> 921 <p id="rfc.section.3. 1.p.5"> <span class="comment" id="TODO-req-uri">[<a href="#TODO-req-uri" class="smpl">TODO-req-uri</a>: The comparison function is going to have to be defined somewhere, because we already need to compare URIs for things like947 <p id="rfc.section.3.2.p.5"> <span class="comment" id="TODO-req-uri">[<a href="#TODO-req-uri" class="smpl">TODO-req-uri</a>: The comparison function is going to have to be defined somewhere, because we already need to compare URIs for things like 922 948 cache invalidation.]</span> 923 949 </p> 924 <h2 id="rfc.section.3. 2"><a href="#rfc.section.3.2">3.2</a> <a id="representation.header.fields" href="#representation.header.fields">Representation Header Fields</a></h2>925 <p id="rfc.section.3. 2.p.1">Representation header fields define metadata about the representation data enclosed in the message body or, if no message950 <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a> <a id="representation.header.fields" href="#representation.header.fields">Representation Header Fields</a></h2> 951 <p id="rfc.section.3.3.p.1">Representation header fields define metadata about the representation data enclosed in the message body or, if no message 926 952 body is present, about the representation that would have been transferred in a <a href="#status.200" class="smpl">200 (OK)</a> response to a simultaneous GET request with the same effective request URI. 927 953 </p> 928 <p id="rfc.section.3. 2.p.2">The following header fields are defined as representation metadata:</p>929 <div id="rfc.table.u. 1">954 <p id="rfc.section.3.3.p.2">The following header fields are defined as representation metadata:</p> 955 <div id="rfc.table.u.2"> 930 956 <table class="tt full left" cellpadding="3" cellspacing="0"> 931 957 <thead> … … 938 964 <tr> 939 965 <td class="left">Content-Type</td> 940 <td class="left"><a href="#header.content-type" id="rfc.xref.header.content-type.1" title="Content-Type">Section 3. 2.1</a></td>966 <td class="left"><a href="#header.content-type" id="rfc.xref.header.content-type.1" title="Content-Type">Section 3.3.1</a></td> 941 967 </tr> 942 968 <tr> 943 969 <td class="left">Content-Encoding</td> 944 <td class="left"><a href="#header.content-encoding" id="rfc.xref.header.content-encoding.1" title="Content-Encoding">Section 3. 2.2</a></td>970 <td class="left"><a href="#header.content-encoding" id="rfc.xref.header.content-encoding.1" title="Content-Encoding">Section 3.3.2</a></td> 945 971 </tr> 946 972 <tr> 947 973 <td class="left">Content-Language</td> 948 <td class="left"><a href="#header.content-language" id="rfc.xref.header.content-language.1" title="Content-Language">Section 3. 2.3</a></td>974 <td class="left"><a href="#header.content-language" id="rfc.xref.header.content-language.1" title="Content-Language">Section 3.3.3</a></td> 949 975 </tr> 950 976 <tr> 951 977 <td class="left">Content-Location</td> 952 <td class="left"><a href="#header.content-location" id="rfc.xref.header.content-location.1" title="Content-Location">Section 3. 2.4</a></td>978 <td class="left"><a href="#header.content-location" id="rfc.xref.header.content-location.1" title="Content-Location">Section 3.3.4</a></td> 953 979 </tr> 954 980 <tr> … … 960 986 </div> 961 987 <div id="rfc.iref.c.2"></div> 962 <h3 id="rfc.section.3. 2.1"><a href="#rfc.section.3.2.1">3.2.1</a> <a id="header.content-type" href="#header.content-type">Content-Type</a></h3>963 <p id="rfc.section.3. 2.1.p.1">The "Content-Type" header field indicates the media type of the representation. In the case of responses to the HEAD method,988 <h3 id="rfc.section.3.3.1"><a href="#rfc.section.3.3.1">3.3.1</a> <a id="header.content-type" href="#header.content-type">Content-Type</a></h3> 989 <p id="rfc.section.3.3.1.p.1">The "Content-Type" header field indicates the media type of the representation. In the case of responses to the HEAD method, 964 990 the media type is that which would have been sent had the request been a GET. 965 991 </p> 966 992 <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#header.content-type" class="smpl">Content-Type</a> = <a href="#media.types" class="smpl">media-type</a> 967 </pre><p id="rfc.section.3. 2.1.p.3">Media types are defined in <a href="#media.types" title="Media Types">Section 9.5</a>. An example of the field is993 </pre><p id="rfc.section.3.3.1.p.3">Media types are defined in <a href="#media.types" title="Media Types">Section 8.5</a>. An example of the field is 968 994 </p> 969 995 <div id="rfc.figure.u.2"></div><pre class="text"> Content-Type: text/html; charset=ISO-8859-4 970 </pre><p id="rfc.section.3. 2.1.p.5">Further discussion of Content-Type is provided in <a href="#representation.data" title="Representation Data">Section 3.4</a>.996 </pre><p id="rfc.section.3.3.1.p.5">Further discussion of Content-Type is provided in <a href="#representation.data" title="Representation Data">Section 3.5</a>. 971 997 </p> 972 998 <div id="rfc.iref.c.3"></div> 973 <h3 id="rfc.section.3. 2.2"><a href="#rfc.section.3.2.2">3.2.2</a> <a id="header.content-encoding" href="#header.content-encoding">Content-Encoding</a></h3>974 <p id="rfc.section.3. 2.2.p.1">The "Content-Encoding" header field indicates what content-codings have been applied to the representation beyond those inherent999 <h3 id="rfc.section.3.3.2"><a href="#rfc.section.3.3.2">3.3.2</a> <a id="header.content-encoding" href="#header.content-encoding">Content-Encoding</a></h3> 1000 <p id="rfc.section.3.3.2.p.1">The "Content-Encoding" header field indicates what content-codings have been applied to the representation beyond those inherent 975 1001 in the media type, and thus what decoding mechanisms have to be applied in order to obtain the media-type referenced by the <a href="#header.content-type" class="smpl">Content-Type</a> header field. Content-Encoding is primarily used to allow a representation to be compressed without losing the identity of 976 1002 its underlying media type. 977 1003 </p> 978 1004 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.2"></span> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> = 1#<a href="#content.codings" class="smpl">content-coding</a> 979 </pre><p id="rfc.section.3. 2.2.p.3">Content codings are defined in <a href="#content.codings" title="Content Codings">Section 9.4</a>. An example of its use is1005 </pre><p id="rfc.section.3.3.2.p.3">Content codings are defined in <a href="#content.codings" title="Content Codings">Section 8.4</a>. An example of its use is 980 1006 </p> 981 1007 <div id="rfc.figure.u.4"></div><pre class="text"> Content-Encoding: gzip 982 </pre><p id="rfc.section.3. 2.2.p.5">The content-coding is a characteristic of the representation. Typically, the representation body is stored with this encoding1008 </pre><p id="rfc.section.3.3.2.p.5">The content-coding is a characteristic of the representation. Typically, the representation body is stored with this encoding 983 1009 and is only decoded before rendering or analogous usage. However, a transforming proxy <em class="bcp14">MAY</em> modify the content-coding if the new coding is known to be acceptable to the recipient, unless the "no-transform" cache-control 984 1010 directive is present in the message. 985 1011 </p> 986 <p id="rfc.section.3. 2.2.p.6">If the media type includes an inherent encoding, such as a data format that is always compressed, then that encoding would1012 <p id="rfc.section.3.3.2.p.6">If the media type includes an inherent encoding, such as a data format that is always compressed, then that encoding would 987 1013 not be restated as a Content-Encoding even if it happens to be the same algorithm as one of the content-codings. Such a content-coding 988 1014 would only be listed if, for some bizarre reason, it is applied a second time to form the representation. Likewise, an origin … … 991 1017 as ..." dialog instead of automatic decompression and rendering of content). 992 1018 </p> 993 <p id="rfc.section.3. 2.2.p.7">A representation that has a content-coding applied to it <em class="bcp14">MUST</em> include a Content-Encoding header field that lists the content-coding(s) applied.994 </p> 995 <p id="rfc.section.3. 2.2.p.8">If multiple encodings have been applied to a representation, the content codings <em class="bcp14">MUST</em> be listed in the order in which they were applied. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other header fields not defined by this specification.996 </p> 997 <p id="rfc.section.3. 2.2.p.9">If the content-coding of a representation in a request message is not acceptable to the origin server, the server <em class="bcp14">SHOULD</em> respond with a status code of 415 (Unsupported Media Type).1019 <p id="rfc.section.3.3.2.p.7">A representation that has a content-coding applied to it <em class="bcp14">MUST</em> include a Content-Encoding header field that lists the content-coding(s) applied. 1020 </p> 1021 <p id="rfc.section.3.3.2.p.8">If multiple encodings have been applied to a representation, the content codings <em class="bcp14">MUST</em> be listed in the order in which they were applied. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other header fields not defined by this specification. 1022 </p> 1023 <p id="rfc.section.3.3.2.p.9">If the content-coding of a representation in a request message is not acceptable to the origin server, the server <em class="bcp14">SHOULD</em> respond with a status code of 415 (Unsupported Media Type). 998 1024 </p> 999 1025 <div id="rfc.iref.c.4"></div> 1000 <h3 id="rfc.section.3. 2.3"><a href="#rfc.section.3.2.3">3.2.3</a> <a id="header.content-language" href="#header.content-language">Content-Language</a></h3>1001 <p id="rfc.section.3. 2.3.p.1">The "Content-Language" header field describes the natural language(s) of the intended audience for the representation. Note1026 <h3 id="rfc.section.3.3.3"><a href="#rfc.section.3.3.3">3.3.3</a> <a id="header.content-language" href="#header.content-language">Content-Language</a></h3> 1027 <p id="rfc.section.3.3.3.p.1">The "Content-Language" header field describes the natural language(s) of the intended audience for the representation. Note 1002 1028 that this might not be equivalent to all the languages used within the representation. 1003 1029 </p> 1004 1030 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.3"></span> <a href="#header.content-language" class="smpl">Content-Language</a> = 1#<a href="#language.tags" class="smpl">language-tag</a> 1005 </pre><p id="rfc.section.3. 2.3.p.3">Language tags are defined in <a href="#language.tags" title="Language Tags">Section 9.6</a>. The primary purpose of Content-Language is to allow a user to identify and differentiate representations according to the1031 </pre><p id="rfc.section.3.3.3.p.3">Language tags are defined in <a href="#language.tags" title="Language Tags">Section 8.6</a>. The primary purpose of Content-Language is to allow a user to identify and differentiate representations according to the 1006 1032 user's own preferred language. Thus, if the body content is intended only for a Danish-literate audience, the appropriate 1007 1033 field is 1008 1034 </p> 1009 1035 <div id="rfc.figure.u.6"></div><pre class="text"> Content-Language: da 1010 </pre><p id="rfc.section.3. 2.3.p.5">If no Content-Language is specified, the default is that the content is intended for all language audiences. This might mean1036 </pre><p id="rfc.section.3.3.3.p.5">If no Content-Language is specified, the default is that the content is intended for all language audiences. This might mean 1011 1037 that the sender does not consider it to be specific to any natural language, or that the sender does not know for which language 1012 1038 it is intended. 1013 1039 </p> 1014 <p id="rfc.section.3. 2.3.p.6">Multiple languages <em class="bcp14">MAY</em> be listed for content that is intended for multiple audiences. For example, a rendition of the "Treaty of Waitangi", presented1040 <p id="rfc.section.3.3.3.p.6">Multiple languages <em class="bcp14">MAY</em> be listed for content that is intended for multiple audiences. For example, a rendition of the "Treaty of Waitangi", presented 1015 1041 simultaneously in the original Maori and English versions, would call for 1016 1042 </p> 1017 1043 <div id="rfc.figure.u.7"></div><pre class="text"> Content-Language: mi, en 1018 </pre><p id="rfc.section.3. 2.3.p.8">However, just because multiple languages are present within a representation does not mean that it is intended for multiple1044 </pre><p id="rfc.section.3.3.3.p.8">However, just because multiple languages are present within a representation does not mean that it is intended for multiple 1019 1045 linguistic audiences. An example would be a beginner's language primer, such as "A First Lesson in Latin", which is clearly 1020 1046 intended to be used by an English-literate audience. In this case, the Content-Language would properly only include "en". 1021 1047 </p> 1022 <p id="rfc.section.3. 2.3.p.9">Content-Language <em class="bcp14">MAY</em> be applied to any media type — it is not limited to textual documents.1048 <p id="rfc.section.3.3.3.p.9">Content-Language <em class="bcp14">MAY</em> be applied to any media type — it is not limited to textual documents. 1023 1049 </p> 1024 1050 <div id="rfc.iref.c.5"></div> 1025 <h3 id="rfc.section.3. 2.4"><a href="#rfc.section.3.2.4">3.2.4</a> <a id="header.content-location" href="#header.content-location">Content-Location</a></h3>1026 <p id="rfc.section.3. 2.4.p.1">The "Content-Location" header field supplies a URI that can be used as a specific identifier for the representation in this1051 <h3 id="rfc.section.3.3.4"><a href="#rfc.section.3.3.4">3.3.4</a> <a id="header.content-location" href="#header.content-location">Content-Location</a></h3> 1052 <p id="rfc.section.3.3.4.p.1">The "Content-Location" header field supplies a URI that can be used as a specific identifier for the representation in this 1027 1053 message. In other words, if one were to perform a GET on this URI at the time of this message's generation, then a <a href="#status.200" class="smpl">200 (OK)</a> response would contain the same representation that is enclosed as payload in this message. 1028 1054 </p> 1029 1055 <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.4"></span> <a href="#header.content-location" class="smpl">Content-Location</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a> 1030 </pre><p id="rfc.section.3. 2.4.p.3">The Content-Location value is not a replacement for the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). It is representation metadata. It has the same syntax and semantics as the header field of the same name defined for MIME1056 </pre><p id="rfc.section.3.3.4.p.3">The Content-Location value is not a replacement for the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). It is representation metadata. It has the same syntax and semantics as the header field of the same name defined for MIME 1031 1057 body parts in <a href="http://tools.ietf.org/html/rfc2557#section-4">Section 4</a> of <a href="#RFC2557" id="rfc.xref.RFC2557.1"><cite title="MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)">[RFC2557]</cite></a>. However, its appearance in an HTTP message has some special implications for HTTP recipients. 1032 1058 </p> 1033 <p id="rfc.section.3. 2.4.p.4">If Content-Location is included in a response message and its value is the same as the effective request URI, then the response1059 <p id="rfc.section.3.3.4.p.4">If Content-Location is included in a response message and its value is the same as the effective request URI, then the response 1034 1060 payload <em class="bcp14">SHOULD</em> be considered a current representation of that resource. For a GET or HEAD request, this is the same as the default semantics 1035 1061 when no Content-Location is provided by the server. For a state-changing request like PUT or POST, it implies that the server's … … 1038 1064 need for a subsequent GET request. 1039 1065 </p> 1040 <p id="rfc.section.3. 2.4.p.5">If Content-Location is included in a response message and its value differs from the effective request URI, then the origin1066 <p id="rfc.section.3.3.4.p.5">If Content-Location is included in a response message and its value differs from the effective request URI, then the origin 1041 1067 server is informing recipients that this representation has its own, presumably more specific, identifier. For a GET or HEAD 1042 1068 request, this is an indication that the effective request URI identifies a resource that is subject to content negotiation … … 1046 1072 the payload of the <a href="#status.200" class="smpl">200 (OK)</a> response; the Content-Location value provides an identifier for retrieving a copy of that same receipt in the future. 1047 1073 </p> 1048 <p id="rfc.section.3. 2.4.p.6">If Content-Location is included in a request message, then it <em class="bcp14">MAY</em> be interpreted by the origin server as an indication of where the user agent originally obtained the content of the enclosed1074 <p id="rfc.section.3.3.4.p.6">If Content-Location is included in a request message, then it <em class="bcp14">MAY</em> be interpreted by the origin server as an indication of where the user agent originally obtained the content of the enclosed 1049 1075 representation (prior to any subsequent modification of the content by that user agent). In other words, the user agent is 1050 1076 providing the same representation metadata that it received with the original representation. However, such interpretation <em class="bcp14">MUST NOT</em> be used to alter the semantics of the method requested by the client. For example, if a client makes a PUT request on a negotiated … … 1054 1080 latter semantics, it would have applied the PUT directly to the Content-Location URI. 1055 1081 </p> 1056 <p id="rfc.section.3. 2.4.p.7">A Content-Location field received in a request message is transitory information that <em class="bcp14">SHOULD NOT</em> be saved with other representation metadata for use in later responses. The Content-Location's value might be saved for use1082 <p id="rfc.section.3.3.4.p.7">A Content-Location field received in a request message is transitory information that <em class="bcp14">SHOULD NOT</em> be saved with other representation metadata for use in later responses. The Content-Location's value might be saved for use 1057 1083 in other contexts, such as within source links or other metadata. 1058 1084 </p> 1059 <p id="rfc.section.3. 2.4.p.8">A cache cannot assume that a representation with a Content-Location different from the URI used to retrieve it can be used1085 <p id="rfc.section.3.3.4.p.8">A cache cannot assume that a representation with a Content-Location different from the URI used to retrieve it can be used 1060 1086 to respond to later requests on that Content-Location URI. 1061 1087 </p> 1062 <p id="rfc.section.3. 2.4.p.9">If the Content-Location value is a partial URI, the partial URI is interpreted relative to the effective request URI.</p>1063 <h2 id="rfc.section.3. 3"><a href="#rfc.section.3.3">3.3</a> <a id="selected.representation" href="#selected.representation">Selected Representation Header Fields</a></h2>1064 <p id="rfc.section.3. 3.p.1"><span id="rfc.iref.s.1"></span> We use the term "<dfn>selected representation</dfn>" to refer to the the current representation of a target resource that would have been selected in a successful response if1088 <p id="rfc.section.3.3.4.p.9">If the Content-Location value is a partial URI, the partial URI is interpreted relative to the effective request URI.</p> 1089 <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a> <a id="selected.representation" href="#selected.representation">Selected Representation Header Fields</a></h2> 1090 <p id="rfc.section.3.4.p.1"><span id="rfc.iref.s.1"></span> We use the term "<dfn>selected representation</dfn>" to refer to the the current representation of a target resource that would have been selected in a successful response if 1065 1091 the same request had used the method GET and excluded any conditional request header fields. 1066 1092 </p> 1067 <p id="rfc.section.3. 3.p.2">Additional header fields define metadata about the selected representation, which might differ from the representation included1093 <p id="rfc.section.3.4.p.2">Additional header fields define metadata about the selected representation, which might differ from the representation included 1068 1094 in the message for responses to some state-changing methods. The following header fields are defined as selected representation 1069 1095 metadata: 1070 1096 </p> 1071 <div id="rfc.table.u. 2">1097 <div id="rfc.table.u.3"> 1072 1098 <table class="tt full left" cellpadding="3" cellspacing="0"> 1073 1099 <thead> … … 1089 1115 </table> 1090 1116 </div> 1091 <h2 id="rfc.section.3. 4"><a href="#rfc.section.3.4">3.4</a> <a id="representation.data" href="#representation.data">Representation Data</a></h2>1092 <p id="rfc.section.3. 4.p.1">The representation body associated with an HTTP message is either provided as the payload body of the message or referred1117 <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a> <a id="representation.data" href="#representation.data">Representation Data</a></h2> 1118 <p id="rfc.section.3.5.p.1">The representation body associated with an HTTP message is either provided as the payload body of the message or referred 1093 1119 to by the message semantics and the effective request URI. The representation data is in a format and encoding defined by 1094 1120 the representation metadata header fields. 1095 1121 </p> 1096 <p id="rfc.section.3. 4.p.2">The data type of the representation data is determined via the header fields <a href="#header.content-type" class="smpl">Content-Type</a> and <a href="#header.content-encoding" class="smpl">Content-Encoding</a>. These define a two-layer, ordered encoding model:1122 <p id="rfc.section.3.5.p.2">The data type of the representation data is determined via the header fields <a href="#header.content-type" class="smpl">Content-Type</a> and <a href="#header.content-encoding" class="smpl">Content-Encoding</a>. These define a two-layer, ordered encoding model: 1097 1123 </p> 1098 1124 <div id="rfc.figure.u.9"></div><pre class="text"> representation-data := Content-Encoding( Content-Type( bits ) ) 1099 </pre><p id="rfc.section.3. 4.p.4"> <a href="#header.content-type" class="smpl">Content-Type</a> specifies the media type of the underlying data, which defines both the data format and how that data <em class="bcp14">SHOULD</em> be processed by the recipient (within the scope of the request method semantics). Any HTTP/1.1 message containing a payload1125 </pre><p id="rfc.section.3.5.p.4"> <a href="#header.content-type" class="smpl">Content-Type</a> specifies the media type of the underlying data, which defines both the data format and how that data <em class="bcp14">SHOULD</em> be processed by the recipient (within the scope of the request method semantics). Any HTTP/1.1 message containing a payload 1100 1126 body <em class="bcp14">SHOULD</em> include a Content-Type header field defining the media type of the associated representation unless that metadata is unknown 1101 1127 to the sender. If the Content-Type header field is not present, it indicates that the sender does not know the media type 1102 1128 of the representation; recipients <em class="bcp14">MAY</em> either assume that the media type is "application/octet-stream" (<a href="#RFC2046" id="rfc.xref.RFC2046.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a>, <a href="http://tools.ietf.org/html/rfc2046#section-4.5.1">Section 4.5.1</a>) or examine the content to determine its type. 1103 1129 </p> 1104 <p id="rfc.section.3. 4.p.5">In practice, resource owners do not always properly configure their origin server to provide the correct Content-Type for1130 <p id="rfc.section.3.5.p.5">In practice, resource owners do not always properly configure their origin server to provide the correct Content-Type for 1105 1131 a given representation, with the result that some clients will examine a response body's content and override the specified 1106 1132 type. Clients that do so risk drawing incorrect conclusions, which might expose additional security risks (e.g., "privilege … … 1109 1135 such "content sniffing" when it is used. 1110 1136 </p> 1111 <p id="rfc.section.3. 4.p.6"> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> is used to indicate any additional content codings applied to the data, usually for the purpose of data compression, that1137 <p id="rfc.section.3.5.p.6"> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> is used to indicate any additional content codings applied to the data, usually for the purpose of data compression, that 1112 1138 are a property of the representation. If Content-Encoding is not present, then there is no additional encoding beyond that 1113 1139 defined by the <a href="#header.content-type" class="smpl">Content-Type</a> header field. 1114 1140 </p> 1115 <h2 id="rfc.section.3. 5"><a href="#rfc.section.3.5">3.5</a> <a id="content.negotiation" href="#content.negotiation">Content Negotiation</a></h2>1116 <p id="rfc.section.3. 5.p.1">HTTP responses include a representation which contains information for interpretation, whether by a human user or for further1141 <h2 id="rfc.section.3.6"><a href="#rfc.section.3.6">3.6</a> <a id="content.negotiation" href="#content.negotiation">Content Negotiation</a></h2> 1142 <p id="rfc.section.3.6.p.1">HTTP responses include a representation which contains information for interpretation, whether by a human user or for further 1117 1143 processing. Often, the server has different ways of representing the same information; for example, in different formats, 1118 1144 languages, or using different character encodings. 1119 1145 </p> 1120 <p id="rfc.section.3. 5.p.2">HTTP clients and their users might have different or variable capabilities, characteristics or preferences which would influence1146 <p id="rfc.section.3.6.p.2">HTTP clients and their users might have different or variable capabilities, characteristics or preferences which would influence 1121 1147 which representation, among those available from the server, would be best for the server to deliver. For this reason, HTTP 1122 1148 provides mechanisms for "content negotiation" — a process of allowing selection of a representation of a given resource, when 1123 1149 more than one is available. 1124 1150 </p> 1125 <p id="rfc.section.3. 5.p.3">This specification defines two patterns of content negotiation; "proactive", where the server selects the representation based1151 <p id="rfc.section.3.6.p.3">This specification defines two patterns of content negotiation; "proactive", where the server selects the representation based 1126 1152 upon the client's stated preferences, and "reactive" negotiation, where the server provides a list of representations for 1127 1153 the client to choose from, based upon their metadata. In addition, there are other patterns: some applications use an "active … … 1129 1155 selects additional resources to invoke. "Transparent Content Negotiation" (<a href="#RFC2295" id="rfc.xref.RFC2295.1"><cite title="Transparent Content Negotiation in HTTP">[RFC2295]</cite></a>) has also been proposed. 1130 1156 </p> 1131 <p id="rfc.section.3. 5.p.4">These patterns are all widely used, and have trade-offs in applicability and practicality. In particular, when the number1157 <p id="rfc.section.3.6.p.4">These patterns are all widely used, and have trade-offs in applicability and practicality. In particular, when the number 1132 1158 of preferences or capabilities to be expressed by a client are large (such as when many different formats are supported by 1133 1159 a user-agent), proactive negotiation becomes unwieldy, and might not be appropriate. Conversely, when the number of representations 1134 1160 to choose from is very large, reactive negotiation might not be appropriate. 1135 1161 </p> 1136 <p id="rfc.section.3. 5.p.5">Note that, in all cases, the supplier of representations has the responsibility for determining which representations might1162 <p id="rfc.section.3.6.p.5">Note that, in all cases, the supplier of representations has the responsibility for determining which representations might 1137 1163 be considered to be the "same information". 1138 1164 </p> 1139 <h3 id="rfc.section.3. 5.1"><a href="#rfc.section.3.5.1">3.5.1</a> <a id="proactive.negotiation" href="#proactive.negotiation">Proactive Negotiation</a></h3>1140 <p id="rfc.section.3. 5.1.p.1">If the selection of the best representation for a response is made by an algorithm located at the server, it is called proactive1165 <h3 id="rfc.section.3.6.1"><a href="#rfc.section.3.6.1">3.6.1</a> <a id="proactive.negotiation" href="#proactive.negotiation">Proactive Negotiation</a></h3> 1166 <p id="rfc.section.3.6.1.p.1">If the selection of the best representation for a response is made by an algorithm located at the server, it is called proactive 1141 1167 negotiation. Selection is based on the available representations of the response (the dimensions over which it can vary; e.g., 1142 1168 language, content-coding, etc.) and the contents of particular header fields in the request message or on other information 1143 1169 pertaining to the request (such as the network address of the client). 1144 1170 </p> 1145 <p id="rfc.section.3. 5.1.p.2">Proactive negotiation is advantageous when the algorithm for selecting from among the available representations is difficult1171 <p id="rfc.section.3.6.1.p.2">Proactive negotiation is advantageous when the algorithm for selecting from among the available representations is difficult 1146 1172 to describe to the user agent, or when the server desires to send its "best guess" to the client along with the first response 1147 1173 (hoping to avoid the round-trip delay of a subsequent request if the "best guess" is good enough for the user). In order to 1148 1174 improve the server's guess, the user agent <em class="bcp14">MAY</em> include request header fields (<a href="#header.accept" class="smpl">Accept</a>, <a href="#header.accept-language" class="smpl">Accept-Language</a>, <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a>, etc.) which describe its preferences for such a response. 1149 1175 </p> 1150 <p id="rfc.section.3. 5.1.p.3">Proactive negotiation has disadvantages: </p>1176 <p id="rfc.section.3.6.1.p.3">Proactive negotiation has disadvantages: </p> 1151 1177 <ol> 1152 1178 <li>It is impossible for the server to accurately determine what might be "best" for any given user, since that would require … … 1160 1186 <li>It might limit a public cache's ability to use the same response for multiple user's requests.</li> 1161 1187 </ol> 1162 <p id="rfc.section.3. 5.1.p.4">Proactive negotiation allows the user agent to specify its preferences, but it cannot expect responses to always honor them.1188 <p id="rfc.section.3.6.1.p.4">Proactive negotiation allows the user agent to specify its preferences, but it cannot expect responses to always honor them. 1163 1189 For example, the origin server might not implement proactive negotiation, or it might decide that sending a response that 1164 1190 doesn't conform to them is better than sending a <a href="#status.406" class="smpl">406 1165 1191 (Not Acceptable)</a> response. 1166 1192 </p> 1167 <p id="rfc.section.3. 5.1.p.5">HTTP/1.1 includes the following header fields for enabling proactive negotiation through description of user agent capabilities1168 and user preferences: <a href="#header.accept" class="smpl">Accept</a> (<a href="#header.accept" id="rfc.xref.header.accept.1" title="Accept">Section 6.3.2</a>), <a href="#header.accept-charset" class="smpl">Accept-Charset</a> (<a href="#header.accept-charset" id="rfc.xref.header.accept-charset.1" title="Accept-Charset">Section 6.3.3</a>), <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.1" title="Accept-Encoding">Section 6.3.4</a>), <a href="#header.accept-language" class="smpl">Accept-Language</a> (<a href="#header.accept-language" id="rfc.xref.header.accept-language.1" title="Accept-Language">Section 6.3.5</a>), and <a href="#header.user-agent" class="smpl">User-Agent</a> (<a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 6.5.3</a>). However, an origin server is not limited to these dimensions and <em class="bcp14">MAY</em> vary the response based on any aspect of the request, including aspects of the connection (e.g., IP address) or information1193 <p id="rfc.section.3.6.1.p.5">HTTP/1.1 includes the following header fields for enabling proactive negotiation through description of user agent capabilities 1194 and user preferences: <a href="#header.accept" class="smpl">Accept</a> (<a href="#header.accept" id="rfc.xref.header.accept.1" title="Accept">Section 5.3.2</a>), <a href="#header.accept-charset" class="smpl">Accept-Charset</a> (<a href="#header.accept-charset" id="rfc.xref.header.accept-charset.1" title="Accept-Charset">Section 5.3.3</a>), <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.1" title="Accept-Encoding">Section 5.3.4</a>), <a href="#header.accept-language" class="smpl">Accept-Language</a> (<a href="#header.accept-language" id="rfc.xref.header.accept-language.1" title="Accept-Language">Section 5.3.5</a>), and <a href="#header.user-agent" class="smpl">User-Agent</a> (<a href="#header.user-agent" id="rfc.xref.header.user-agent.1" title="User-Agent">Section 5.5.3</a>). However, an origin server is not limited to these dimensions and <em class="bcp14">MAY</em> vary the response based on any aspect of the request, including aspects of the connection (e.g., IP address) or information 1169 1195 within extension header fields not defined by this specification. 1170 1196 </p> 1171 <div class="note" id="rfc.section.3. 5.1.p.6">1197 <div class="note" id="rfc.section.3.6.1.p.6"> 1172 1198 <p> <b>Note:</b> In practice, <a href="#header.user-agent" class="smpl">User-Agent</a> based negotiation is fragile, because new clients might not be recognized. 1173 1199 </p> 1174 1200 </div> 1175 <p id="rfc.section.3. 5.1.p.7">The <a href="#header.vary" class="smpl">Vary</a> header field (<a href="#header.vary" id="rfc.xref.header.vary.1" title="Vary">Section 8.2.2</a>) can be used to express the parameters the server uses to select a representation that is subject to proactive negotiation.1176 </p> 1177 <h3 id="rfc.section.3. 5.2"><a href="#rfc.section.3.5.2">3.5.2</a> <a id="reactive.negotiation" href="#reactive.negotiation">Reactive Negotiation</a></h3>1178 <p id="rfc.section.3. 5.2.p.1">With reactive negotiation, selection of the best representation for a response is performed by the user agent after receiving1201 <p id="rfc.section.3.6.1.p.7">The <a href="#header.vary" class="smpl">Vary</a> header field (<a href="#header.vary" id="rfc.xref.header.vary.1" title="Vary">Section 7.2.2</a>) can be used to express the parameters the server uses to select a representation that is subject to proactive negotiation. 1202 </p> 1203 <h3 id="rfc.section.3.6.2"><a href="#rfc.section.3.6.2">3.6.2</a> <a id="reactive.negotiation" href="#reactive.negotiation">Reactive Negotiation</a></h3> 1204 <p id="rfc.section.3.6.2.p.1">With reactive negotiation, selection of the best representation for a response is performed by the user agent after receiving 1179 1205 an initial response from the origin server. Selection is based on a list of the available representations of the response 1180 1206 included within the header fields or body of the initial response, with each representation identified by its own URI. Selection … … 1182 1208 user selecting from a generated (possibly hypertext) menu. 1183 1209 </p> 1184 <p id="rfc.section.3. 5.2.p.2">Reactive negotiation is advantageous when the response would vary over commonly-used dimensions (such as type, language, or1210 <p id="rfc.section.3.6.2.p.2">Reactive negotiation is advantageous when the response would vary over commonly-used dimensions (such as type, language, or 1185 1211 encoding), when the origin server is unable to determine a user agent's capabilities from examining the request, and generally 1186 1212 when public caches are used to distribute server load and reduce network usage. 1187 1213 </p> 1188 <p id="rfc.section.3. 5.2.p.3">Reactive negotiation suffers from the disadvantage of needing a second request to obtain the best alternate representation.1214 <p id="rfc.section.3.6.2.p.3">Reactive negotiation suffers from the disadvantage of needing a second request to obtain the best alternate representation. 1189 1215 This second request is only efficient when caching is used. In addition, this specification does not define any mechanism 1190 1216 for supporting automatic selection, though it also does not prevent any such mechanism from being developed as an extension 1191 1217 and used within HTTP/1.1. 1192 1218 </p> 1193 <p id="rfc.section.3. 5.2.p.4">This specification defines the <a href="#status.300" class="smpl">300 (Multiple Choices)</a> and <a href="#status.406" class="smpl">406 (Not Acceptable)</a> status codes for enabling reactive negotiation when the server is unwilling or unable to provide a varying response using1219 <p id="rfc.section.3.6.2.p.4">This specification defines the <a href="#status.300" class="smpl">300 (Multiple Choices)</a> and <a href="#status.406" class="smpl">406 (Not Acceptable)</a> status codes for enabling reactive negotiation when the server is unwilling or unable to provide a varying response using 1194 1220 proactive negotiation. 1195 1221 </p> 1196 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="payload" href="#payload">Payload</a></h1> 1197 <p id="rfc.section.4.p.1">HTTP messages <em class="bcp14">MAY</em> transfer a payload if not otherwise restricted by the request method or response status code. The payload consists of metadata, 1198 in the form of header fields, and data, in the form of the sequence of octets in the message body after any transfer-coding 1199 has been decoded. 1200 </p> 1201 <div id="rfc.iref.p.1"></div> 1202 <p id="rfc.section.4.p.2">A "<dfn>payload</dfn>" in HTTP is always a partial or complete representation of some resource. We use separate terms for payload and representation 1203 because some messages contain only the associated representation's header fields (e.g., responses to HEAD) or only some part(s) 1204 of the representation (e.g., the <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a> status code). 1205 </p> 1206 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="payload.header.fields" href="#payload.header.fields">Payload Header Fields</a></h2> 1207 <p id="rfc.section.4.1.p.1">HTTP header fields that specifically define the payload, rather than the associated representation, are referred to as "payload 1208 header fields". The following payload header fields are defined by HTTP/1.1: 1209 </p> 1210 <div id="rfc.table.u.3"> 1211 <table class="tt full left" cellpadding="3" cellspacing="0"> 1212 <thead> 1213 <tr> 1214 <th>Header Field Name</th> 1215 <th>Defined in...</th> 1216 </tr> 1217 </thead> 1218 <tbody> 1219 <tr> 1220 <td class="left">Content-Length</td> 1221 <td class="left"><a href="p1-messaging.html#header.content-length" title="Content-Length">Section 3.3.2</a> of <a href="#Part1" id="rfc.xref.Part1.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a></td> 1222 </tr> 1223 <tr> 1224 <td class="left">Content-Range</td> 1225 <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 1226 </tr> 1227 </tbody> 1228 </table> 1229 </div> 1230 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="payload.body" href="#payload.body">Payload Body</a></h2> 1231 <p id="rfc.section.4.2.p.1">A payload body is only present in a message when a message body is present, as described in <a href="p1-messaging.html#message.body" title="Message Body">Section 3.3</a> of <a href="#Part1" id="rfc.xref.Part1.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. The payload body is obtained from the message body by decoding any <a href="p1-messaging.html#header.transfer-encoding" class="smpl">Transfer-Encoding</a> that might have been applied to ensure safe and proper transfer of the message. 1232 </p> 1233 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="methods" href="#methods">Request Methods</a></h1> 1234 <h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="method.overview" href="#method.overview">Overview</a></h2> 1235 <p id="rfc.section.5.1.p.1">The request method token is the primary source of request semantics; it indicates the purpose for which the client has made 1236 this request and what is expected by the client as a successful result. The request semantics <em class="bcp14">MAY</em> be further specialized by the semantics of some header fields when present in a request (<a href="#request.header.fields" title="Request Header Fields">Section 6</a>) if those additional semantics do not conflict with the method. 1222 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="methods" href="#methods">Request Methods</a></h1> 1223 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="method.overview" href="#method.overview">Overview</a></h2> 1224 <p id="rfc.section.4.1.p.1">The request method token is the primary source of request semantics; it indicates the purpose for which the client has made 1225 this request and what is expected by the client as a successful result. The request semantics <em class="bcp14">MAY</em> be further specialized by the semantics of some header fields when present in a request (<a href="#request.header.fields" title="Request Header Fields">Section 5</a>) if those additional semantics do not conflict with the method. 1237 1226 </p> 1238 1227 <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.5"></span> <a href="#method.overview" class="smpl">method</a> = <a href="#imported.abnf" class="smpl">token</a> 1239 </pre><p id="rfc.section. 5.1.p.3">HTTP was originally designed to be usable as an interface to distributed object systems. The request method was envisioned1228 </pre><p id="rfc.section.4.1.p.3">HTTP was originally designed to be usable as an interface to distributed object systems. The request method was envisioned 1240 1229 as applying semantics to a target resource in much the same way as invoking a defined method on an identified object would 1241 1230 apply semantics. The method token is case-sensitive because it might be used as a gateway to object-based systems with case-sensitive 1242 1231 method names. 1243 1232 </p> 1244 <p id="rfc.section. 5.1.p.4">Unlike distributed objects, the standardized request methods in HTTP are not resource-specific, since uniform interfaces provide1233 <p id="rfc.section.4.1.p.4">Unlike distributed objects, the standardized request methods in HTTP are not resource-specific, since uniform interfaces provide 1245 1234 for better visibility and reuse in network-based systems <a href="#REST" id="rfc.xref.REST.2"><cite title="Architectural Styles and the Design of Network-based Software Architectures">[REST]</cite></a>. Once defined, a standardized method <em class="bcp14">MUST</em> have the same semantics when applied to any resource, though each resource determines for itself whether those semantics are 1246 1235 implemented or allowed. 1247 1236 </p> 1248 <p id="rfc.section. 5.1.p.5">This specification defines a number of standardized methods that are commonly used in HTTP, as outlined by the following table.1237 <p id="rfc.section.4.1.p.5">This specification defines a number of standardized methods that are commonly used in HTTP, as outlined by the following table. 1249 1238 By convention, standardized methods are defined in all-uppercase ASCII letters. 1250 1239 </p> … … 1263 1252 <td class="left">GET</td> 1264 1253 <td class="left">Transfer a current representation of the target resource.</td> 1265 <td class="left"><a href="#GET" id="rfc.xref.GET.2" title="GET"> 5.3.1</a></td>1254 <td class="left"><a href="#GET" id="rfc.xref.GET.2" title="GET">4.3.1</a></td> 1266 1255 </tr> 1267 1256 <tr> 1268 1257 <td class="left">HEAD</td> 1269 1258 <td class="left">Same as GET, but do not include a message body in the response.</td> 1270 <td class="left"><a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD"> 5.3.2</a></td>1259 <td class="left"><a href="#HEAD" id="rfc.xref.HEAD.1" title="HEAD">4.3.2</a></td> 1271 1260 </tr> 1272 1261 <tr> 1273 1262 <td class="left">POST</td> 1274 1263 <td class="left">Perform resource-specific processing on the request payload.</td> 1275 <td class="left"><a href="#POST" id="rfc.xref.POST.2" title="POST"> 5.3.3</a></td>1264 <td class="left"><a href="#POST" id="rfc.xref.POST.2" title="POST">4.3.3</a></td> 1276 1265 </tr> 1277 1266 <tr> 1278 1267 <td class="left">PUT</td> 1279 1268 <td class="left">Replace all current representations of the target resource with the request payload.</td> 1280 <td class="left"><a href="#PUT" id="rfc.xref.PUT.2" title="PUT"> 5.3.4</a></td>1269 <td class="left"><a href="#PUT" id="rfc.xref.PUT.2" title="PUT">4.3.4</a></td> 1281 1270 </tr> 1282 1271 <tr> 1283 1272 <td class="left">DELETE</td> 1284 1273 <td class="left">Remove all current representations of the target resource.</td> 1285 <td class="left"><a href="#DELETE" id="rfc.xref.DELETE.1" title="DELETE"> 5.3.5</a></td>1274 <td class="left"><a href="#DELETE" id="rfc.xref.DELETE.1" title="DELETE">4.3.5</a></td> 1286 1275 </tr> 1287 1276 <tr> 1288 1277 <td class="left">CONNECT</td> 1289 1278 <td class="left">Establish a tunnel to the server identified by the target resource.</td> 1290 <td class="left"><a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT"> 5.3.6</a></td>1279 <td class="left"><a href="#CONNECT" id="rfc.xref.CONNECT.1" title="CONNECT">4.3.6</a></td> 1291 1280 </tr> 1292 1281 <tr> 1293 1282 <td class="left">OPTIONS</td> 1294 1283 <td class="left">Describe the communication options for the target resource.</td> 1295 <td class="left"><a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS"> 5.3.7</a></td>1284 <td class="left"><a href="#OPTIONS" id="rfc.xref.OPTIONS.1" title="OPTIONS">4.3.7</a></td> 1296 1285 </tr> 1297 1286 <tr> 1298 1287 <td class="left">TRACE</td> 1299 1288 <td class="left">Perform a message loop-back test along the path to the target resource.</td> 1300 <td class="left"><a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE"> 5.3.8</a></td>1289 <td class="left"><a href="#TRACE" id="rfc.xref.TRACE.1" title="TRACE">4.3.8</a></td> 1301 1290 </tr> 1302 1291 </tbody> 1303 1292 </table> 1304 1293 </div> 1305 <p id="rfc.section. 5.1.p.6">The methods GET and HEAD <em class="bcp14">MUST</em> be supported by all general-purpose servers. All other methods are <em class="bcp14">OPTIONAL</em>. When implemented, a server <em class="bcp14">MUST</em> implement the above methods according to the semantics defined for them in <a href="#method.definitions" title="Method Definitions">Section 5.3</a>.1306 </p> 1307 <p id="rfc.section. 5.1.p.7">Additional methods <em class="bcp14">MAY</em> be used in HTTP; many have already been standardized outside the scope of this specification and registered within the HTTP1308 Method Registry maintained by IANA, as defined in <a href="#method.registry" title="Method Registry">Section 10.1</a>.1309 </p> 1310 <p id="rfc.section. 5.1.p.8">The set of methods allowed by a target resource can be listed in an <a href="#header.allow" class="smpl">Allow</a> header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 8.4.1</a>). However, the set of allowed methods can change dynamically. When a request message is received that is unrecognized or1294 <p id="rfc.section.4.1.p.6">The methods GET and HEAD <em class="bcp14">MUST</em> be supported by all general-purpose servers. All other methods are <em class="bcp14">OPTIONAL</em>. When implemented, a server <em class="bcp14">MUST</em> implement the above methods according to the semantics defined for them in <a href="#method.definitions" title="Method Definitions">Section 4.3</a>. 1295 </p> 1296 <p id="rfc.section.4.1.p.7">Additional methods <em class="bcp14">MAY</em> be used in HTTP; many have already been standardized outside the scope of this specification and registered within the HTTP 1297 Method Registry maintained by IANA, as defined in <a href="#method.registry" title="Method Registry">Section 9.1</a>. 1298 </p> 1299 <p id="rfc.section.4.1.p.8">The set of methods allowed by a target resource can be listed in an <a href="#header.allow" class="smpl">Allow</a> header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 7.4.1</a>). However, the set of allowed methods can change dynamically. When a request message is received that is unrecognized or 1311 1300 not implemented by an origin server, the origin server <em class="bcp14">SHOULD</em> respond with the <a href="#status.501" class="smpl">501 (Not Implemented)</a> status code. When a request message is received that is known by an origin server but not allowed for the target resource, 1312 1301 the origin server <em class="bcp14">SHOULD</em> respond with the <a href="#status.405" class="smpl">405 (Method Not Allowed)</a> status code. 1313 1302 </p> 1314 <h2 id="rfc.section. 5.2"><a href="#rfc.section.5.2">5.2</a> <a id="method.properties" href="#method.properties">Common Method Properties</a></h2>1303 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="method.properties" href="#method.properties">Common Method Properties</a></h2> 1315 1304 <div id="rfc.iref.s.2"></div> 1316 <h3 id="rfc.section. 5.2.1"><a href="#rfc.section.5.2.1">5.2.1</a> <a id="safe.methods" href="#safe.methods">Safe Methods</a></h3>1317 <p id="rfc.section. 5.2.1.p.1">Request methods are considered "<dfn id="safe">safe</dfn>" if their defined semantics are essentially read-only; i.e., the client does not request, and does not expect, any state1305 <h3 id="rfc.section.4.2.1"><a href="#rfc.section.4.2.1">4.2.1</a> <a id="safe.methods" href="#safe.methods">Safe Methods</a></h3> 1306 <p id="rfc.section.4.2.1.p.1">Request methods are considered "<dfn id="safe">safe</dfn>" if their defined semantics are essentially read-only; i.e., the client does not request, and does not expect, any state 1318 1307 change on the origin server as a result of applying a safe method to a target resource. Likewise, reasonable use of a safe 1319 1308 method is not expected to cause any harm, loss of property, or unusual burden on the origin server. 1320 1309 </p> 1321 <p id="rfc.section. 5.2.1.p.2">This definition of safe methods does not prevent an implementation from including behavior that is potentially harmful, not1310 <p id="rfc.section.4.2.1.p.2">This definition of safe methods does not prevent an implementation from including behavior that is potentially harmful, not 1322 1311 entirely read-only, or which causes side-effects while invoking a safe method. What is important, however, is that the client 1323 1312 did not request that additional behavior and cannot be held accountable for it. For example, most servers append request information … … 1326 1315 the Web will often have the side-effect of charging an advertising account. 1327 1316 </p> 1328 <p id="rfc.section. 5.2.1.p.3">The GET, HEAD, OPTIONS, and TRACE request methods are defined to be safe.</p>1329 <p id="rfc.section. 5.2.1.p.4">The purpose of distinguishing between safe and unsafe methods is to allow automated retrieval processes (spiders) and cache1317 <p id="rfc.section.4.2.1.p.3">The GET, HEAD, OPTIONS, and TRACE request methods are defined to be safe.</p> 1318 <p id="rfc.section.4.2.1.p.4">The purpose of distinguishing between safe and unsafe methods is to allow automated retrieval processes (spiders) and cache 1330 1319 performance optimization (pre-fetching) to work without fear of causing harm. In addition, it allows a user agent to apply 1331 1320 appropriate constraints on the automated use of unsafe methods when processing potentially untrusted content. 1332 1321 </p> 1333 <p id="rfc.section. 5.2.1.p.5">A user agent <em class="bcp14">SHOULD</em> distinguish between safe and unsafe methods when presenting potential actions to a user, such that the user can be made aware1322 <p id="rfc.section.4.2.1.p.5">A user agent <em class="bcp14">SHOULD</em> distinguish between safe and unsafe methods when presenting potential actions to a user, such that the user can be made aware 1334 1323 of an unsafe action before it is requested. 1335 1324 </p> 1336 <p id="rfc.section. 5.2.1.p.6">When a resource is constructed such that parameters within the effective request URI have the effect of selecting an action,1325 <p id="rfc.section.4.2.1.p.6">When a resource is constructed such that parameters within the effective request URI have the effect of selecting an action, 1337 1326 it is the resource owner's responsibility to ensure that the action is consistent with the request method semantics. For example, 1338 1327 it is common for Web-based content editing software to use actions within query parameters, such as "page?do=delete". If the … … 1342 1331 </p> 1343 1332 <div id="rfc.iref.i.1"></div> 1344 <h3 id="rfc.section. 5.2.2"><a href="#rfc.section.5.2.2">5.2.2</a> <a id="idempotent.methods" href="#idempotent.methods">Idempotent Methods</a></h3>1345 <p id="rfc.section. 5.2.2.p.1">Request methods are considered "<dfn id="idempotent">idempotent</dfn>" if the intended effect of multiple identical requests is the same as for a single request. PUT, DELETE, and all safe request1333 <h3 id="rfc.section.4.2.2"><a href="#rfc.section.4.2.2">4.2.2</a> <a id="idempotent.methods" href="#idempotent.methods">Idempotent Methods</a></h3> 1334 <p id="rfc.section.4.2.2.p.1">Request methods are considered "<dfn id="idempotent">idempotent</dfn>" if the intended effect of multiple identical requests is the same as for a single request. PUT, DELETE, and all safe request 1346 1335 methods are idempotent. 1347 1336 </p> 1348 <p id="rfc.section. 5.2.2.p.2">Like the definition of safe, the idempotent property only applies to what has been requested by the user; a server is free1337 <p id="rfc.section.4.2.2.p.2">Like the definition of safe, the idempotent property only applies to what has been requested by the user; a server is free 1349 1338 to log each request separately, retain a revision control history, or implement other non-idempotent side-effects for each 1350 1339 idempotent request. 1351 1340 </p> 1352 <p id="rfc.section. 5.2.2.p.3">Idempotent methods are distinguished because the request can be repeated automatically if a communication failure occurs before1341 <p id="rfc.section.4.2.2.p.3">Idempotent methods are distinguished because the request can be repeated automatically if a communication failure occurs before 1353 1342 the client is able to read the server's response. For example, if a client sends a PUT request and the underlying connection 1354 1343 is closed before any response is received, then it can establish a new connection and retry the idempotent request because … … 1357 1346 </p> 1358 1347 <div id="rfc.iref.c.6"></div> 1359 <h3 id="rfc.section. 5.2.3"><a href="#rfc.section.5.2.3">5.2.3</a> <a id="cacheable.methods" href="#cacheable.methods">Cacheable Methods</a></h3>1360 <p id="rfc.section. 5.2.3.p.1">Request methods are considered "<dfn id="cacheable">cacheable</dfn>" if it is possible and useful to answer a current client request with a stored response from a prior request. GET and HEAD1348 <h3 id="rfc.section.4.2.3"><a href="#rfc.section.4.2.3">4.2.3</a> <a id="cacheable.methods" href="#cacheable.methods">Cacheable Methods</a></h3> 1349 <p id="rfc.section.4.2.3.p.1">Request methods are considered "<dfn id="cacheable">cacheable</dfn>" if it is possible and useful to answer a current client request with a stored response from a prior request. GET and HEAD 1361 1350 are defined to be cacheable. In general, safe methods that do not depend on a current or authoritative response are cacheable, 1362 1351 though the overwhelming majority of caches only support GET and HEAD. HTTP requirements for cache behavior and cacheable responses 1363 1352 are defined in <a href="#Part6" id="rfc.xref.Part6.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>. 1364 1353 </p> 1365 <h2 id="rfc.section. 5.3"><a href="#rfc.section.5.3">5.3</a> <a id="method.definitions" href="#method.definitions">Method Definitions</a></h2>1366 <h3 id="rfc.section. 5.3.1"><a href="#rfc.section.5.3.1">5.3.1</a> <a id="GET" href="#GET">GET</a></h3>1354 <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a> <a id="method.definitions" href="#method.definitions">Method Definitions</a></h2> 1355 <h3 id="rfc.section.4.3.1"><a href="#rfc.section.4.3.1">4.3.1</a> <a id="GET" href="#GET">GET</a></h3> 1367 1356 <div id="rfc.iref.g.6"></div> 1368 <p id="rfc.section. 5.3.1.p.1">The GET method requests transfer of a current representation of the target resource.</p>1369 <p id="rfc.section. 5.3.1.p.2">If the target resource is a data-producing process, it is the produced data which shall be returned as the representation1357 <p id="rfc.section.4.3.1.p.1">The GET method requests transfer of a current representation of the target resource.</p> 1358 <p id="rfc.section.4.3.1.p.2">If the target resource is a data-producing process, it is the produced data which shall be returned as the representation 1370 1359 in the response and not the source text of the process, unless that text happens to be the output of the process. 1371 1360 </p> 1372 <p id="rfc.section. 5.3.1.p.3">The semantics of the GET method change to a "conditional GET" if the request message includes an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a>, <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a>, <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a>, <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a>, or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field (<a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>). A conditional GET requests that the representation be transferred only under the circumstances described by the conditional1361 <p id="rfc.section.4.3.1.p.3">The semantics of the GET method change to a "conditional GET" if the request message includes an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a>, <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a>, <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a>, <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a>, or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field (<a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>). A conditional GET requests that the representation be transferred only under the circumstances described by the conditional 1373 1362 header field(s). The conditional GET request is intended to reduce unnecessary network usage by allowing cached representations 1374 1363 to be refreshed without requiring multiple requests or transferring data already held by the client. 1375 1364 </p> 1376 <p id="rfc.section. 5.3.1.p.4">The semantics of the GET method change to a "partial GET" if the request message includes a <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>). A partial GET requests that only part of the representation be transferred, as described in <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>. The partial GET request is intended to reduce unnecessary network usage by allowing partially-retrieved representations1365 <p id="rfc.section.4.3.1.p.4">The semantics of the GET method change to a "partial GET" if the request message includes a <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>). A partial GET requests that only part of the representation be transferred, as described in <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>. The partial GET request is intended to reduce unnecessary network usage by allowing partially-retrieved representations 1377 1366 to be completed without transferring data already held by the client. 1378 1367 </p> 1379 <p id="rfc.section. 5.3.1.p.5">Bodies on GET requests have no defined semantics. Note that sending a body on a GET request might cause some existing implementations1368 <p id="rfc.section.4.3.1.p.5">Bodies on GET requests have no defined semantics. Note that sending a body on a GET request might cause some existing implementations 1380 1369 to reject the request. 1381 1370 </p> 1382 <p id="rfc.section. 5.3.1.p.6">The response to a GET request is cacheable and <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests (see <a href="#Part6" id="rfc.xref.Part6.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).1383 </p> 1384 <p id="rfc.section. 5.3.1.p.7">See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section 11.2</a> for security considerations when used for forms.1385 </p> 1386 <h3 id="rfc.section. 5.3.2"><a href="#rfc.section.5.3.2">5.3.2</a> <a id="HEAD" href="#HEAD">HEAD</a></h3>1371 <p id="rfc.section.4.3.1.p.6">The response to a GET request is cacheable and <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests (see <a href="#Part6" id="rfc.xref.Part6.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 1372 </p> 1373 <p id="rfc.section.4.3.1.p.7">See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section 10.2</a> for security considerations when used for forms. 1374 </p> 1375 <h3 id="rfc.section.4.3.2"><a href="#rfc.section.4.3.2">4.3.2</a> <a id="HEAD" href="#HEAD">HEAD</a></h3> 1387 1376 <div id="rfc.iref.h.1"></div> 1388 <p id="rfc.section. 5.3.2.p.1">The HEAD method is identical to GET except that the server <em class="bcp14">MUST NOT</em> return a message body in the response. The metadata contained in the HTTP header fields in response to a HEAD request <em class="bcp14">SHOULD</em> be identical to the information sent in response to a GET request. This method can be used for obtaining metadata about the1377 <p id="rfc.section.4.3.2.p.1">The HEAD method is identical to GET except that the server <em class="bcp14">MUST NOT</em> return a message body in the response. The metadata contained in the HTTP header fields in response to a HEAD request <em class="bcp14">SHOULD</em> be identical to the information sent in response to a GET request. This method can be used for obtaining metadata about the 1389 1378 representation implied by the request without transferring the representation body. This method is often used for testing 1390 1379 hypertext links for validity, accessibility, and recent modification. 1391 1380 </p> 1392 <p id="rfc.section. 5.3.2.p.2">The response to a HEAD request is cacheable and <em class="bcp14">MAY</em> be used to satisfy a subsequent HEAD request. It also has potential side effects on previously stored responses to GET; see <a href="p6-cache.html#head.effects" title="Updating Caches with HEAD Responses">Section 5</a> of <a href="#Part6" id="rfc.xref.Part6.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>.1393 </p> 1394 <p id="rfc.section. 5.3.2.p.3">Bodies on HEAD requests have no defined semantics. Note that sending a body on a HEAD request might cause some existing implementations1381 <p id="rfc.section.4.3.2.p.2">The response to a HEAD request is cacheable and <em class="bcp14">MAY</em> be used to satisfy a subsequent HEAD request. It also has potential side effects on previously stored responses to GET; see <a href="p6-cache.html#head.effects" title="Updating Caches with HEAD Responses">Section 5</a> of <a href="#Part6" id="rfc.xref.Part6.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>. 1382 </p> 1383 <p id="rfc.section.4.3.2.p.3">Bodies on HEAD requests have no defined semantics. Note that sending a body on a HEAD request might cause some existing implementations 1395 1384 to reject the request. 1396 1385 </p> 1397 1386 <div id="rfc.iref.p.2"></div> 1398 <h3 id="rfc.section. 5.3.3"><a href="#rfc.section.5.3.3">5.3.3</a> <a id="POST" href="#POST">POST</a></h3>1399 <p id="rfc.section. 5.3.3.p.1">The POST method requests that the origin server accept the representation enclosed in the request as data to be processed1387 <h3 id="rfc.section.4.3.3"><a href="#rfc.section.4.3.3">4.3.3</a> <a id="POST" href="#POST">POST</a></h3> 1388 <p id="rfc.section.4.3.3.p.1">The POST method requests that the origin server accept the representation enclosed in the request as data to be processed 1400 1389 by the target resource. POST is designed to allow a uniform method to cover the following functions: 1401 1390 </p> … … 1406 1395 <li>Extending a database through an append operation.</li> 1407 1396 </ul> 1408 <p id="rfc.section. 5.3.3.p.2">The actual function performed by the POST method is determined by the server and is usually dependent on the effective request1397 <p id="rfc.section.4.3.3.p.2">The actual function performed by the POST method is determined by the server and is usually dependent on the effective request 1409 1398 URI. 1410 1399 </p> 1411 <p id="rfc.section. 5.3.3.p.3">The action performed by the POST method might not result in a resource that can be identified by a URI. In this case, either <a href="#status.200" class="smpl">200 (OK)</a> or <a href="#status.204" class="smpl">204 (No Content)</a> is the appropriate response status code, depending on whether or not the response includes a representation that describes1400 <p id="rfc.section.4.3.3.p.3">The action performed by the POST method might not result in a resource that can be identified by a URI. In this case, either <a href="#status.200" class="smpl">200 (OK)</a> or <a href="#status.204" class="smpl">204 (No Content)</a> is the appropriate response status code, depending on whether or not the response includes a representation that describes 1412 1401 the result. 1413 1402 </p> 1414 <p id="rfc.section. 5.3.3.p.4">If a resource has been created on the origin server, the response <em class="bcp14">SHOULD</em> be <a href="#status.201" class="smpl">201 (Created)</a> and contain a representation which describes the status of the request and refers to the new resource, and a <a href="#header.location" class="smpl">Location</a> header field (see <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 8.1.1</a>).1415 </p> 1416 <p id="rfc.section. 5.3.3.p.5">Responses to POST requests are only cacheable when they include explicit freshness information (see <a href="p6-cache.html#calculating.freshness.lifetime" title="Calculating Freshness Lifetime">Section 4.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). A cached POST response with a <a href="#header.content-location" class="smpl">Content-Location</a> header field (see <a href="#header.content-location" id="rfc.xref.header.content-location.2" title="Content-Location">Section 3.2.4</a>) whose value is the effective Request URI <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests.1417 </p> 1418 <p id="rfc.section. 5.3.3.p.6">Note that POST caching is not widely implemented. However, the <a href="#status.303" class="smpl">303 (See Other)</a> response can be used to direct the user agent to retrieve a cacheable representation of the resource.1419 </p> 1420 <h3 id="rfc.section. 5.3.4"><a href="#rfc.section.5.3.4">5.3.4</a> <a id="PUT" href="#PUT">PUT</a></h3>1403 <p id="rfc.section.4.3.3.p.4">If a resource has been created on the origin server, the response <em class="bcp14">SHOULD</em> be <a href="#status.201" class="smpl">201 (Created)</a> and contain a representation which describes the status of the request and refers to the new resource, and a <a href="#header.location" class="smpl">Location</a> header field (see <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section 7.1.1</a>). 1404 </p> 1405 <p id="rfc.section.4.3.3.p.5">Responses to POST requests are only cacheable when they include explicit freshness information (see <a href="p6-cache.html#calculating.freshness.lifetime" title="Calculating Freshness Lifetime">Section 4.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). A cached POST response with a <a href="#header.content-location" class="smpl">Content-Location</a> header field (see <a href="#header.content-location" id="rfc.xref.header.content-location.2" title="Content-Location">Section 3.3.4</a>) whose value is the effective Request URI <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests. 1406 </p> 1407 <p id="rfc.section.4.3.3.p.6">Note that POST caching is not widely implemented. However, the <a href="#status.303" class="smpl">303 (See Other)</a> response can be used to direct the user agent to retrieve a cacheable representation of the resource. 1408 </p> 1409 <h3 id="rfc.section.4.3.4"><a href="#rfc.section.4.3.4">4.3.4</a> <a id="PUT" href="#PUT">PUT</a></h3> 1421 1410 <div id="rfc.iref.p.3"></div> 1422 <p id="rfc.section. 5.3.4.p.1">The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation1411 <p id="rfc.section.4.3.4.p.1">The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation 1423 1412 enclosed in the request message payload. A successful PUT of a given representation would suggest that a subsequent GET on 1424 1413 that same target resource will result in an equivalent representation being returned in a <a href="#status.200" class="smpl">200 (OK)</a> response. However, there is no guarantee that such a state change will be observable, since the target resource might be acted … … 1427 1416 by the origin server. 1428 1417 </p> 1429 <p id="rfc.section. 5.3.4.p.2">If the target resource does not have a current representation and the PUT successfully creates one, then the origin server <em class="bcp14">MUST</em> inform the user agent by sending a <a href="#status.201" class="smpl">201 (Created)</a> response. If the target resource does have a current representation and that representation is successfully modified in accordance1418 <p id="rfc.section.4.3.4.p.2">If the target resource does not have a current representation and the PUT successfully creates one, then the origin server <em class="bcp14">MUST</em> inform the user agent by sending a <a href="#status.201" class="smpl">201 (Created)</a> response. If the target resource does have a current representation and that representation is successfully modified in accordance 1430 1419 with the state of the enclosed representation, then either a <a href="#status.200" class="smpl">200 (OK)</a> or <a href="#status.204" class="smpl">204 (No Content)</a> response <em class="bcp14">SHOULD</em> be sent to indicate successful completion of the request. 1431 1420 </p> 1432 <p id="rfc.section. 5.3.4.p.3">Unrecognized header fields <em class="bcp14">SHOULD</em> be ignored (i.e., not saved as part of the resource state).1433 </p> 1434 <p id="rfc.section. 5.3.4.p.4">An origin server <em class="bcp14">SHOULD</em> verify that the PUT representation is consistent with any constraints which the server has for the target resource that cannot1421 <p id="rfc.section.4.3.4.p.3">Unrecognized header fields <em class="bcp14">SHOULD</em> be ignored (i.e., not saved as part of the resource state). 1422 </p> 1423 <p id="rfc.section.4.3.4.p.4">An origin server <em class="bcp14">SHOULD</em> verify that the PUT representation is consistent with any constraints which the server has for the target resource that cannot 1435 1424 or will not be changed by the PUT. This is particularly important when the origin server uses internal configuration information 1436 1425 related to the URI in order to set the values for representation metadata on GET responses. When a PUT representation is inconsistent … … 1438 1427 appropriate error message containing sufficient information to explain why the representation is unsuitable. The <a href="#status.409" class="smpl">409 (Conflict)</a> or <a href="#status.415" class="smpl">415 (Unsupported Media Type)</a> status codes are suggested, with the latter being specific to constraints on <a href="#header.content-type" class="smpl">Content-Type</a> values. 1439 1428 </p> 1440 <p id="rfc.section. 5.3.4.p.5">For example, if the target resource is configured to always have a <a href="#header.content-type" class="smpl">Content-Type</a> of "text/html" and the representation being PUT has a Content-Type of "image/jpeg", then the origin server <em class="bcp14">SHOULD</em> do one of:1429 <p id="rfc.section.4.3.4.p.5">For example, if the target resource is configured to always have a <a href="#header.content-type" class="smpl">Content-Type</a> of "text/html" and the representation being PUT has a Content-Type of "image/jpeg", then the origin server <em class="bcp14">SHOULD</em> do one of: 1441 1430 </p> 1442 1431 <ol class="la"> … … 1449 1438 </li> 1450 1439 </ol> 1451 <p id="rfc.section. 5.3.4.p.6">HTTP does not define exactly how a PUT method affects the state of an origin server beyond what can be expressed by the intent1440 <p id="rfc.section.4.3.4.p.6">HTTP does not define exactly how a PUT method affects the state of an origin server beyond what can be expressed by the intent 1452 1441 of the user agent request and the semantics of the origin server response. It does not define what a resource might be, in 1453 1442 any sense of that word, beyond the interface provided via HTTP. It does not define how resource state is "stored", nor how … … 1456 1445 the server. 1457 1446 </p> 1458 <p id="rfc.section. 5.3.4.p.7">The fundamental difference between the POST and PUT methods is highlighted by the different intent for the target resource.1447 <p id="rfc.section.4.3.4.p.7">The fundamental difference between the POST and PUT methods is highlighted by the different intent for the target resource. 1459 1448 The target resource in a POST request is intended to handle the enclosed representation as a data-accepting process, such 1460 1449 as for a gateway to some other protocol or a document that accepts annotations. In contrast, the target resource in a PUT … … 1462 1451 and visible to intermediaries, even though the exact effect is only known by the origin server. 1463 1452 </p> 1464 <p id="rfc.section. 5.3.4.p.8">Proper interpretation of a PUT request presumes that the user agent knows what target resource is desired. A service that1453 <p id="rfc.section.4.3.4.p.8">Proper interpretation of a PUT request presumes that the user agent knows what target resource is desired. A service that 1465 1454 is intended to select a proper URI on behalf of the client, after receiving a state-changing request, <em class="bcp14">SHOULD</em> be implemented using the POST method rather than PUT. If the origin server will not make the requested PUT state change to 1466 1455 the target resource and instead wishes to have it applied to a different resource, such as when the resource has been moved 1467 1456 to a different URI, then the origin server <em class="bcp14">MUST</em> send a <a href="#status.301" class="smpl">301 (Moved Permanently)</a> response; the user agent <em class="bcp14">MAY</em> then make its own decision regarding whether or not to redirect the request. 1468 1457 </p> 1469 <p id="rfc.section. 5.3.4.p.9">A PUT request applied to the target resource <em class="bcp14">MAY</em> have side-effects on other resources. For example, an article might have a URI for identifying "the current version" (a resource)1458 <p id="rfc.section.4.3.4.p.9">A PUT request applied to the target resource <em class="bcp14">MAY</em> have side-effects on other resources. For example, an article might have a URI for identifying "the current version" (a resource) 1470 1459 which is separate from the URIs identifying each particular version (different resources that at one point shared the same 1471 1460 state as the current version resource). A successful PUT request on "the current version" URI might therefore create a new … … 1473 1462 the related resources. 1474 1463 </p> 1475 <p id="rfc.section. 5.3.4.p.10">An origin server <em class="bcp14">SHOULD</em> reject any PUT request that contains a <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> header field (<a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), since it might be misinterpreted as partial content (or might be partial content that is being mistakenly PUT as a full1464 <p id="rfc.section.4.3.4.p.10">An origin server <em class="bcp14">SHOULD</em> reject any PUT request that contains a <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> header field (<a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), since it might be misinterpreted as partial content (or might be partial content that is being mistakenly PUT as a full 1476 1465 representation). Partial content updates are possible by targeting a separately identified resource with state that overlaps 1477 1466 a portion of the larger resource, or by using a different method that has been specifically defined for partial updates (for 1478 1467 example, the PATCH method defined in <a href="#RFC5789" id="rfc.xref.RFC5789.1"><cite title="PATCH Method for HTTP">[RFC5789]</cite></a>). 1479 1468 </p> 1480 <p id="rfc.section. 5.3.4.p.11">Responses to the PUT method are not cacheable. If a PUT request passes through a cache that has one or more stored responses1469 <p id="rfc.section.4.3.4.p.11">Responses to the PUT method are not cacheable. If a PUT request passes through a cache that has one or more stored responses 1481 1470 for the effective request URI, those stored responses will be invalidated (see <a href="p6-cache.html#invalidation.after.updates.or.deletions" title="Request Methods that Invalidate">Section 6</a> of <a href="#Part6" id="rfc.xref.Part6.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 1482 1471 </p> 1483 <h3 id="rfc.section. 5.3.5"><a href="#rfc.section.5.3.5">5.3.5</a> <a id="DELETE" href="#DELETE">DELETE</a></h3>1472 <h3 id="rfc.section.4.3.5"><a href="#rfc.section.4.3.5">4.3.5</a> <a id="DELETE" href="#DELETE">DELETE</a></h3> 1484 1473 <div id="rfc.iref.d.1"></div> 1485 <p id="rfc.section. 5.3.5.p.1">The DELETE method requests that the origin server delete the target resource. This method <em class="bcp14">MAY</em> be overridden by human intervention (or other means) on the origin server. The client cannot be guaranteed that the operation1474 <p id="rfc.section.4.3.5.p.1">The DELETE method requests that the origin server delete the target resource. This method <em class="bcp14">MAY</em> be overridden by human intervention (or other means) on the origin server. The client cannot be guaranteed that the operation 1486 1475 has been carried out, even if the status code returned from the origin server indicates that the action has been completed 1487 1476 successfully. However, the server <em class="bcp14">SHOULD NOT</em> indicate success unless, at the time the response is given, it intends to delete the resource or move it to an inaccessible 1488 1477 location. 1489 1478 </p> 1490 <p id="rfc.section. 5.3.5.p.2">A successful response <em class="bcp14">SHOULD</em> be <a href="#status.200" class="smpl">200 (OK)</a> if the response includes a representation describing the status, <a href="#status.202" class="smpl">202 (Accepted)</a> if the action has not yet been enacted, or <a href="#status.204" class="smpl">204 (No Content)</a> if the action has been enacted but the response does not include a representation.1491 </p> 1492 <p id="rfc.section. 5.3.5.p.3">Bodies on DELETE requests have no defined semantics. Note that sending a body on a DELETE request might cause some existing1479 <p id="rfc.section.4.3.5.p.2">A successful response <em class="bcp14">SHOULD</em> be <a href="#status.200" class="smpl">200 (OK)</a> if the response includes a representation describing the status, <a href="#status.202" class="smpl">202 (Accepted)</a> if the action has not yet been enacted, or <a href="#status.204" class="smpl">204 (No Content)</a> if the action has been enacted but the response does not include a representation. 1480 </p> 1481 <p id="rfc.section.4.3.5.p.3">Bodies on DELETE requests have no defined semantics. Note that sending a body on a DELETE request might cause some existing 1493 1482 implementations to reject the request. 1494 1483 </p> 1495 <p id="rfc.section. 5.3.5.p.4">Responses to the DELETE method are not cacheable. If a DELETE request passes through a cache that has one or more stored responses1484 <p id="rfc.section.4.3.5.p.4">Responses to the DELETE method are not cacheable. If a DELETE request passes through a cache that has one or more stored responses 1496 1485 for the effective request URI, those stored responses will be invalidated (see <a href="p6-cache.html#invalidation.after.updates.or.deletions" title="Request Methods that Invalidate">Section 6</a> of <a href="#Part6" id="rfc.xref.Part6.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 1497 1486 </p> 1498 1487 <div id="rfc.iref.c.7"></div> 1499 <h3 id="rfc.section. 5.3.6"><a href="#rfc.section.5.3.6">5.3.6</a> <a id="CONNECT" href="#CONNECT">CONNECT</a></h3>1500 <p id="rfc.section. 5.3.6.p.1">The CONNECT method requests that the proxy establish a tunnel to the request-target and, if successful, thereafter restrict1488 <h3 id="rfc.section.4.3.6"><a href="#rfc.section.4.3.6">4.3.6</a> <a id="CONNECT" href="#CONNECT">CONNECT</a></h3> 1489 <p id="rfc.section.4.3.6.p.1">The CONNECT method requests that the proxy establish a tunnel to the request-target and, if successful, thereafter restrict 1501 1490 its behavior to blind forwarding of packets until the connection is closed. 1502 1491 </p> 1503 <p id="rfc.section. 5.3.6.p.2">When using CONNECT, the request-target <em class="bcp14">MUST</em> use the authority form (<a href="p1-messaging.html#request-target" title="Request Target">Section 5.3</a> of <a href="#Part1" id="rfc.xref.Part1.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>); i.e., the request-target consists of only the host name and port number of the tunnel destination, separated by a colon.1492 <p id="rfc.section.4.3.6.p.2">When using CONNECT, the request-target <em class="bcp14">MUST</em> use the authority form (<a href="p1-messaging.html#request-target" title="Request Target">Section 5.3</a> of <a href="#Part1" id="rfc.xref.Part1.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>); i.e., the request-target consists of only the host name and port number of the tunnel destination, separated by a colon. 1504 1493 For example, 1505 1494 </p> … … 1507 1496 Host: server.example.com:80 1508 1497 1509 </pre><p id="rfc.section. 5.3.6.p.4">Any <a href="#status.2xx" class="smpl">2xx (Successful)</a> response to a CONNECT request indicates that the proxy has established a connection to the requested host and port, and has1498 </pre><p id="rfc.section.4.3.6.p.4">Any <a href="#status.2xx" class="smpl">2xx (Successful)</a> response to a CONNECT request indicates that the proxy has established a connection to the requested host and port, and has 1510 1499 switched to tunneling the current connection to that server connection. The tunneled data from the server begins immediately 1511 1500 after the blank line that concludes the successful response's header block. 1512 1501 </p> 1513 <p id="rfc.section. 5.3.6.p.5">A server <em class="bcp14">SHOULD NOT</em> send any <a href="p1-messaging.html#header.transfer-encoding" class="smpl">Transfer-Encoding</a> or <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header fields in a successful response. A client <em class="bcp14">MUST</em> ignore any Content-Length or Transfer-Encoding header fields received in a successful response.1514 </p> 1515 <p id="rfc.section. 5.3.6.p.6">Any response other than a successful response indicates that the tunnel has not yet been formed and that the connection remains1502 <p id="rfc.section.4.3.6.p.5">A server <em class="bcp14">SHOULD NOT</em> send any <a href="p1-messaging.html#header.transfer-encoding" class="smpl">Transfer-Encoding</a> or <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header fields in a successful response. A client <em class="bcp14">MUST</em> ignore any Content-Length or Transfer-Encoding header fields received in a successful response. 1503 </p> 1504 <p id="rfc.section.4.3.6.p.6">Any response other than a successful response indicates that the tunnel has not yet been formed and that the connection remains 1516 1505 governed by HTTP. 1517 1506 </p> 1518 <p id="rfc.section. 5.3.6.p.7">Proxy authentication might be used to establish the authority to create a tunnel:</p>1507 <p id="rfc.section.4.3.6.p.7">Proxy authentication might be used to establish the authority to create a tunnel:</p> 1519 1508 <div id="rfc.figure.u.12"></div><pre class="text2">CONNECT server.example.com:80 HTTP/1.1 1520 1509 Host: server.example.com:80 1521 1510 Proxy-Authorization: basic aGVsbG86d29ybGQ= 1522 1511 1523 </pre><p id="rfc.section. 5.3.6.p.9">A message body on a CONNECT request has no defined semantics. Sending a body on a CONNECT request might cause existing implementations1512 </pre><p id="rfc.section.4.3.6.p.9">A message body on a CONNECT request has no defined semantics. Sending a body on a CONNECT request might cause existing implementations 1524 1513 to reject the request. 1525 1514 </p> 1526 <p id="rfc.section. 5.3.6.p.10">Similar to a pipelined HTTP/1.1 request, data to be tunneled from client to server <em class="bcp14">MAY</em> be sent immediately after the request (before a response is received). The usual caveats also apply: data can be discarded1515 <p id="rfc.section.4.3.6.p.10">Similar to a pipelined HTTP/1.1 request, data to be tunneled from client to server <em class="bcp14">MAY</em> be sent immediately after the request (before a response is received). The usual caveats also apply: data can be discarded 1527 1516 if the eventual response is negative, and the connection can be reset with no response if more than one TCP segment is outstanding. 1528 1517 </p> 1529 <p id="rfc.section. 5.3.6.p.11">It might be the case that the proxy itself can only reach the requested origin server through another proxy. In this case,1518 <p id="rfc.section.4.3.6.p.11">It might be the case that the proxy itself can only reach the requested origin server through another proxy. In this case, 1530 1519 the first proxy <em class="bcp14">SHOULD</em> make a CONNECT request of that next proxy, requesting a tunnel to the authority. A proxy <em class="bcp14">MUST NOT</em> respond with any <a href="#status.2xx" class="smpl">2xx</a> status code unless it has either a direct or tunnel connection established to the authority. 1531 1520 </p> 1532 <p id="rfc.section. 5.3.6.p.12">If at any point either one of the peers gets disconnected, any outstanding data that came from that peer will be passed to1521 <p id="rfc.section.4.3.6.p.12">If at any point either one of the peers gets disconnected, any outstanding data that came from that peer will be passed to 1533 1522 the other one, and after that also the other connection will be terminated by the proxy. If there is outstanding data to that 1534 1523 peer undelivered, that data will be discarded. 1535 1524 </p> 1536 <p id="rfc.section. 5.3.6.p.13">An origin server which receives a CONNECT request for itself <em class="bcp14">MAY</em> respond with a <a href="#status.2xx" class="smpl">2xx</a> status code to indicate that a connection is established. However, most origin servers do not implement CONNECT.1537 </p> 1538 <h3 id="rfc.section. 5.3.7"><a href="#rfc.section.5.3.7">5.3.7</a> <a id="OPTIONS" href="#OPTIONS">OPTIONS</a></h3>1525 <p id="rfc.section.4.3.6.p.13">An origin server which receives a CONNECT request for itself <em class="bcp14">MAY</em> respond with a <a href="#status.2xx" class="smpl">2xx</a> status code to indicate that a connection is established. However, most origin servers do not implement CONNECT. 1526 </p> 1527 <h3 id="rfc.section.4.3.7"><a href="#rfc.section.4.3.7">4.3.7</a> <a id="OPTIONS" href="#OPTIONS">OPTIONS</a></h3> 1539 1528 <div id="rfc.iref.o.1"></div> 1540 <p id="rfc.section. 5.3.7.p.1">The OPTIONS method requests information about the communication options available on the request/response chain identified1529 <p id="rfc.section.4.3.7.p.1">The OPTIONS method requests information about the communication options available on the request/response chain identified 1541 1530 by the effective request URI. This method allows a client to determine the options and/or requirements associated with a resource, 1542 1531 or the capabilities of a server, without implying a resource action or initiating a resource retrieval. 1543 1532 </p> 1544 <p id="rfc.section. 5.3.7.p.2">Responses to the OPTIONS method are not cacheable.</p>1545 <p id="rfc.section. 5.3.7.p.3">If the OPTIONS request includes a message body (as indicated by the presence of <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> or <a href="p1-messaging.html#header.transfer-encoding" class="smpl">Transfer-Encoding</a>), then the media type <em class="bcp14">MUST</em> be indicated by a <a href="#header.content-type" class="smpl">Content-Type</a> field. Although this specification does not define any use for such a body, future extensions to HTTP might use the OPTIONS1533 <p id="rfc.section.4.3.7.p.2">Responses to the OPTIONS method are not cacheable.</p> 1534 <p id="rfc.section.4.3.7.p.3">If the OPTIONS request includes a message body (as indicated by the presence of <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> or <a href="p1-messaging.html#header.transfer-encoding" class="smpl">Transfer-Encoding</a>), then the media type <em class="bcp14">MUST</em> be indicated by a <a href="#header.content-type" class="smpl">Content-Type</a> field. Although this specification does not define any use for such a body, future extensions to HTTP might use the OPTIONS 1546 1535 body to make more detailed queries on the server. 1547 1536 </p> 1548 <p id="rfc.section. 5.3.7.p.4">If the request-target (<a href="p1-messaging.html#request-target" title="Request Target">Section 5.3</a> of <a href="#Part1" id="rfc.xref.Part1.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is an asterisk ("*"), the OPTIONS request is intended to apply to the server in general rather than to a specific resource.1537 <p id="rfc.section.4.3.7.p.4">If the request-target (<a href="p1-messaging.html#request-target" title="Request Target">Section 5.3</a> of <a href="#Part1" id="rfc.xref.Part1.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is an asterisk ("*"), the OPTIONS request is intended to apply to the server in general rather than to a specific resource. 1549 1538 Since a server's communication options typically depend on the resource, the "*" request is only useful as a "ping" or "no-op" 1550 1539 type of method; it does nothing beyond allowing the client to test the capabilities of the server. For example, this can be 1551 1540 used to test a proxy for HTTP/1.1 conformance (or lack thereof). 1552 1541 </p> 1553 <p id="rfc.section. 5.3.7.p.5">If the request-target is not an asterisk, the OPTIONS request applies only to the options that are available when communicating1542 <p id="rfc.section.4.3.7.p.5">If the request-target is not an asterisk, the OPTIONS request applies only to the options that are available when communicating 1554 1543 with that resource. 1555 1544 </p> 1556 <p id="rfc.section. 5.3.7.p.6">A <a href="#status.200" class="smpl">200 (OK)</a> response <em class="bcp14">SHOULD</em> include any header fields that indicate optional features implemented by the server and applicable to that resource (e.g., <a href="#header.allow" class="smpl">Allow</a>), possibly including extensions not defined by this specification. The response body, if any, <em class="bcp14">SHOULD</em> also include information about the communication options. The format for such a body is not defined by this specification,1545 <p id="rfc.section.4.3.7.p.6">A <a href="#status.200" class="smpl">200 (OK)</a> response <em class="bcp14">SHOULD</em> include any header fields that indicate optional features implemented by the server and applicable to that resource (e.g., <a href="#header.allow" class="smpl">Allow</a>), possibly including extensions not defined by this specification. The response body, if any, <em class="bcp14">SHOULD</em> also include information about the communication options. The format for such a body is not defined by this specification, 1557 1546 but might be defined by future extensions to HTTP. Content negotiation <em class="bcp14">MAY</em> be used to select the appropriate response format. If no response body is included, the response <em class="bcp14">MUST</em> include a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> field with a field-value of "0". 1558 1547 </p> 1559 <p id="rfc.section. 5.3.7.p.7">The <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field <em class="bcp14">MAY</em> be used to target a specific proxy in the request chain (see <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 6.1.1</a>). If no Max-Forwards field is present in the request, then the forwarded request <em class="bcp14">MUST NOT</em> include a Max-Forwards field.1560 </p> 1561 <h3 id="rfc.section. 5.3.8"><a href="#rfc.section.5.3.8">5.3.8</a> <a id="TRACE" href="#TRACE">TRACE</a></h3>1548 <p id="rfc.section.4.3.7.p.7">The <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field <em class="bcp14">MAY</em> be used to target a specific proxy in the request chain (see <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section 5.1.1</a>). If no Max-Forwards field is present in the request, then the forwarded request <em class="bcp14">MUST NOT</em> include a Max-Forwards field. 1549 </p> 1550 <h3 id="rfc.section.4.3.8"><a href="#rfc.section.4.3.8">4.3.8</a> <a id="TRACE" href="#TRACE">TRACE</a></h3> 1562 1551 <div id="rfc.iref.t.1"></div> 1563 <p id="rfc.section. 5.3.8.p.1">The TRACE method requests a remote, application-level loop-back of the request message. The final recipient of the request <em class="bcp14">SHOULD</em> reflect the message received back to the client as the message body of a <a href="#status.200" class="smpl">200 (OK)</a> response. The final recipient is either the origin server or the first proxy to receive a <a href="#header.max-forwards" class="smpl">Max-Forwards</a> value of zero (0) in the request (see <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.2" title="Max-Forwards">Section 6.1.1</a>). A TRACE request <em class="bcp14">MUST NOT</em> include a message body.1564 </p> 1565 <p id="rfc.section. 5.3.8.p.2">TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing1552 <p id="rfc.section.4.3.8.p.1">The TRACE method requests a remote, application-level loop-back of the request message. The final recipient of the request <em class="bcp14">SHOULD</em> reflect the message received back to the client as the message body of a <a href="#status.200" class="smpl">200 (OK)</a> response. The final recipient is either the origin server or the first proxy to receive a <a href="#header.max-forwards" class="smpl">Max-Forwards</a> value of zero (0) in the request (see <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.2" title="Max-Forwards">Section 5.1.1</a>). A TRACE request <em class="bcp14">MUST NOT</em> include a message body. 1553 </p> 1554 <p id="rfc.section.4.3.8.p.2">TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing 1566 1555 or diagnostic information. The value of the <a href="p1-messaging.html#header.via" class="smpl">Via</a> header field (<a href="p1-messaging.html#header.via" title="Via">Section 5.7</a> of <a href="#Part1" id="rfc.xref.Part1.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is of particular interest, since it acts as a trace of the request chain. Use of the <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field allows the client to limit the length of the request chain, which is useful for testing a chain of proxies forwarding 1567 1556 messages in an infinite loop. 1568 1557 </p> 1569 <p id="rfc.section. 5.3.8.p.3">If the request is valid, the response <em class="bcp14">SHOULD</em> have a <a href="#header.content-type" class="smpl">Content-Type</a> of "message/http" (see <a href="p1-messaging.html#internet.media.type.message.http" title="Internet Media Type message/http">Section 7.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) and contain a message body that encloses a copy of the entire request message. Responses to the TRACE method are not cacheable.1570 </p> 1571 <h1 id="rfc.section. 6"><a href="#rfc.section.6">6.</a> <a id="request.header.fields" href="#request.header.fields">Request Header Fields</a></h1>1572 <p id="rfc.section. 6.p.1">A client sends request header fields to provide more information about the request context, make the request conditional based1558 <p id="rfc.section.4.3.8.p.3">If the request is valid, the response <em class="bcp14">SHOULD</em> have a <a href="#header.content-type" class="smpl">Content-Type</a> of "message/http" (see <a href="p1-messaging.html#internet.media.type.message.http" title="Internet Media Type message/http">Section 7.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) and contain a message body that encloses a copy of the entire request message. Responses to the TRACE method are not cacheable. 1559 </p> 1560 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="request.header.fields" href="#request.header.fields">Request Header Fields</a></h1> 1561 <p id="rfc.section.5.p.1">A client sends request header fields to provide more information about the request context, make the request conditional based 1573 1562 on the target resource state, suggest preferred formats for the response, supply authentication credentials, or modify the 1574 1563 expected request processing. These fields act as request modifiers, similar to the parameters on a programming language method 1575 1564 invocation. 1576 1565 </p> 1577 <h2 id="rfc.section. 6.1"><a href="#rfc.section.6.1">6.1</a> <a id="request.controls" href="#request.controls">Controls</a></h2>1578 <p id="rfc.section. 6.1.p.1">Controls are request header fields that direct specific handling of the request.</p>1566 <h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="request.controls" href="#request.controls">Controls</a></h2> 1567 <p id="rfc.section.5.1.p.1">Controls are request header fields that direct specific handling of the request.</p> 1579 1568 <div id="rfc.table.u.4"> 1580 1569 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 1592 1581 <tr> 1593 1582 <td class="left">Max-Forwards</td> 1594 <td class="left"><a href="#header.max-forwards" id="rfc.xref.header.max-forwards.3" title="Max-Forwards">Section 6.1.1</a></td>1583 <td class="left"><a href="#header.max-forwards" id="rfc.xref.header.max-forwards.3" title="Max-Forwards">Section 5.1.1</a></td> 1595 1584 </tr> 1596 1585 <tr> 1597 1586 <td class="left">Expect</td> 1598 <td class="left"><a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 6.1.2</a></td>1587 <td class="left"><a href="#header.expect" id="rfc.xref.header.expect.1" title="Expect">Section 5.1.2</a></td> 1599 1588 </tr> 1600 1589 <tr> … … 1606 1595 </div> 1607 1596 <div id="rfc.iref.m.1"></div> 1608 <h3 id="rfc.section. 6.1.1"><a href="#rfc.section.6.1.1">6.1.1</a> <a id="header.max-forwards" href="#header.max-forwards">Max-Forwards</a></h3>1609 <p id="rfc.section. 6.1.1.p.1">The "Max-Forwards" header field provides a mechanism with the TRACE (<a href="#TRACE" id="rfc.xref.TRACE.2" title="TRACE">Section 5.3.8</a>) and OPTIONS (<a href="#OPTIONS" id="rfc.xref.OPTIONS.2" title="OPTIONS">Section 5.3.7</a>) methods to limit the number of times that the request is forwarded by proxies. This can be useful when the client is attempting1597 <h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a> <a id="header.max-forwards" href="#header.max-forwards">Max-Forwards</a></h3> 1598 <p id="rfc.section.5.1.1.p.1">The "Max-Forwards" header field provides a mechanism with the TRACE (<a href="#TRACE" id="rfc.xref.TRACE.2" title="TRACE">Section 4.3.8</a>) and OPTIONS (<a href="#OPTIONS" id="rfc.xref.OPTIONS.2" title="OPTIONS">Section 4.3.7</a>) methods to limit the number of times that the request is forwarded by proxies. This can be useful when the client is attempting 1610 1599 to trace a request which appears to be failing or looping mid-chain. 1611 1600 </p> 1612 1601 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 1613 </pre><p id="rfc.section. 6.1.1.p.3">The Max-Forwards value is a decimal integer indicating the remaining number of times this request message can be forwarded.</p>1614 <p id="rfc.section. 6.1.1.p.4">Each recipient of a TRACE or OPTIONS request containing a Max-Forwards header field <em class="bcp14">MUST</em> check and update its value prior to forwarding the request. If the received value is zero (0), the recipient <em class="bcp14">MUST NOT</em> forward the request; instead, it <em class="bcp14">MUST</em> respond as the final recipient. If the received Max-Forwards value is greater than zero, then the forwarded message <em class="bcp14">MUST</em> contain an updated Max-Forwards field with a value decremented by one (1).1615 </p> 1616 <p id="rfc.section. 6.1.1.p.5">The Max-Forwards header field <em class="bcp14">MAY</em> be ignored for all other request methods.1602 </pre><p id="rfc.section.5.1.1.p.3">The Max-Forwards value is a decimal integer indicating the remaining number of times this request message can be forwarded.</p> 1603 <p id="rfc.section.5.1.1.p.4">Each recipient of a TRACE or OPTIONS request containing a Max-Forwards header field <em class="bcp14">MUST</em> check and update its value prior to forwarding the request. If the received value is zero (0), the recipient <em class="bcp14">MUST NOT</em> forward the request; instead, it <em class="bcp14">MUST</em> respond as the final recipient. If the received Max-Forwards value is greater than zero, then the forwarded message <em class="bcp14">MUST</em> contain an updated Max-Forwards field with a value decremented by one (1). 1604 </p> 1605 <p id="rfc.section.5.1.1.p.5">The Max-Forwards header field <em class="bcp14">MAY</em> be ignored for all other request methods. 1617 1606 </p> 1618 1607 <div id="rfc.iref.e.1"></div> 1619 <h3 id="rfc.section. 6.1.2"><a href="#rfc.section.6.1.2">6.1.2</a> <a id="header.expect" href="#header.expect">Expect</a></h3>1620 <p id="rfc.section. 6.1.2.p.1">The "Expect" header field is used to indicate that particular server behaviors are required by the client.</p>1608 <h3 id="rfc.section.5.1.2"><a href="#rfc.section.5.1.2">5.1.2</a> <a id="header.expect" href="#header.expect">Expect</a></h3> 1609 <p id="rfc.section.5.1.2.p.1">The "Expect" header field is used to indicate that particular server behaviors are required by the client.</p> 1621 1610 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span> <a href="#header.expect" class="smpl">Expect</a> = 1#<a href="#header.expect" class="smpl">expectation</a> 1622 1611 … … 1627 1616 <a href="#header.expect" class="smpl">expect-name</a> = <a href="#imported.abnf" class="smpl">token</a> 1628 1617 <a href="#header.expect" class="smpl">expect-value</a> = <a href="#imported.abnf" class="smpl">token</a> / <a href="#imported.abnf" class="smpl">quoted-string</a> 1629 </pre><p id="rfc.section. 6.1.2.p.3">If all received Expect header field(s) are syntactically valid but contain an expectation that the recipient does not understand1618 </pre><p id="rfc.section.5.1.2.p.3">If all received Expect header field(s) are syntactically valid but contain an expectation that the recipient does not understand 1630 1619 or cannot comply with, the recipient <em class="bcp14">MUST</em> respond with a <a href="#status.417" class="smpl">417 (Expectation Failed)</a> status code. A recipient of a syntactically invalid Expectation header field <em class="bcp14">MUST</em> respond with a <a href="#status.4xx" class="smpl">4xx</a> status code other than 417. 1631 1620 </p> 1632 <p id="rfc.section. 6.1.2.p.4">The only expectation defined by this specification is:</p>1633 <p id="rfc.section. 6.1.2.p.5"><span id="rfc.iref.32"></span><span id="rfc.iref.e.2"></span> 100-continue1621 <p id="rfc.section.5.1.2.p.4">The only expectation defined by this specification is:</p> 1622 <p id="rfc.section.5.1.2.p.5"><span id="rfc.iref.32"></span><span id="rfc.iref.e.2"></span> 100-continue 1634 1623 </p> 1635 1624 <ul class="empty"> 1636 1625 <li>The "100-continue" expectation is defined below. It does not support any expect-params.</li> 1637 1626 </ul> 1638 <p id="rfc.section. 6.1.2.p.6">Comparison is case-insensitive for names (expect-name), and case-sensitive for values (expect-value).</p>1639 <p id="rfc.section. 6.1.2.p.7">The Expect mechanism is hop-by-hop: the above requirements apply to any server, including proxies. However, the Expect header1627 <p id="rfc.section.5.1.2.p.6">Comparison is case-insensitive for names (expect-name), and case-sensitive for values (expect-value).</p> 1628 <p id="rfc.section.5.1.2.p.7">The Expect mechanism is hop-by-hop: the above requirements apply to any server, including proxies. However, the Expect header 1640 1629 field itself is end-to-end; it <em class="bcp14">MUST</em> be forwarded if the request is forwarded. 1641 1630 </p> 1642 <p id="rfc.section. 6.1.2.p.8">Many older HTTP/1.0 and HTTP/1.1 applications do not understand the Expect header field.</p>1643 <h4 id="rfc.section. 6.1.2.1"><a href="#rfc.section.6.1.2.1">6.1.2.1</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h4>1644 <p id="rfc.section. 6.1.2.1.p.1">The purpose of the <a href="#status.100" class="smpl">100 (Continue)</a> status code (<a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section 7.2.1</a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing1631 <p id="rfc.section.5.1.2.p.8">Many older HTTP/1.0 and HTTP/1.1 applications do not understand the Expect header field.</p> 1632 <h4 id="rfc.section.5.1.2.1"><a href="#rfc.section.5.1.2.1">5.1.2.1</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h4> 1633 <p id="rfc.section.5.1.2.1.p.1">The purpose of the <a href="#status.100" class="smpl">100 (Continue)</a> status code (<a href="#status.100" id="rfc.xref.status.100.1" title="100 Continue">Section 6.2.1</a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing 1645 1634 to accept the request (based on the request header fields) before the client sends the request body. In some cases, it might 1646 1635 either be inappropriate or highly inefficient for the client to send the body if the server will reject the message without 1647 1636 looking at the body. 1648 1637 </p> 1649 <p id="rfc.section. 6.1.2.1.p.2">Requirements for HTTP/1.1 clients: </p>1638 <p id="rfc.section.5.1.2.1.p.2">Requirements for HTTP/1.1 clients: </p> 1650 1639 <ul> 1651 1640 <li>If a client will wait for a <a href="#status.100" class="smpl">100 (Continue)</a> response before sending the request body, it <em class="bcp14">MUST</em> send an <a href="#header.expect" class="smpl">Expect</a> header field with the "100-continue" expectation. … … 1654 1643 </li> 1655 1644 </ul> 1656 <p id="rfc.section. 6.1.2.1.p.3">Because of the presence of older implementations, the protocol allows ambiguous situations in which a client might send "Expect:1645 <p id="rfc.section.5.1.2.1.p.3">Because of the presence of older implementations, the protocol allows ambiguous situations in which a client might send "Expect: 1657 1646 100-continue" without receiving either a <a href="#status.417" class="smpl">417 (Expectation Failed)</a> or a <a href="#status.100" class="smpl">100 (Continue)</a> status code. Therefore, when a client sends this header field to an origin server (possibly via a proxy) from which it has 1658 1647 never seen a <a href="#status.100" class="smpl">100 (Continue)</a> status code, the client <em class="bcp14">SHOULD NOT</em> wait for an indefinite period before sending the request body. 1659 1648 </p> 1660 <p id="rfc.section. 6.1.2.1.p.4">Requirements for HTTP/1.1 origin servers: </p>1649 <p id="rfc.section.5.1.2.1.p.4">Requirements for HTTP/1.1 origin servers: </p> 1661 1650 <ul> 1662 1651 <li>Upon receiving a request which includes an <a href="#header.expect" class="smpl">Expect</a> header field with the "100-continue" expectation, an origin server <em class="bcp14">MUST</em> either respond with <a href="#status.100" class="smpl">100 (Continue)</a> status code and continue to read from the input stream, or respond with a final status code. The origin server <em class="bcp14">MUST NOT</em> wait for the request body before sending the <a href="#status.100" class="smpl">100 (Continue)</a> response. If it responds with a final status code, it <em class="bcp14">MAY</em> close the transport connection or it <em class="bcp14">MAY</em> continue to read and discard the rest of the request. It <em class="bcp14">MUST NOT</em> perform the request method if it returns a final status code. … … 1678 1667 </li> 1679 1668 </ul> 1680 <p id="rfc.section. 6.1.2.1.p.5">Requirements for HTTP/1.1 proxies: </p>1669 <p id="rfc.section.5.1.2.1.p.5">Requirements for HTTP/1.1 proxies: </p> 1681 1670 <ul> 1682 1671 <li>If a proxy receives a request that includes an <a href="#header.expect" class="smpl">Expect</a> header field with the "100-continue" expectation, and the proxy either knows that the next-hop server complies with HTTP/1.1 … … 1687 1676 <li>Proxies <em class="bcp14">SHOULD</em> maintain a record of the HTTP version numbers received from recently-referenced next-hop servers. 1688 1677 </li> 1689 <li>A proxy <em class="bcp14">MUST NOT</em> forward a <a href="#status.100" class="smpl">100 (Continue)</a> response if the request message was received from an HTTP/1.0 (or earlier) client and did not include an <a href="#header.expect" class="smpl">Expect</a> header field with the "100-continue" expectation. This requirement overrides the general rule for forwarding of <a href="#status.1xx" class="smpl">1xx</a> responses (see <a href="#status.100" id="rfc.xref.status.100.2" title="100 Continue">Section 7.2.1</a>).1690 </li> 1691 </ul> 1692 <h2 id="rfc.section. 6.2"><a href="#rfc.section.6.2">6.2</a> <a id="request.conditionals" href="#request.conditionals">Conditionals</a></h2>1693 <p id="rfc.section. 6.2.p.1">Conditionals are request header fields that indicate a precondition to be tested before applying the method semantics to the1678 <li>A proxy <em class="bcp14">MUST NOT</em> forward a <a href="#status.100" class="smpl">100 (Continue)</a> response if the request message was received from an HTTP/1.0 (or earlier) client and did not include an <a href="#header.expect" class="smpl">Expect</a> header field with the "100-continue" expectation. This requirement overrides the general rule for forwarding of <a href="#status.1xx" class="smpl">1xx</a> responses (see <a href="#status.100" id="rfc.xref.status.100.2" title="100 Continue">Section 6.2.1</a>). 1679 </li> 1680 </ul> 1681 <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a> <a id="request.conditionals" href="#request.conditionals">Conditionals</a></h2> 1682 <p id="rfc.section.5.2.p.1">Conditionals are request header fields that indicate a precondition to be tested before applying the method semantics to the 1694 1683 target resource. Each precondition is based on metadata that is expected to change if the selected representation of the target 1695 1684 resource is changed. The HTTP/1.1 conditional request mechanisms are defined in <a href="#Part4" id="rfc.xref.Part4.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. … … 1727 1716 </table> 1728 1717 </div> 1729 <h2 id="rfc.section. 6.3"><a href="#rfc.section.6.3">6.3</a> <a id="request.conneg" href="#request.conneg">Content Negotiation</a></h2>1718 <h2 id="rfc.section.5.3"><a href="#rfc.section.5.3">5.3</a> <a id="request.conneg" href="#request.conneg">Content Negotiation</a></h2> 1730 1719 <div id="rfc.table.u.6"> 1731 1720 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 1739 1728 <tr> 1740 1729 <td class="left">Accept</td> 1741 <td class="left"><a href="#header.accept" id="rfc.xref.header.accept.2" title="Accept">Section 6.3.2</a></td>1730 <td class="left"><a href="#header.accept" id="rfc.xref.header.accept.2" title="Accept">Section 5.3.2</a></td> 1742 1731 </tr> 1743 1732 <tr> 1744 1733 <td class="left">Accept-Charset</td> 1745 <td class="left"><a href="#header.accept-charset" id="rfc.xref.header.accept-charset.2" title="Accept-Charset">Section 6.3.3</a></td>1734 <td class="left"><a href="#header.accept-charset" id="rfc.xref.header.accept-charset.2" title="Accept-Charset">Section 5.3.3</a></td> 1746 1735 </tr> 1747 1736 <tr> 1748 1737 <td class="left">Accept-Encoding</td> 1749 <td class="left"><a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.2" title="Accept-Encoding">Section 6.3.4</a></td>1738 <td class="left"><a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.2" title="Accept-Encoding">Section 5.3.4</a></td> 1750 1739 </tr> 1751 1740 <tr> 1752 1741 <td class="left">Accept-Language</td> 1753 <td class="left"><a href="#header.accept-language" id="rfc.xref.header.accept-language.2" title="Accept-Language">Section 6.3.5</a></td>1742 <td class="left"><a href="#header.accept-language" id="rfc.xref.header.accept-language.2" title="Accept-Language">Section 5.3.5</a></td> 1754 1743 </tr> 1755 1744 </tbody> 1756 1745 </table> 1757 1746 </div> 1758 <h3 id="rfc.section. 6.3.1"><a href="#rfc.section.6.3.1">6.3.1</a> <a id="quality.values" href="#quality.values">Quality Values</a></h3>1759 <p id="rfc.section. 6.3.1.p.1">Many of the request header fields for proactive content negotiation use a common parameter, named "q" (case-insensitive),1747 <h3 id="rfc.section.5.3.1"><a href="#rfc.section.5.3.1">5.3.1</a> <a id="quality.values" href="#quality.values">Quality Values</a></h3> 1748 <p id="rfc.section.5.3.1.p.1">Many of the request header fields for proactive content negotiation use a common parameter, named "q" (case-insensitive), 1760 1749 to assign a relative "weight" to the preference for that associated kind of content. This weight is referred to as a "quality 1761 1750 value" (or "qvalue") because the same parameter name is often used within server configurations to assign a weight to the 1762 1751 relative quality of the various representations that can be selected for a resource. 1763 1752 </p> 1764 <p id="rfc.section. 6.3.1.p.2">The weight is normalized to a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred;1753 <p id="rfc.section.5.3.1.p.2">The weight is normalized to a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred; 1765 1754 a value of 0 means "not acceptable". If no "q" parameter is present, the default weight is 1. 1766 1755 </p> … … 1768 1757 <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#imported.abnf" class="smpl">DIGIT</a> ] ) 1769 1758 / ( "1" [ "." 0*3("0") ] ) 1770 </pre><p id="rfc.section. 6.3.1.p.4">A sender of qvalue <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values ought to be limited in the same1759 </pre><p id="rfc.section.5.3.1.p.4">A sender of qvalue <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values ought to be limited in the same 1771 1760 fashion. 1772 1761 </p> 1773 1762 <div id="rfc.iref.a.1"></div> 1774 <h3 id="rfc.section. 6.3.2"><a href="#rfc.section.6.3.2">6.3.2</a> <a id="header.accept" href="#header.accept">Accept</a></h3>1775 <p id="rfc.section. 6.3.2.p.1">The "Accept" header field can be used by user agents to specify response media types that are acceptable. Accept header fields1763 <h3 id="rfc.section.5.3.2"><a href="#rfc.section.5.3.2">5.3.2</a> <a id="header.accept" href="#header.accept">Accept</a></h3> 1764 <p id="rfc.section.5.3.2.p.1">The "Accept" header field can be used by user agents to specify response media types that are acceptable. Accept header fields 1776 1765 can be used to indicate that the request is specifically limited to a small set of desired types, as in the case of a request 1777 1766 for an in-line image. … … 1785 1774 <a href="#header.accept" class="smpl">accept-params</a> = <a href="#quality.values" class="smpl">weight</a> *( <a href="#header.accept" class="smpl">accept-ext</a> ) 1786 1775 <a href="#header.accept" class="smpl">accept-ext</a> = <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> <a href="#imported.abnf" class="smpl">token</a> [ "=" <a href="#imported.abnf" class="smpl">word</a> ] 1787 </pre><p id="rfc.section. 6.3.2.p.3">The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating1776 </pre><p id="rfc.section.5.3.2.p.3">The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating 1788 1777 all subtypes of that type. The media-range <em class="bcp14">MAY</em> include media type parameters that are applicable to that range. 1789 1778 </p> 1790 <p id="rfc.section. 6.3.2.p.4">Each media-range <em class="bcp14">MAY</em> be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative weight, as defined in <a href="#quality.values" title="Quality Values">Section 6.3.1</a>. The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params.1791 </p> 1792 <div class="note" id="rfc.section. 6.3.2.p.5">1779 <p id="rfc.section.5.3.2.p.4">Each media-range <em class="bcp14">MAY</em> be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative weight, as defined in <a href="#quality.values" title="Quality Values">Section 5.3.1</a>. The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params. 1780 </p> 1781 <div class="note" id="rfc.section.5.3.2.p.5"> 1793 1782 <p> <b>Note:</b> Use of the "q" parameter name to separate media type parameters from Accept extension parameters is due to historical practice. 1794 1783 Although this prevents any media type parameter named "q" from being used with a media range, such an event is believed to … … 1797 1786 </p> 1798 1787 </div> 1799 <p id="rfc.section. 6.3.2.p.6">The example</p>1788 <p id="rfc.section.5.3.2.p.6">The example</p> 1800 1789 <div id="rfc.figure.u.17"></div><pre class="text"> Accept: audio/*; q=0.2, audio/basic 1801 </pre><p id="rfc.section. 6.3.2.p.8"> <em class="bcp14">SHOULD</em> be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in1790 </pre><p id="rfc.section.5.3.2.p.8"> <em class="bcp14">SHOULD</em> be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in 1802 1791 quality". 1803 1792 </p> 1804 <p id="rfc.section. 6.3.2.p.9">A request without any Accept header field implies that the user agent will accept any media type in response. If an Accept1793 <p id="rfc.section.5.3.2.p.9">A request without any Accept header field implies that the user agent will accept any media type in response. If an Accept 1805 1794 header field is present in a request and none of the available representations for the response have a media type that is 1806 1795 listed as acceptable, the origin server <em class="bcp14">MAY</em> either honor the Accept header field by sending a <a href="#status.406" class="smpl">406 (Not Acceptable)</a> response or disregard the Accept header field by treating the response as if it is not subject to content negotiation. 1807 1796 </p> 1808 <p id="rfc.section. 6.3.2.p.10">A more elaborate example is</p>1797 <p id="rfc.section.5.3.2.p.10">A more elaborate example is</p> 1809 1798 <div id="rfc.figure.u.18"></div><pre class="text"> Accept: text/plain; q=0.5, text/html, 1810 1799 text/x-dvi; q=0.8, text/x-c 1811 </pre><p id="rfc.section. 6.3.2.p.12">Verbally, this would be interpreted as "text/html and text/x-c are the preferred media types, but if they do not exist, then1800 </pre><p id="rfc.section.5.3.2.p.12">Verbally, this would be interpreted as "text/html and text/x-c are the preferred media types, but if they do not exist, then 1812 1801 send the text/x-dvi representation, and if that does not exist, send the text/plain representation". 1813 1802 </p> 1814 <p id="rfc.section. 6.3.2.p.13">Media ranges can be overridden by more specific media ranges or specific media types. If more than one media range applies1803 <p id="rfc.section.5.3.2.p.13">Media ranges can be overridden by more specific media ranges or specific media types. If more than one media range applies 1815 1804 to a given type, the most specific reference has precedence. For example, 1816 1805 </p> 1817 1806 <div id="rfc.figure.u.19"></div><pre class="text"> Accept: text/*, text/plain, text/plain;format=flowed, */* 1818 </pre><p id="rfc.section. 6.3.2.p.15">have the following precedence: </p>1807 </pre><p id="rfc.section.5.3.2.p.15">have the following precedence: </p> 1819 1808 <ol> 1820 1809 <li>text/plain;format=flowed</li> … … 1823 1812 <li>*/*</li> 1824 1813 </ol> 1825 <p id="rfc.section. 6.3.2.p.16">The media type quality factor associated with a given type is determined by finding the media range with the highest precedence1814 <p id="rfc.section.5.3.2.p.16">The media type quality factor associated with a given type is determined by finding the media range with the highest precedence 1826 1815 which matches that type. For example, 1827 1816 </p> 1828 1817 <div id="rfc.figure.u.20"></div><pre class="text"> Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, 1829 1818 text/html;level=2;q=0.4, */*;q=0.5 1830 </pre><p id="rfc.section. 6.3.2.p.18">would cause the following values to be associated:</p>1819 </pre><p id="rfc.section.5.3.2.p.18">would cause the following values to be associated:</p> 1831 1820 <div id="rfc.table.u.7"> 1832 1821 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 1865 1854 </table> 1866 1855 </div> 1867 <p id="rfc.section. 6.3.2.p.19"> <b>Note:</b> A user agent might be provided with a default set of quality values for certain media ranges. However, unless the user agent1856 <p id="rfc.section.5.3.2.p.19"> <b>Note:</b> A user agent might be provided with a default set of quality values for certain media ranges. However, unless the user agent 1868 1857 is a closed system which cannot interact with other rendering agents, this default set ought to be configurable by the user. 1869 1858 </p> 1870 1859 <div id="rfc.iref.a.2"></div> 1871 <h3 id="rfc.section. 6.3.3"><a href="#rfc.section.6.3.3">6.3.3</a> <a id="header.accept-charset" href="#header.accept-charset">Accept-Charset</a></h3>1872 <p id="rfc.section. 6.3.3.p.1">The "Accept-Charset" header field can be used by user agents to indicate what character encodings are acceptable in a response1860 <h3 id="rfc.section.5.3.3"><a href="#rfc.section.5.3.3">5.3.3</a> <a id="header.accept-charset" href="#header.accept-charset">Accept-Charset</a></h3> 1861 <p id="rfc.section.5.3.3.p.1">The "Accept-Charset" header field can be used by user agents to indicate what character encodings are acceptable in a response 1873 1862 payload. This field allows clients capable of understanding more comprehensive or special-purpose character encodings to signal 1874 1863 that capability to a server which is capable of representing documents in those character encodings. 1875 1864 </p> 1876 1865 <div id="rfc.figure.u.21"></div><pre class="inline"><span id="rfc.iref.g.19"></span> <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = 1#( ( <a href="#rule.charset" class="smpl">charset</a> / "*" ) [ <a href="#quality.values" class="smpl">weight</a> ] ) 1877 </pre><p id="rfc.section. 6.3.3.p.3">Character encoding values (a.k.a., charsets) are described in <a href="#character.sets" title="Character Encodings (charset)">Section 9.3</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset, as defined in <a href="#quality.values" title="Quality Values">Section 6.3.1</a>. An example is1866 </pre><p id="rfc.section.5.3.3.p.3">Character encoding values (a.k.a., charsets) are described in <a href="#character.sets" title="Character Encodings (charset)">Section 8.3</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset, as defined in <a href="#quality.values" title="Quality Values">Section 5.3.1</a>. An example is 1878 1867 </p> 1879 1868 <div id="rfc.figure.u.22"></div><pre class="text"> Accept-Charset: iso-8859-5, unicode-1-1;q=0.8 1880 </pre><p id="rfc.section. 6.3.3.p.5">The special value "*", if present in the Accept-Charset field, matches every character encoding which is not mentioned elsewhere1869 </pre><p id="rfc.section.5.3.3.p.5">The special value "*", if present in the Accept-Charset field, matches every character encoding which is not mentioned elsewhere 1881 1870 in the Accept-Charset field. If no "*" is present in an Accept-Charset field, then any character encodings not explicitly 1882 1871 mentioned in the field are considered "not acceptable" to the client. 1883 1872 </p> 1884 <p id="rfc.section. 6.3.3.p.6">A request without any Accept-Charset header field implies that the user agent will accept any character encoding in response.</p>1885 <p id="rfc.section. 6.3.3.p.7">If an Accept-Charset header field is present in a request and none of the available representations for the response have1873 <p id="rfc.section.5.3.3.p.6">A request without any Accept-Charset header field implies that the user agent will accept any character encoding in response.</p> 1874 <p id="rfc.section.5.3.3.p.7">If an Accept-Charset header field is present in a request and none of the available representations for the response have 1886 1875 a character encoding that is listed as acceptable, the origin server <em class="bcp14">MAY</em> either honor the Accept-Charset header field by sending a <a href="#status.406" class="smpl">406 (Not Acceptable)</a> response or disregard the Accept-Charset header field by treating the response as if it is not subject to content negotiation. 1887 1876 </p> 1888 1877 <div id="rfc.iref.a.3"></div> 1889 <h3 id="rfc.section. 6.3.4"><a href="#rfc.section.6.3.4">6.3.4</a> <a id="header.accept-encoding" href="#header.accept-encoding">Accept-Encoding</a></h3>1890 <p id="rfc.section. 6.3.4.p.1">The "Accept-Encoding" header field can be used by user agents to indicate what response content-codings (<a href="#content.codings" title="Content Codings">Section 9.4</a>) are acceptable in the response. An "identity" token is used as a synonym for "no encoding" in order to communicate when1878 <h3 id="rfc.section.5.3.4"><a href="#rfc.section.5.3.4">5.3.4</a> <a id="header.accept-encoding" href="#header.accept-encoding">Accept-Encoding</a></h3> 1879 <p id="rfc.section.5.3.4.p.1">The "Accept-Encoding" header field can be used by user agents to indicate what response content-codings (<a href="#content.codings" title="Content Codings">Section 8.4</a>) are acceptable in the response. An "identity" token is used as a synonym for "no encoding" in order to communicate when 1891 1880 no encoding is preferred. 1892 1881 </p> 1893 1882 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.20"></span><span id="rfc.iref.g.21"></span> <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = #( <a href="#header.accept-encoding" class="smpl">codings</a> [ <a href="#quality.values" class="smpl">weight</a> ] ) 1894 1883 <a href="#header.accept-encoding" class="smpl">codings</a> = <a href="#content.codings" class="smpl">content-coding</a> / "identity" / "*" 1895 </pre><p id="rfc.section. 6.3.4.p.3">Each codings value <em class="bcp14">MAY</em> be given an associated quality value which represents the preference for that encoding, as defined in <a href="#quality.values" title="Quality Values">Section 6.3.1</a>.1896 </p> 1897 <p id="rfc.section. 6.3.4.p.4">For example,</p>1884 </pre><p id="rfc.section.5.3.4.p.3">Each codings value <em class="bcp14">MAY</em> be given an associated quality value which represents the preference for that encoding, as defined in <a href="#quality.values" title="Quality Values">Section 5.3.1</a>. 1885 </p> 1886 <p id="rfc.section.5.3.4.p.4">For example,</p> 1898 1887 <div id="rfc.figure.u.24"></div><pre class="text"> Accept-Encoding: compress, gzip 1899 1888 Accept-Encoding: … … 1901 1890 Accept-Encoding: compress;q=0.5, gzip;q=1.0 1902 1891 Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 1903 </pre><p id="rfc.section. 6.3.4.p.6">A server tests whether a content-coding for a given representation is acceptable, according to an Accept-Encoding field, using1892 </pre><p id="rfc.section.5.3.4.p.6">A server tests whether a content-coding for a given representation is acceptable, according to an Accept-Encoding field, using 1904 1893 these rules: 1905 1894 </p> … … 1912 1901 </li> 1913 1902 <li>If the representation's content-coding is one of the content-codings listed in the Accept-Encoding field, then it is acceptable 1914 unless it is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 6.3.1</a>, a qvalue of 0 means "not acceptable".)1903 unless it is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 5.3.1</a>, a qvalue of 0 means "not acceptable".) 1915 1904 </li> 1916 1905 <li>If multiple content-codings are acceptable, then the acceptable content-coding with the highest non-zero qvalue is preferred.</li> 1917 1906 </ol> 1918 <p id="rfc.section. 6.3.4.p.7">An Accept-Encoding header field with a combined field-value that is empty implies that the user agent does not want any content-coding1907 <p id="rfc.section.5.3.4.p.7">An Accept-Encoding header field with a combined field-value that is empty implies that the user agent does not want any content-coding 1919 1908 in response. If an Accept-Encoding header field is present in a request and none of the available representations for the 1920 1909 response have a content-coding that is listed as acceptable, the origin server <em class="bcp14">SHOULD</em> send a response without any content-coding. 1921 1910 </p> 1922 <p id="rfc.section. 6.3.4.p.8">A request without an Accept-Encoding header field implies that the user agent will accept any content-coding in response.</p>1923 <div class="note" id="rfc.section. 6.3.4.p.9">1911 <p id="rfc.section.5.3.4.p.8">A request without an Accept-Encoding header field implies that the user agent will accept any content-coding in response.</p> 1912 <div class="note" id="rfc.section.5.3.4.p.9"> 1924 1913 <p> <b>Note:</b> Most HTTP/1.0 applications do not recognize or obey qvalues associated with content-codings. This means that qvalues will 1925 1914 not work and are not permitted with x-gzip or x-compress. … … 1927 1916 </div> 1928 1917 <div id="rfc.iref.a.4"></div> 1929 <h3 id="rfc.section. 6.3.5"><a href="#rfc.section.6.3.5">6.3.5</a> <a id="header.accept-language" href="#header.accept-language">Accept-Language</a></h3>1930 <p id="rfc.section. 6.3.5.p.1">The "Accept-Language" header field can be used by user agents to indicate the set of natural languages that are preferred1931 in the response. Language tags are defined in <a href="#language.tags" title="Language Tags">Section 9.6</a>.1918 <h3 id="rfc.section.5.3.5"><a href="#rfc.section.5.3.5">5.3.5</a> <a id="header.accept-language" href="#header.accept-language">Accept-Language</a></h3> 1919 <p id="rfc.section.5.3.5.p.1">The "Accept-Language" header field can be used by user agents to indicate the set of natural languages that are preferred 1920 in the response. Language tags are defined in <a href="#language.tags" title="Language Tags">Section 8.6</a>. 1932 1921 </p> 1933 1922 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span> <a href="#header.accept-language" class="smpl">Accept-Language</a> = 1#( <a href="#header.accept-language" class="smpl">language-range</a> [ <a href="#quality.values" class="smpl">weight</a> ] ) 1934 1923 <a href="#header.accept-language" class="smpl">language-range</a> = 1935 1924 <language-range, defined in <a href="#RFC4647" id="rfc.xref.RFC4647.1"><cite title="Matching of Language Tags">[RFC4647]</cite></a>, <a href="http://tools.ietf.org/html/rfc4647#section-2.1">Section 2.1</a>> 1936 </pre><p id="rfc.section. 6.3.5.p.3">Each language-range can be given an associated quality value which represents an estimate of the user's preference for the1937 languages specified by that range, as defined in <a href="#quality.values" title="Quality Values">Section 6.3.1</a>. For example,1925 </pre><p id="rfc.section.5.3.5.p.3">Each language-range can be given an associated quality value which represents an estimate of the user's preference for the 1926 languages specified by that range, as defined in <a href="#quality.values" title="Quality Values">Section 5.3.1</a>. For example, 1938 1927 </p> 1939 1928 <div id="rfc.figure.u.26"></div><pre class="text"> Accept-Language: da, en-gb;q=0.8, en;q=0.7 1940 </pre><p id="rfc.section. 6.3.5.p.5">would mean: "I prefer Danish, but will accept British English and other types of English". (see also <a href="http://tools.ietf.org/html/rfc4647#section-2.3">Section 2.3</a> of <a href="#RFC4647" id="rfc.xref.RFC4647.2"><cite title="Matching of Language Tags">[RFC4647]</cite></a>)1941 </p> 1942 <p id="rfc.section. 6.3.5.p.6">For matching, <a href="http://tools.ietf.org/html/rfc4647#section-3">Section 3</a> of <a href="#RFC4647" id="rfc.xref.RFC4647.3"><cite title="Matching of Language Tags">[RFC4647]</cite></a> defines several matching schemes. Implementations can offer the most appropriate matching scheme for their requirements.1943 </p> 1944 <div class="note" id="rfc.section. 6.3.5.p.7">1929 </pre><p id="rfc.section.5.3.5.p.5">would mean: "I prefer Danish, but will accept British English and other types of English". (see also <a href="http://tools.ietf.org/html/rfc4647#section-2.3">Section 2.3</a> of <a href="#RFC4647" id="rfc.xref.RFC4647.2"><cite title="Matching of Language Tags">[RFC4647]</cite></a>) 1930 </p> 1931 <p id="rfc.section.5.3.5.p.6">For matching, <a href="http://tools.ietf.org/html/rfc4647#section-3">Section 3</a> of <a href="#RFC4647" id="rfc.xref.RFC4647.3"><cite title="Matching of Language Tags">[RFC4647]</cite></a> defines several matching schemes. Implementations can offer the most appropriate matching scheme for their requirements. 1932 </p> 1933 <div class="note" id="rfc.section.5.3.5.p.7"> 1945 1934 <p> <b>Note:</b> The "Basic Filtering" scheme (<a href="#RFC4647" id="rfc.xref.RFC4647.4"><cite title="Matching of Language Tags">[RFC4647]</cite></a>, <a href="http://tools.ietf.org/html/rfc4647#section-3.3.1">Section 3.3.1</a>) is identical to the matching scheme that was previously defined in <a href="http://tools.ietf.org/html/rfc2616#section-14.4">Section 14.4</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>. 1946 1935 </p> 1947 1936 </div> 1948 <p id="rfc.section. 6.3.5.p.8">It might be contrary to the privacy expectations of the user to send an Accept-Language header field with the complete linguistic1949 preferences of the user in every request. For a discussion of this issue, see <a href="#privacy.issues.connected.to.accept.header.fields" title="Privacy Issues Connected to Accept Header Fields">Section 1 1.5</a>.1950 </p> 1951 <p id="rfc.section. 6.3.5.p.9">As intelligibility is highly dependent on the individual user, it is recommended that client applications make the choice1937 <p id="rfc.section.5.3.5.p.8">It might be contrary to the privacy expectations of the user to send an Accept-Language header field with the complete linguistic 1938 preferences of the user in every request. For a discussion of this issue, see <a href="#privacy.issues.connected.to.accept.header.fields" title="Privacy Issues Connected to Accept Header Fields">Section 10.5</a>. 1939 </p> 1940 <p id="rfc.section.5.3.5.p.9">As intelligibility is highly dependent on the individual user, it is recommended that client applications make the choice 1952 1941 of linguistic preference available to the user. If the choice is not made available, then the Accept-Language header field <em class="bcp14">MUST NOT</em> be given in the request. 1953 1942 </p> 1954 <div class="note" id="rfc.section. 6.3.5.p.10">1943 <div class="note" id="rfc.section.5.3.5.p.10"> 1955 1944 <p> <b>Note:</b> When making the choice of linguistic preference available to the user, we remind implementers of the fact that users are not 1956 1945 familiar with the details of language matching as described above, and ought to be provided appropriate guidance. As an example, … … 1959 1948 </p> 1960 1949 </div> 1961 <h2 id="rfc.section. 6.4"><a href="#rfc.section.6.4">6.4</a> <a id="request.auth" href="#request.auth">Authentication</a></h2>1950 <h2 id="rfc.section.5.4"><a href="#rfc.section.5.4">5.4</a> <a id="request.auth" href="#request.auth">Authentication</a></h2> 1962 1951 <div id="rfc.table.u.8"> 1963 1952 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 1980 1969 </table> 1981 1970 </div> 1982 <h2 id="rfc.section. 6.5"><a href="#rfc.section.6.5">6.5</a> <a id="request.context" href="#request.context">Context</a></h2>1971 <h2 id="rfc.section.5.5"><a href="#rfc.section.5.5">5.5</a> <a id="request.context" href="#request.context">Context</a></h2> 1983 1972 <div id="rfc.table.u.9"> 1984 1973 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 1992 1981 <tr> 1993 1982 <td class="left">From</td> 1994 <td class="left"><a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 6.5.1</a></td>1983 <td class="left"><a href="#header.from" id="rfc.xref.header.from.1" title="From">Section 5.5.1</a></td> 1995 1984 </tr> 1996 1985 <tr> 1997 1986 <td class="left">Referer</td> 1998 <td class="left"><a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 6.5.2</a></td>1987 <td class="left"><a href="#header.referer" id="rfc.xref.header.referer.1" title="Referer">Section 5.5.2</a></td> 1999 1988 </tr> 2000 1989 <tr> … … 2004 1993 <tr> 2005 1994 <td class="left">User-Agent</td> 2006 <td class="left"><a href="#header.user-agent" id="rfc.xref.header.user-agent.2" title="User-Agent">Section 6.5.3</a></td>1995 <td class="left"><a href="#header.user-agent" id="rfc.xref.header.user-agent.2" title="User-Agent">Section 5.5.3</a></td> 2007 1996 </tr> 2008 1997 </tbody> … … 2010 1999 </div> 2011 2000 <div id="rfc.iref.f.1"></div> 2012 <h3 id="rfc.section. 6.5.1"><a href="#rfc.section.6.5.1">6.5.1</a> <a id="header.from" href="#header.from">From</a></h3>2013 <p id="rfc.section. 6.5.1.p.1">The "From" header field, if given, <em class="bcp14">SHOULD</em> contain an Internet e-mail address for the human user who controls the requesting user agent. The address <em class="bcp14">SHOULD</em> be machine-usable, as defined by "mailbox" in <a href="http://tools.ietf.org/html/rfc5322#section-3.4">Section 3.4</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.1"><cite title="Internet Message Format">[RFC5322]</cite></a>:2001 <h3 id="rfc.section.5.5.1"><a href="#rfc.section.5.5.1">5.5.1</a> <a id="header.from" href="#header.from">From</a></h3> 2002 <p id="rfc.section.5.5.1.p.1">The "From" header field, if given, <em class="bcp14">SHOULD</em> contain an Internet e-mail address for the human user who controls the requesting user agent. The address <em class="bcp14">SHOULD</em> be machine-usable, as defined by "mailbox" in <a href="http://tools.ietf.org/html/rfc5322#section-3.4">Section 3.4</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.1"><cite title="Internet Message Format">[RFC5322]</cite></a>: 2014 2003 </p> 2015 2004 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.24"></span> <a href="#header.from" class="smpl">From</a> = <a href="#header.from" class="smpl">mailbox</a> 2016 2005 2017 2006 <a href="#header.from" class="smpl">mailbox</a> = <mailbox, defined in <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.4">Section 3.4</a>> 2018 </pre><p id="rfc.section. 6.5.1.p.3">An example is:</p>2007 </pre><p id="rfc.section.5.5.1.p.3">An example is:</p> 2019 2008 <div id="rfc.figure.u.28"></div><pre class="text"> From: webmaster@example.org 2020 </pre><p id="rfc.section. 6.5.1.p.5">This header field <em class="bcp14">MAY</em> be used for logging purposes and as a means for identifying the source of invalid or unwanted requests. It <em class="bcp14">SHOULD NOT</em> be used as an insecure form of access protection. The interpretation of this field is that the request is being performed2009 </pre><p id="rfc.section.5.5.1.p.5">This header field <em class="bcp14">MAY</em> be used for logging purposes and as a means for identifying the source of invalid or unwanted requests. It <em class="bcp14">SHOULD NOT</em> be used as an insecure form of access protection. The interpretation of this field is that the request is being performed 2021 2010 on behalf of the person given, who accepts responsibility for the method performed. In particular, robot agents <em class="bcp14">SHOULD</em> include this header field so that the person responsible for running the robot can be contacted if problems occur on the receiving 2022 2011 end. 2023 2012 </p> 2024 <p id="rfc.section. 6.5.1.p.6">The Internet e-mail address in this field <em class="bcp14">MAY</em> be separate from the Internet host which issued the request. For example, when a request is passed through a proxy the original2013 <p id="rfc.section.5.5.1.p.6">The Internet e-mail address in this field <em class="bcp14">MAY</em> be separate from the Internet host which issued the request. For example, when a request is passed through a proxy the original 2025 2014 issuer's address <em class="bcp14">SHOULD</em> be used. 2026 2015 </p> 2027 <p id="rfc.section. 6.5.1.p.7">The client <em class="bcp14">SHOULD NOT</em> send the From header field without the user's approval, as it might conflict with the user's privacy interests or their site's2016 <p id="rfc.section.5.5.1.p.7">The client <em class="bcp14">SHOULD NOT</em> send the From header field without the user's approval, as it might conflict with the user's privacy interests or their site's 2028 2017 security policy. It is strongly recommended that the user be able to disable, enable, and modify the value of this field at 2029 2018 any time prior to a request. 2030 2019 </p> 2031 2020 <div id="rfc.iref.r.2"></div> 2032 <h3 id="rfc.section. 6.5.2"><a href="#rfc.section.6.5.2">6.5.2</a> <a id="header.referer" href="#header.referer">Referer</a></h3>2033 <p id="rfc.section. 6.5.2.p.1">The "Referer" [sic] header field allows the client to specify the URI of the resource from which the target URI was obtained2021 <h3 id="rfc.section.5.5.2"><a href="#rfc.section.5.5.2">5.5.2</a> <a id="header.referer" href="#header.referer">Referer</a></h3> 2022 <p id="rfc.section.5.5.2.p.1">The "Referer" [sic] header field allows the client to specify the URI of the resource from which the target URI was obtained 2034 2023 (the "referrer", although the header field is misspelled.). 2035 2024 </p> 2036 <p id="rfc.section. 6.5.2.p.2">The Referer header field allows servers to generate lists of back-links to resources for interest, logging, optimized caching,2025 <p id="rfc.section.5.5.2.p.2">The Referer header field allows servers to generate lists of back-links to resources for interest, logging, optimized caching, 2037 2026 etc. It also allows obsolete or mistyped links to be traced for maintenance. Some servers use Referer as a means of controlling 2038 2027 where they allow links from (so-called "deep linking"), but legitimate requests do not always contain a Referer header field. 2039 2028 </p> 2040 <p id="rfc.section. 6.5.2.p.3">If the target URI was obtained from a source that does not have its own URI (e.g., input from the user keyboard), the Referer2029 <p id="rfc.section.5.5.2.p.3">If the target URI was obtained from a source that does not have its own URI (e.g., input from the user keyboard), the Referer 2041 2030 field <em class="bcp14">MUST</em> either be sent with the value "about:blank", or not be sent at all. Note that this requirement does not apply to sources with 2042 2031 non-HTTP URIs (e.g., FTP). 2043 2032 </p> 2044 2033 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.25"></span> <a href="#header.referer" class="smpl">Referer</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a> 2045 </pre><p id="rfc.section. 6.5.2.p.5">Example:</p>2034 </pre><p id="rfc.section.5.5.2.p.5">Example:</p> 2046 2035 <div id="rfc.figure.u.30"></div><pre class="text"> Referer: http://www.example.org/hypertext/Overview.html 2047 </pre><p id="rfc.section. 6.5.2.p.7">If the field value is a relative URI, it <em class="bcp14">SHOULD</em> be interpreted relative to the effective request URI. The URI <em class="bcp14">MUST NOT</em> include a fragment. See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section 11.2</a> for security considerations.2036 </pre><p id="rfc.section.5.5.2.p.7">If the field value is a relative URI, it <em class="bcp14">SHOULD</em> be interpreted relative to the effective request URI. The URI <em class="bcp14">MUST NOT</em> include a fragment. See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section 10.2</a> for security considerations. 2048 2037 </p> 2049 2038 <div id="rfc.iref.u.1"></div> 2050 <h3 id="rfc.section. 6.5.3"><a href="#rfc.section.6.5.3">6.5.3</a> <a id="header.user-agent" href="#header.user-agent">User-Agent</a></h3>2051 <p id="rfc.section. 6.5.3.p.1">The "User-Agent" header field contains information about the user agent originating the request. User agents <em class="bcp14">SHOULD</em> include this field with requests.2052 </p> 2053 <p id="rfc.section. 6.5.3.p.2">Typically, it is used for statistical purposes, the tracing of protocol violations, and tailoring responses to avoid particular2039 <h3 id="rfc.section.5.5.3"><a href="#rfc.section.5.5.3">5.5.3</a> <a id="header.user-agent" href="#header.user-agent">User-Agent</a></h3> 2040 <p id="rfc.section.5.5.3.p.1">The "User-Agent" header field contains information about the user agent originating the request. User agents <em class="bcp14">SHOULD</em> include this field with requests. 2041 </p> 2042 <p id="rfc.section.5.5.3.p.2">Typically, it is used for statistical purposes, the tracing of protocol violations, and tailoring responses to avoid particular 2054 2043 user agent limitations. 2055 2044 </p> 2056 <p id="rfc.section. 6.5.3.p.3">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 9.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) identifying the agent and its significant subproducts. By convention, the product tokens are listed in order of their significance2045 <p id="rfc.section.5.5.3.p.3">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 8.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) identifying the agent and its significant subproducts. By convention, the product tokens are listed in order of their significance 2057 2046 for identifying the application. 2058 2047 </p> 2059 <p id="rfc.section. 6.5.3.p.4">Because this field is usually sent on every request a user agent makes, implementations are encouraged not to include needlessly2048 <p id="rfc.section.5.5.3.p.4">Because this field is usually sent on every request a user agent makes, implementations are encouraged not to include needlessly 2060 2049 fine-grained detail, and to limit (or even prohibit) the addition of subproducts by third parties. Overly long and detailed 2061 2050 User-Agent field values make requests larger and can also be used to identify ("fingerprint") the user against their wishes. 2062 2051 </p> 2063 <p id="rfc.section. 6.5.3.p.5">Likewise, implementations are encouraged not to use the product tokens of other implementations in order to declare compatibility2052 <p id="rfc.section.5.5.3.p.5">Likewise, implementations are encouraged not to use the product tokens of other implementations in order to declare compatibility 2064 2053 with them, as this circumvents the purpose of the field. Finally, they are encouraged not to use comments to identify products; 2065 2054 doing so makes the field value more difficult to parse. 2066 2055 </p> 2067 2056 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.26"></span> <a href="#header.user-agent" class="smpl">User-Agent</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) ) 2068 </pre><p id="rfc.section. 6.5.3.p.7">Example:</p>2057 </pre><p id="rfc.section.5.5.3.p.7">Example:</p> 2069 2058 <div id="rfc.figure.u.32"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 2070 </pre><h1 id="rfc.section. 7"><a href="#rfc.section.7">7.</a> <a id="status.codes" href="#status.codes">Response Status Codes</a></h1>2071 <p id="rfc.section. 7.p.1">The status-code element is a 3-digit integer result code of the attempt to understand and satisfy the request.</p>2072 <p id="rfc.section. 7.p.2">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes,2059 </pre><h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="status.codes" href="#status.codes">Response Status Codes</a></h1> 2060 <p id="rfc.section.6.p.1">The status-code element is a 3-digit integer result code of the attempt to understand and satisfy the request.</p> 2061 <p id="rfc.section.6.p.2">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes, 2073 2062 though such understanding is obviously desirable. However, applications <em class="bcp14">MUST</em> understand the class of any status code, as indicated by the first digit, and treat any unrecognized response as being equivalent 2074 2063 to the x00 status code of that class, with the exception that an unrecognized response <em class="bcp14">MUST NOT</em> be cached. For example, if an unrecognized status code of 431 is received by the client, it can safely assume that there was … … 2076 2065 information which will explain the unusual status. 2077 2066 </p> 2078 <p id="rfc.section. 7.p.3">The first digit of the status-code defines the class of response. The last two digits do not have any categorization role.2067 <p id="rfc.section.6.p.3">The first digit of the status-code defines the class of response. The last two digits do not have any categorization role. 2079 2068 There are 5 values for the first digit: 2080 2069 </p> … … 2091 2080 </li> 2092 2081 </ul> 2093 <p id="rfc.section. 7.p.4">For most status codes the response can carry a payload, in which case a <a href="#header.content-type" class="smpl">Content-Type</a> header field indicates the payload's media type (<a href="#header.content-type" id="rfc.xref.header.content-type.2" title="Content-Type">Section 3.2.1</a>).2094 </p> 2095 <h2 id="rfc.section. 7.1"><a href="#rfc.section.7.1">7.1</a> <a id="overview.of.status.codes" href="#overview.of.status.codes">Overview of Status Codes</a></h2>2096 <p id="rfc.section. 7.1.p.1">The status codes listed below are defined in this specification, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>. The reason phrases listed here are only recommendations — they can be replaced by local equivalents without affecting the2082 <p id="rfc.section.6.p.4">For most status codes the response can carry a payload, in which case a <a href="#header.content-type" class="smpl">Content-Type</a> header field indicates the payload's media type (<a href="#header.content-type" id="rfc.xref.header.content-type.2" title="Content-Type">Section 3.3.1</a>). 2083 </p> 2084 <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="overview.of.status.codes" href="#overview.of.status.codes">Overview of Status Codes</a></h2> 2085 <p id="rfc.section.6.1.p.1">The status codes listed below are defined in this specification, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>. The reason phrases listed here are only recommendations — they can be replaced by local equivalents without affecting the 2097 2086 protocol. 2098 2087 </p> … … 2110 2099 <td class="left">100</td> 2111 2100 <td class="left">Continue</td> 2112 <td class="left"><a href="#status.100" id="rfc.xref.status.100.3" title="100 Continue">Section 7.2.1</a></td>2101 <td class="left"><a href="#status.100" id="rfc.xref.status.100.3" title="100 Continue">Section 6.2.1</a></td> 2113 2102 </tr> 2114 2103 <tr> 2115 2104 <td class="left">101</td> 2116 2105 <td class="left">Switching Protocols</td> 2117 <td class="left"><a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section 7.2.2</a></td>2106 <td class="left"><a href="#status.101" id="rfc.xref.status.101.1" title="101 Switching Protocols">Section 6.2.2</a></td> 2118 2107 </tr> 2119 2108 <tr> 2120 2109 <td class="left">200</td> 2121 2110 <td class="left">OK</td> 2122 <td class="left"><a href="#status.200" id="rfc.xref.status.200.1" title="200 OK">Section 7.3.1</a></td>2111 <td class="left"><a href="#status.200" id="rfc.xref.status.200.1" title="200 OK">Section 6.3.1</a></td> 2123 2112 </tr> 2124 2113 <tr> 2125 2114 <td class="left">201</td> 2126 2115 <td class="left">Created</td> 2127 <td class="left"><a href="#status.201" id="rfc.xref.status.201.1" title="201 Created">Section 7.3.2</a></td>2116 <td class="left"><a href="#status.201" id="rfc.xref.status.201.1" title="201 Created">Section 6.3.2</a></td> 2128 2117 </tr> 2129 2118 <tr> 2130 2119 <td class="left">202</td> 2131 2120 <td class="left">Accepted</td> 2132 <td class="left"><a href="#status.202" id="rfc.xref.status.202.1" title="202 Accepted">Section 7.3.3</a></td>2121 <td class="left"><a href="#status.202" id="rfc.xref.status.202.1" title="202 Accepted">Section 6.3.3</a></td> 2133 2122 </tr> 2134 2123 <tr> 2135 2124 <td class="left">203</td> 2136 2125 <td class="left">Non-Authoritative Information</td> 2137 <td class="left"><a href="#status.203" id="rfc.xref.status.203.1" title="203 Non-Authoritative Information">Section 7.3.4</a></td>2126 <td class="left"><a href="#status.203" id="rfc.xref.status.203.1" title="203 Non-Authoritative Information">Section 6.3.4</a></td> 2138 2127 </tr> 2139 2128 <tr> 2140 2129 <td class="left">204</td> 2141 2130 <td class="left">No Content</td> 2142 <td class="left"><a href="#status.204" id="rfc.xref.status.204.1" title="204 No Content">Section 7.3.5</a></td>2131 <td class="left"><a href="#status.204" id="rfc.xref.status.204.1" title="204 No Content">Section 6.3.5</a></td> 2143 2132 </tr> 2144 2133 <tr> 2145 2134 <td class="left">205</td> 2146 2135 <td class="left">Reset Content</td> 2147 <td class="left"><a href="#status.205" id="rfc.xref.status.205.1" title="205 Reset Content">Section 7.3.6</a></td>2136 <td class="left"><a href="#status.205" id="rfc.xref.status.205.1" title="205 Reset Content">Section 6.3.6</a></td> 2148 2137 </tr> 2149 2138 <tr> … … 2155 2144 <td class="left">300</td> 2156 2145 <td class="left">Multiple Choices</td> 2157 <td class="left"><a href="#status.300" id="rfc.xref.status.300.1" title="300 Multiple Choices">Section 7.4.1</a></td>2146 <td class="left"><a href="#status.300" id="rfc.xref.status.300.1" title="300 Multiple Choices">Section 6.4.1</a></td> 2158 2147 </tr> 2159 2148 <tr> 2160 2149 <td class="left">301</td> 2161 2150 <td class="left">Moved Permanently</td> 2162 <td class="left"><a href="#status.301" id="rfc.xref.status.301.1" title="301 Moved Permanently">Section 7.4.2</a></td>2151 <td class="left"><a href="#status.301" id="rfc.xref.status.301.1" title="301 Moved Permanently">Section 6.4.2</a></td> 2163 2152 </tr> 2164 2153 <tr> 2165 2154 <td class="left">302</td> 2166 2155 <td class="left">Found</td> 2167 <td class="left"><a href="#status.302" id="rfc.xref.status.302.1" title="302 Found">Section 7.4.3</a></td>2156 <td class="left"><a href="#status.302" id="rfc.xref.status.302.1" title="302 Found">Section 6.4.3</a></td> 2168 2157 </tr> 2169 2158 <tr> 2170 2159 <td class="left">303</td> 2171 2160 <td class="left">See Other</td> 2172 <td class="left"><a href="#status.303" id="rfc.xref.status.303.1" title="303 See Other">Section 7.4.4</a></td>2161 <td class="left"><a href="#status.303" id="rfc.xref.status.303.1" title="303 See Other">Section 6.4.4</a></td> 2173 2162 </tr> 2174 2163 <tr> … … 2180 2169 <td class="left">305</td> 2181 2170 <td class="left">Use Proxy</td> 2182 <td class="left"><a href="#status.305" id="rfc.xref.status.305.1" title="305 Use Proxy">Section 7.4.5</a></td>2171 <td class="left"><a href="#status.305" id="rfc.xref.status.305.1" title="305 Use Proxy">Section 6.4.5</a></td> 2183 2172 </tr> 2184 2173 <tr> 2185 2174 <td class="left">307</td> 2186 2175 <td class="left">Temporary Redirect</td> 2187 <td class="left"><a href="#status.307" id="rfc.xref.status.307.1" title="307 Temporary Redirect">Section 7.4.7</a></td>2176 <td class="left"><a href="#status.307" id="rfc.xref.status.307.1" title="307 Temporary Redirect">Section 6.4.7</a></td> 2188 2177 </tr> 2189 2178 <tr> 2190 2179 <td class="left">400</td> 2191 2180 <td class="left">Bad Request</td> 2192 <td class="left"><a href="#status.400" id="rfc.xref.status.400.1" title="400 Bad Request">Section 7.5.1</a></td>2181 <td class="left"><a href="#status.400" id="rfc.xref.status.400.1" title="400 Bad Request">Section 6.5.1</a></td> 2193 2182 </tr> 2194 2183 <tr> … … 2200 2189 <td class="left">402</td> 2201 2190 <td class="left">Payment Required</td> 2202 <td class="left"><a href="#status.402" id="rfc.xref.status.402.1" title="402 Payment Required">Section 7.5.2</a></td>2191 <td class="left"><a href="#status.402" id="rfc.xref.status.402.1" title="402 Payment Required">Section 6.5.2</a></td> 2203 2192 </tr> 2204 2193 <tr> 2205 2194 <td class="left">403</td> 2206 2195 <td class="left">Forbidden</td> 2207 <td class="left"><a href="#status.403" id="rfc.xref.status.403.1" title="403 Forbidden">Section 7.5.3</a></td>2196 <td class="left"><a href="#status.403" id="rfc.xref.status.403.1" title="403 Forbidden">Section 6.5.3</a></td> 2208 2197 </tr> 2209 2198 <tr> 2210 2199 <td class="left">404</td> 2211 2200 <td class="left">Not Found</td> 2212 <td class="left"><a href="#status.404" id="rfc.xref.status.404.1" title="404 Not Found">Section 7.5.4</a></td>2201 <td class="left"><a href="#status.404" id="rfc.xref.status.404.1" title="404 Not Found">Section 6.5.4</a></td> 2213 2202 </tr> 2214 2203 <tr> 2215 2204 <td class="left">405</td> 2216 2205 <td class="left">Method Not Allowed</td> 2217 <td class="left"><a href="#status.405" id="rfc.xref.status.405.1" title="405 Method Not Allowed">Section 7.5.5</a></td>2206 <td class="left"><a href="#status.405" id="rfc.xref.status.405.1" title="405 Method Not Allowed">Section 6.5.5</a></td> 2218 2207 </tr> 2219 2208 <tr> 2220 2209 <td class="left">406</td> 2221 2210 <td class="left">Not Acceptable</td> 2222 <td class="left"><a href="#status.406" id="rfc.xref.status.406.1" title="406 Not Acceptable">Section 7.5.6</a></td>2211 <td class="left"><a href="#status.406" id="rfc.xref.status.406.1" title="406 Not Acceptable">Section 6.5.6</a></td> 2223 2212 </tr> 2224 2213 <tr> … … 2230 2219 <td class="left">408</td> 2231 2220 <td class="left">Request Time-out</td> 2232 <td class="left"><a href="#status.408" id="rfc.xref.status.408.1" title="408 Request Timeout">Section 7.5.7</a></td>2221 <td class="left"><a href="#status.408" id="rfc.xref.status.408.1" title="408 Request Timeout">Section 6.5.7</a></td> 2233 2222 </tr> 2234 2223 <tr> 2235 2224 <td class="left">409</td> 2236 2225 <td class="left">Conflict</td> 2237 <td class="left"><a href="#status.409" id="rfc.xref.status.409.1" title="409 Conflict">Section 7.5.8</a></td>2226 <td class="left"><a href="#status.409" id="rfc.xref.status.409.1" title="409 Conflict">Section 6.5.8</a></td> 2238 2227 </tr> 2239 2228 <tr> 2240 2229 <td class="left">410</td> 2241 2230 <td class="left">Gone</td> 2242 <td class="left"><a href="#status.410" id="rfc.xref.status.410.1" title="410 Gone">Section 7.5.9</a></td>2231 <td class="left"><a href="#status.410" id="rfc.xref.status.410.1" title="410 Gone">Section 6.5.9</a></td> 2243 2232 </tr> 2244 2233 <tr> 2245 2234 <td class="left">411</td> 2246 2235 <td class="left">Length Required</td> 2247 <td class="left"><a href="#status.411" id="rfc.xref.status.411.1" title="411 Length Required">Section 7.5.10</a></td>2236 <td class="left"><a href="#status.411" id="rfc.xref.status.411.1" title="411 Length Required">Section 6.5.10</a></td> 2248 2237 </tr> 2249 2238 <tr> … … 2255 2244 <td class="left">413</td> 2256 2245 <td class="left">Request Representation Too Large</td> 2257 <td class="left"><a href="#status.413" id="rfc.xref.status.413.1" title="413 Request Representation Too Large">Section 7.5.11</a></td>2246 <td class="left"><a href="#status.413" id="rfc.xref.status.413.1" title="413 Request Representation Too Large">Section 6.5.11</a></td> 2258 2247 </tr> 2259 2248 <tr> 2260 2249 <td class="left">414</td> 2261 2250 <td class="left">URI Too Long</td> 2262 <td class="left"><a href="#status.414" id="rfc.xref.status.414.1" title="414 URI Too Long">Section 7.5.12</a></td>2251 <td class="left"><a href="#status.414" id="rfc.xref.status.414.1" title="414 URI Too Long">Section 6.5.12</a></td> 2263 2252 </tr> 2264 2253 <tr> 2265 2254 <td class="left">415</td> 2266 2255 <td class="left">Unsupported Media Type</td> 2267 <td class="left"><a href="#status.415" id="rfc.xref.status.415.1" title="415 Unsupported Media Type">Section 7.5.13</a></td>2256 <td class="left"><a href="#status.415" id="rfc.xref.status.415.1" title="415 Unsupported Media Type">Section 6.5.13</a></td> 2268 2257 </tr> 2269 2258 <tr> … … 2275 2264 <td class="left">417</td> 2276 2265 <td class="left">Expectation Failed</td> 2277 <td class="left"><a href="#status.417" id="rfc.xref.status.417.1" title="417 Expectation Failed">Section 7.5.14</a></td>2266 <td class="left"><a href="#status.417" id="rfc.xref.status.417.1" title="417 Expectation Failed">Section 6.5.14</a></td> 2278 2267 </tr> 2279 2268 <tr> 2280 2269 <td class="left">426</td> 2281 2270 <td class="left">Upgrade Required</td> 2282 <td class="left"><a href="#status.426" id="rfc.xref.status.426.1" title="426 Upgrade Required">Section 7.5.15</a></td>2271 <td class="left"><a href="#status.426" id="rfc.xref.status.426.1" title="426 Upgrade Required">Section 6.5.15</a></td> 2283 2272 </tr> 2284 2273 <tr> 2285 2274 <td class="left">500</td> 2286 2275 <td class="left">Internal Server Error</td> 2287 <td class="left"><a href="#status.500" id="rfc.xref.status.500.1" title="500 Internal Server Error">Section 7.6.1</a></td>2276 <td class="left"><a href="#status.500" id="rfc.xref.status.500.1" title="500 Internal Server Error">Section 6.6.1</a></td> 2288 2277 </tr> 2289 2278 <tr> 2290 2279 <td class="left">501</td> 2291 2280 <td class="left">Not Implemented</td> 2292 <td class="left"><a href="#status.501" id="rfc.xref.status.501.1" title="501 Not Implemented">Section 7.6.2</a></td>2281 <td class="left"><a href="#status.501" id="rfc.xref.status.501.1" title="501 Not Implemented">Section 6.6.2</a></td> 2293 2282 </tr> 2294 2283 <tr> 2295 2284 <td class="left">502</td> 2296 2285 <td class="left">Bad Gateway</td> 2297 <td class="left"><a href="#status.502" id="rfc.xref.status.502.1" title="502 Bad Gateway">Section 7.6.3</a></td>2286 <td class="left"><a href="#status.502" id="rfc.xref.status.502.1" title="502 Bad Gateway">Section 6.6.3</a></td> 2298 2287 </tr> 2299 2288 <tr> 2300 2289 <td class="left">503</td> 2301 2290 <td class="left">Service Unavailable</td> 2302 <td class="left"><a href="#status.503" id="rfc.xref.status.503.1" title="503 Service Unavailable">Section 7.6.4</a></td>2291 <td class="left"><a href="#status.503" id="rfc.xref.status.503.1" title="503 Service Unavailable">Section 6.6.4</a></td> 2303 2292 </tr> 2304 2293 <tr> 2305 2294 <td class="left">504</td> 2306 2295 <td class="left">Gateway Time-out</td> 2307 <td class="left"><a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section 7.6.5</a></td>2296 <td class="left"><a href="#status.504" id="rfc.xref.status.504.1" title="504 Gateway Timeout">Section 6.6.5</a></td> 2308 2297 </tr> 2309 2298 <tr> 2310 2299 <td class="left">505</td> 2311 2300 <td class="left">HTTP Version not supported</td> 2312 <td class="left"><a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section 7.6.6</a></td>2301 <td class="left"><a href="#status.505" id="rfc.xref.status.505.1" title="505 HTTP Version Not Supported">Section 6.6.6</a></td> 2313 2302 </tr> 2314 2303 </tbody> 2315 2304 </table> 2316 2305 </div> 2317 <p id="rfc.section. 7.1.p.2">Note that this list is not exhaustive — it does not include extension status codes defined in other specifications.</p>2318 <h2 id="rfc.section. 7.2"><a href="#rfc.section.7.2">7.2</a> <a id="status.1xx" href="#status.1xx">Informational 1xx</a></h2>2306 <p id="rfc.section.6.1.p.2">Note that this list is not exhaustive — it does not include extension status codes defined in other specifications.</p> 2307 <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a> <a id="status.1xx" href="#status.1xx">Informational 1xx</a></h2> 2319 2308 <div id="rfc.iref.54"></div> 2320 2309 <div id="rfc.iref.s.3"></div> 2321 <p id="rfc.section. 7.2.p.1">This class of status code indicates a provisional response, consisting only of the status-line and optional header fields,2310 <p id="rfc.section.6.2.p.1">This class of status code indicates a provisional response, consisting only of the status-line and optional header fields, 2322 2311 and is terminated by an empty line. There are no required header fields for this class of status code. Since HTTP/1.0 did 2323 2312 not define any 1xx status codes, servers <em class="bcp14">MUST NOT</em> send a 1xx response to an HTTP/1.0 client except under experimental conditions. 2324 2313 </p> 2325 <p id="rfc.section. 7.2.p.2">A client <em class="bcp14">MUST</em> be prepared to accept one or more 1xx status responses prior to a regular response, even if the client does not expect a <a href="#status.100" class="smpl">1002314 <p id="rfc.section.6.2.p.2">A client <em class="bcp14">MUST</em> be prepared to accept one or more 1xx status responses prior to a regular response, even if the client does not expect a <a href="#status.100" class="smpl">100 2326 2315 (Continue)</a> status message. Unexpected 1xx status responses <em class="bcp14">MAY</em> be ignored by a user agent. 2327 2316 </p> 2328 <p id="rfc.section. 7.2.p.3">Proxies <em class="bcp14">MUST</em> forward 1xx responses, unless the connection between the proxy and its client has been closed, or unless the proxy itself2317 <p id="rfc.section.6.2.p.3">Proxies <em class="bcp14">MUST</em> forward 1xx responses, unless the connection between the proxy and its client has been closed, or unless the proxy itself 2329 2318 requested the generation of the 1xx response. (For example, if a proxy adds an "Expect: 100-continue" field when it forwards 2330 2319 a request, then it need not forward the corresponding <a href="#status.100" class="smpl">100 (Continue)</a> response(s).) 2331 2320 </p> 2332 2321 <div id="rfc.iref.55"></div> 2333 <h3 id="rfc.section. 7.2.1"><a href="#rfc.section.7.2.1">7.2.1</a> <a id="status.100" href="#status.100">100 Continue</a></h3>2334 <p id="rfc.section. 7.2.1.p.1">The client <em class="bcp14">SHOULD</em> continue with its request. This interim response is used to inform the client that the initial part of the request has been2322 <h3 id="rfc.section.6.2.1"><a href="#rfc.section.6.2.1">6.2.1</a> <a id="status.100" href="#status.100">100 Continue</a></h3> 2323 <p id="rfc.section.6.2.1.p.1">The client <em class="bcp14">SHOULD</em> continue with its request. This interim response is used to inform the client that the initial part of the request has been 2335 2324 received and has not yet been rejected by the server. The client <em class="bcp14">SHOULD</em> continue by sending the remainder of the request or, if the request has already been completed, ignore this response. The 2336 server <em class="bcp14">MUST</em> send a final response after the request has been completed. See <a href="#use.of.the.100.status" title="Use of the 100 (Continue) Status">Section 6.1.2.1</a> for detailed discussion of the use and handling of this status code.2325 server <em class="bcp14">MUST</em> send a final response after the request has been completed. See <a href="#use.of.the.100.status" title="Use of the 100 (Continue) Status">Section 5.1.2.1</a> for detailed discussion of the use and handling of this status code. 2337 2326 </p> 2338 2327 <div id="rfc.iref.55"></div> 2339 <h3 id="rfc.section. 7.2.2"><a href="#rfc.section.7.2.2">7.2.2</a> <a id="status.101" href="#status.101">101 Switching Protocols</a></h3>2340 <p id="rfc.section. 7.2.2.p.1">The server understands and is willing to comply with the client's request, via the <a href="p1-messaging.html#header.upgrade" class="smpl">Upgrade</a> message header field (<a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 6.3</a> of <a href="#Part1" id="rfc.xref.Part1.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>), for a change in the application protocol being used on this connection. The server will switch protocols to those defined2328 <h3 id="rfc.section.6.2.2"><a href="#rfc.section.6.2.2">6.2.2</a> <a id="status.101" href="#status.101">101 Switching Protocols</a></h3> 2329 <p id="rfc.section.6.2.2.p.1">The server understands and is willing to comply with the client's request, via the <a href="p1-messaging.html#header.upgrade" class="smpl">Upgrade</a> message header field (<a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 6.3</a> of <a href="#Part1" id="rfc.xref.Part1.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>), for a change in the application protocol being used on this connection. The server will switch protocols to those defined 2341 2330 by the response's Upgrade header field immediately after the empty line which terminates the 101 response. 2342 2331 </p> 2343 <p id="rfc.section. 7.2.2.p.2">The protocol <em class="bcp14">SHOULD</em> be switched only when it is advantageous to do so. For example, switching to a newer version of HTTP is advantageous over2332 <p id="rfc.section.6.2.2.p.2">The protocol <em class="bcp14">SHOULD</em> be switched only when it is advantageous to do so. For example, switching to a newer version of HTTP is advantageous over 2344 2333 older versions, and switching to a real-time, synchronous protocol might be advantageous when delivering resources that use 2345 2334 such features. 2346 2335 </p> 2347 <h2 id="rfc.section. 7.3"><a href="#rfc.section.7.3">7.3</a> <a id="status.2xx" href="#status.2xx">Successful 2xx</a></h2>2336 <h2 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a> <a id="status.2xx" href="#status.2xx">Successful 2xx</a></h2> 2348 2337 <div id="rfc.iref.55"></div> 2349 2338 <div id="rfc.iref.s.4"></div> 2350 <p id="rfc.section. 7.3.p.1">This class of status code indicates that the client's request was successfully received, understood, and accepted.</p>2339 <p id="rfc.section.6.3.p.1">This class of status code indicates that the client's request was successfully received, understood, and accepted.</p> 2351 2340 <div id="rfc.iref.56"></div> 2352 <h3 id="rfc.section. 7.3.1"><a href="#rfc.section.7.3.1">7.3.1</a> <a id="status.200" href="#status.200">200 OK</a></h3>2353 <p id="rfc.section. 7.3.1.p.1">The request has succeeded. The payload returned with the response is dependent on the method used in the request, for example: </p>2341 <h3 id="rfc.section.6.3.1"><a href="#rfc.section.6.3.1">6.3.1</a> <a id="status.200" href="#status.200">200 OK</a></h3> 2342 <p id="rfc.section.6.3.1.p.1">The request has succeeded. The payload returned with the response is dependent on the method used in the request, for example: </p> 2354 2343 <dl> 2355 2344 <dt>GET</dt> … … 2362 2351 <dd>a representation containing the request message as received by the end server.</dd> 2363 2352 </dl> 2364 <p id="rfc.section. 7.3.1.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 200 responses.2353 <p id="rfc.section.6.3.1.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 200 responses. 2365 2354 </p> 2366 2355 <div id="rfc.iref.56"></div> 2367 <h3 id="rfc.section. 7.3.2"><a href="#rfc.section.7.3.2">7.3.2</a> <a id="status.201" href="#status.201">201 Created</a></h3>2368 <p id="rfc.section. 7.3.2.p.1">The request has been fulfilled and has resulted in one or more new resources being created.</p>2369 <p id="rfc.section. 7.3.2.p.2">Newly created resources are typically linked to from the response payload, with the most relevant URI also being carried in2356 <h3 id="rfc.section.6.3.2"><a href="#rfc.section.6.3.2">6.3.2</a> <a id="status.201" href="#status.201">201 Created</a></h3> 2357 <p id="rfc.section.6.3.2.p.1">The request has been fulfilled and has resulted in one or more new resources being created.</p> 2358 <p id="rfc.section.6.3.2.p.2">Newly created resources are typically linked to from the response payload, with the most relevant URI also being carried in 2370 2359 the <a href="#header.location" class="smpl">Location</a> header field. If the newly created resource's URI is the same as the Effective Request URI, this information can be omitted 2371 2360 (e.g., in the case of a response to a PUT request). 2372 2361 </p> 2373 <p id="rfc.section. 7.3.2.p.3">The origin server <em class="bcp14">MUST</em> create the resource(s) before returning the 201 status code. If the action cannot be carried out immediately, the server <em class="bcp14">SHOULD</em> respond with <a href="#status.202" class="smpl">202 (Accepted)</a> response instead.2374 </p> 2375 <p id="rfc.section. 7.3.2.p.4">A 201 response <em class="bcp14">MAY</em> contain an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> response header field indicating the current value of the entity-tag for the representation of the resource identified by2362 <p id="rfc.section.6.3.2.p.3">The origin server <em class="bcp14">MUST</em> create the resource(s) before returning the 201 status code. If the action cannot be carried out immediately, the server <em class="bcp14">SHOULD</em> respond with <a href="#status.202" class="smpl">202 (Accepted)</a> response instead. 2363 </p> 2364 <p id="rfc.section.6.3.2.p.4">A 201 response <em class="bcp14">MAY</em> contain an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> response header field indicating the current value of the entity-tag for the representation of the resource identified by 2376 2365 the <a href="#header.location" class="smpl">Location</a> header field or, in case the Location header field was omitted, by the Effective Request URI (see <a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>). 2377 2366 </p> 2378 2367 <div id="rfc.iref.56"></div> 2379 <h3 id="rfc.section. 7.3.3"><a href="#rfc.section.7.3.3">7.3.3</a> <a id="status.202" href="#status.202">202 Accepted</a></h3>2380 <p id="rfc.section. 7.3.3.p.1">The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually2368 <h3 id="rfc.section.6.3.3"><a href="#rfc.section.6.3.3">6.3.3</a> <a id="status.202" href="#status.202">202 Accepted</a></h3> 2369 <p id="rfc.section.6.3.3.p.1">The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually 2381 2370 be acted upon, as it might be disallowed when processing actually takes place. There is no facility for re-sending a status 2382 2371 code from an asynchronous operation such as this. 2383 2372 </p> 2384 <p id="rfc.section. 7.3.3.p.2">The 202 response is intentionally non-committal. Its purpose is to allow a server to accept a request for some other process2373 <p id="rfc.section.6.3.3.p.2">The 202 response is intentionally non-committal. Its purpose is to allow a server to accept a request for some other process 2385 2374 (perhaps a batch-oriented process that is only run once per day) without requiring that the user agent's connection to the 2386 2375 server persist until the process is completed. The representation returned with this response <em class="bcp14">SHOULD</em> include an indication of the request's current status and either a pointer to a status monitor or some estimate of when the … … 2388 2377 </p> 2389 2378 <div id="rfc.iref.56"></div> 2390 <h3 id="rfc.section. 7.3.4"><a href="#rfc.section.7.3.4">7.3.4</a> <a id="status.203" href="#status.203">203 Non-Authoritative Information</a></h3>2391 <p id="rfc.section. 7.3.4.p.1">The representation in the response has been transformed or otherwise modified by a transforming proxy (<a href="p1-messaging.html#intermediaries" title="Intermediaries">Section 2.3</a> of <a href="#Part1" id="rfc.xref.Part1.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). Note that the behavior of transforming intermediaries is controlled by the no-transform Cache-Control directive (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).2392 </p> 2393 <p id="rfc.section. 7.3.4.p.2">This status code is only appropriate when the response status code would have been <a href="#status.200" class="smpl">200 (OK)</a> otherwise. When the status code before transformation would have been different, the 214 Transformation Applied warn-code2379 <h3 id="rfc.section.6.3.4"><a href="#rfc.section.6.3.4">6.3.4</a> <a id="status.203" href="#status.203">203 Non-Authoritative Information</a></h3> 2380 <p id="rfc.section.6.3.4.p.1">The representation in the response has been transformed or otherwise modified by a transforming proxy (<a href="p1-messaging.html#intermediaries" title="Intermediaries">Section 2.3</a> of <a href="#Part1" id="rfc.xref.Part1.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). Note that the behavior of transforming intermediaries is controlled by the no-transform Cache-Control directive (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 2381 </p> 2382 <p id="rfc.section.6.3.4.p.2">This status code is only appropriate when the response status code would have been <a href="#status.200" class="smpl">200 (OK)</a> otherwise. When the status code before transformation would have been different, the 214 Transformation Applied warn-code 2394 2383 (<a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) is appropriate. 2395 2384 </p> 2396 <p id="rfc.section. 7.3.4.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 203 responses.2385 <p id="rfc.section.6.3.4.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 203 responses. 2397 2386 </p> 2398 2387 <div id="rfc.iref.56"></div> 2399 <h3 id="rfc.section. 7.3.5"><a href="#rfc.section.7.3.5">7.3.5</a> <a id="status.204" href="#status.204">204 No Content</a></h3>2400 <p id="rfc.section. 7.3.5.p.1">The 204 (No Content) status code indicates that the server has successfully fulfilled the request and that there is no additional2388 <h3 id="rfc.section.6.3.5"><a href="#rfc.section.6.3.5">6.3.5</a> <a id="status.204" href="#status.204">204 No Content</a></h3> 2389 <p id="rfc.section.6.3.5.p.1">The 204 (No Content) status code indicates that the server has successfully fulfilled the request and that there is no additional 2401 2390 content to return in the response payload body. Metadata in the response header fields refer to the target resource and its 2402 2391 current representation after the requested action. 2403 2392 </p> 2404 <p id="rfc.section. 7.3.5.p.2">For example, if a 204 status code is received in response to a PUT request and the response contains an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> header field, then the PUT was successful and the ETag field-value contains the entity-tag for the new representation of that2393 <p id="rfc.section.6.3.5.p.2">For example, if a 204 status code is received in response to a PUT request and the response contains an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> header field, then the PUT was successful and the ETag field-value contains the entity-tag for the new representation of that 2405 2394 target resource. 2406 2395 </p> 2407 <p id="rfc.section. 7.3.5.p.3">The 204 response allows a server to indicate that the action has been successfully applied to the target resource while implying2396 <p id="rfc.section.6.3.5.p.3">The 204 response allows a server to indicate that the action has been successfully applied to the target resource while implying 2408 2397 that the user agent <em class="bcp14">SHOULD NOT</em> traverse away from its current "document view" (if any). The server assumes that the user agent will provide some indication 2409 2398 of the success to its user, in accord with its own interface, and apply any new or updated metadata in the response to the 2410 2399 active representation. 2411 2400 </p> 2412 <p id="rfc.section. 7.3.5.p.4">For example, a 204 status code is commonly used with document editing interfaces corresponding to a "save" action, such that2401 <p id="rfc.section.6.3.5.p.4">For example, a 204 status code is commonly used with document editing interfaces corresponding to a "save" action, such that 2413 2402 the document being saved remains available to the user for editing. It is also frequently used with interfaces that expect 2414 2403 automated data transfers to be prevalent, such as within distributed version control systems. 2415 2404 </p> 2416 <p id="rfc.section. 7.3.5.p.5">The 204 response <em class="bcp14">MUST NOT</em> include a message body, and thus is always terminated by the first empty line after the header fields.2405 <p id="rfc.section.6.3.5.p.5">The 204 response <em class="bcp14">MUST NOT</em> include a message body, and thus is always terminated by the first empty line after the header fields. 2417 2406 </p> 2418 2407 <div id="rfc.iref.56"></div> 2419 <h3 id="rfc.section. 7.3.6"><a href="#rfc.section.7.3.6">7.3.6</a> <a id="status.205" href="#status.205">205 Reset Content</a></h3>2420 <p id="rfc.section. 7.3.6.p.1">The server has fulfilled the request and the user agent <em class="bcp14">SHOULD</em> reset the document view which caused the request to be sent. This response is primarily intended to allow input for actions2408 <h3 id="rfc.section.6.3.6"><a href="#rfc.section.6.3.6">6.3.6</a> <a id="status.205" href="#status.205">205 Reset Content</a></h3> 2409 <p id="rfc.section.6.3.6.p.1">The server has fulfilled the request and the user agent <em class="bcp14">SHOULD</em> reset the document view which caused the request to be sent. This response is primarily intended to allow input for actions 2421 2410 to take place via user input, followed by a clearing of the form in which the input is given so that the user can easily initiate 2422 2411 another input action. 2423 2412 </p> 2424 <p id="rfc.section. 7.3.6.p.2">The message body included with the response <em class="bcp14">MUST</em> be empty. Note that receivers still need to parse the response according to the algorithm defined in <a href="p1-messaging.html#message.body" title="Message Body">Section 3.3</a> of <a href="#Part1" id="rfc.xref.Part1.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.2425 </p> 2426 <h2 id="rfc.section. 7.4"><a href="#rfc.section.7.4">7.4</a> <a id="status.3xx" href="#status.3xx">Redirection 3xx</a></h2>2413 <p id="rfc.section.6.3.6.p.2">The message body included with the response <em class="bcp14">MUST</em> be empty. Note that receivers still need to parse the response according to the algorithm defined in <a href="p1-messaging.html#message.body" title="Message Body">Section 3.3</a> of <a href="#Part1" id="rfc.xref.Part1.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. 2414 </p> 2415 <h2 id="rfc.section.6.4"><a href="#rfc.section.6.4">6.4</a> <a id="status.3xx" href="#status.3xx">Redirection 3xx</a></h2> 2427 2416 <div id="rfc.iref.56"></div> 2428 2417 <div id="rfc.iref.s.5"></div> 2429 <p id="rfc.section. 7.4.p.1">This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request.2418 <p id="rfc.section.6.4.p.1">This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. 2430 2419 If the required action involves a subsequent HTTP request, it <em class="bcp14">MAY</em> be carried out by the user agent without interaction with the user if and only if the method used in the second request is 2431 known to be "safe", as defined in <a href="#safe.methods" title="Safe Methods">Section 5.2.1</a>.2432 </p> 2433 <p id="rfc.section. 7.4.p.2">There are several types of redirects: </p>2420 known to be "safe", as defined in <a href="#safe.methods" title="Safe Methods">Section 4.2.1</a>. 2421 </p> 2422 <p id="rfc.section.6.4.p.2">There are several types of redirects: </p> 2434 2423 <ol> 2435 2424 <li> … … 2445 2434 </li> 2446 2435 <li> 2447 <p>Redirection offering a choice of matching resources for use by reactive content negotiation (<a href="#reactive.negotiation" title="Reactive Negotiation">Section 3. 5.2</a>). This is status code <a href="#status.300" class="smpl">300 (Multiple Choices)</a>.2436 <p>Redirection offering a choice of matching resources for use by reactive content negotiation (<a href="#reactive.negotiation" title="Reactive Negotiation">Section 3.6.2</a>). This is status code <a href="#status.300" class="smpl">300 (Multiple Choices)</a>. 2448 2437 </p> 2449 2438 </li> … … 2454 2443 </li> 2455 2444 </ol> 2456 <div class="note" id="rfc.section. 7.4.p.3">2445 <div class="note" id="rfc.section.6.4.p.3"> 2457 2446 <p> <b>Note:</b> In HTTP/1.0, only the status codes <a href="#status.301" class="smpl">301 (Moved Permanently)</a> and <a href="#status.302" class="smpl">302 (Found)</a> were defined for the first type of redirect, and the second type did not exist at all (<a href="#RFC1945" id="rfc.xref.RFC1945.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.0">[RFC1945]</cite></a>, <a href="http://tools.ietf.org/html/rfc1945#section-9.3">Section 9.3</a>). However it turned out that web forms using POST expected redirects to change the operation for the subsequent request to 2458 2447 retrieval (GET). To address this use case, HTTP/1.1 introduced the second type of redirect with the status code <a href="#status.303" class="smpl">303 (See Other)</a> (<a href="#RFC2068" id="rfc.xref.RFC2068.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, <a href="http://tools.ietf.org/html/rfc2068#section-10.3.4">Section 10.3.4</a>). As user agents did not change their behavior to maintain backwards compatibility, the first revision of HTTP/1.1 added … … 2460 2449 </p> 2461 2450 </div> 2462 <p id="rfc.section. 7.4.p.4">A <a href="#header.location" class="smpl">Location</a> header field on a 3xx response indicates that a client <em class="bcp14">MAY</em> automatically redirect to the URI provided; see <a href="#header.location" id="rfc.xref.header.location.2" title="Location">Section 8.1.1</a>.2463 </p> 2464 <p id="rfc.section. 7.4.p.5">Note that for methods not known to be "safe", as defined in <a href="#safe.methods" title="Safe Methods">Section 5.2.1</a>, automatic redirection needs to done with care, since the redirect might change the conditions under which the request was2451 <p id="rfc.section.6.4.p.4">A <a href="#header.location" class="smpl">Location</a> header field on a 3xx response indicates that a client <em class="bcp14">MAY</em> automatically redirect to the URI provided; see <a href="#header.location" id="rfc.xref.header.location.2" title="Location">Section 7.1.1</a>. 2452 </p> 2453 <p id="rfc.section.6.4.p.5">Note that for methods not known to be "safe", as defined in <a href="#safe.methods" title="Safe Methods">Section 4.2.1</a>, automatic redirection needs to done with care, since the redirect might change the conditions under which the request was 2465 2454 issued. 2466 2455 </p> 2467 <p id="rfc.section. 7.4.p.6">Clients <em class="bcp14">SHOULD</em> detect and intervene in cyclical redirections (i.e., "infinite" redirection loops).2468 </p> 2469 <div class="note" id="rfc.section. 7.4.p.7">2456 <p id="rfc.section.6.4.p.6">Clients <em class="bcp14">SHOULD</em> detect and intervene in cyclical redirections (i.e., "infinite" redirection loops). 2457 </p> 2458 <div class="note" id="rfc.section.6.4.p.7"> 2470 2459 <p> <b>Note:</b> An earlier version of this specification recommended a maximum of five redirections (<a href="#RFC2068" id="rfc.xref.RFC2068.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, <a href="http://tools.ietf.org/html/rfc2068#section-10.3">Section 10.3</a>). Content developers need to be aware that some clients might implement such a fixed limitation. 2471 2460 </p> 2472 2461 </div> 2473 2462 <div id="rfc.iref.57"></div> 2474 <h3 id="rfc.section. 7.4.1"><a href="#rfc.section.7.4.1">7.4.1</a> <a id="status.300" href="#status.300">300 Multiple Choices</a></h3>2475 <p id="rfc.section. 7.4.1.p.1">The target resource has more than one representation, each with its own specific location, and reactive negotiation information2476 (<a href="#content.negotiation" title="Content Negotiation">Section 3. 5</a>) is being provided so that the user (or user agent) can select a preferred representation by redirecting its request to that2463 <h3 id="rfc.section.6.4.1"><a href="#rfc.section.6.4.1">6.4.1</a> <a id="status.300" href="#status.300">300 Multiple Choices</a></h3> 2464 <p id="rfc.section.6.4.1.p.1">The target resource has more than one representation, each with its own specific location, and reactive negotiation information 2465 (<a href="#content.negotiation" title="Content Negotiation">Section 3.6</a>) is being provided so that the user (or user agent) can select a preferred representation by redirecting its request to that 2477 2466 location. 2478 2467 </p> 2479 <p id="rfc.section. 7.4.1.p.2">Unless it was a HEAD request, the response <em class="bcp14">SHOULD</em> include a representation containing a list of representation metadata and location(s) from which the user or user agent can2468 <p id="rfc.section.6.4.1.p.2">Unless it was a HEAD request, the response <em class="bcp14">SHOULD</em> include a representation containing a list of representation metadata and location(s) from which the user or user agent can 2480 2469 choose the one most appropriate. Depending upon the format and the capabilities of the user agent, selection of the most appropriate 2481 2470 choice <em class="bcp14">MAY</em> be performed automatically. However, this specification does not define any standard for such automatic selection. 2482 2471 </p> 2483 <p id="rfc.section. 7.4.1.p.3">If the server has a preferred choice of representation, it <em class="bcp14">SHOULD</em> include the specific URI for that representation in the <a href="#header.location" class="smpl">Location</a> field; user agents <em class="bcp14">MAY</em> use the Location field value for automatic redirection.2484 </p> 2485 <p id="rfc.section. 7.4.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 300 responses.2472 <p id="rfc.section.6.4.1.p.3">If the server has a preferred choice of representation, it <em class="bcp14">SHOULD</em> include the specific URI for that representation in the <a href="#header.location" class="smpl">Location</a> field; user agents <em class="bcp14">MAY</em> use the Location field value for automatic redirection. 2473 </p> 2474 <p id="rfc.section.6.4.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 300 responses. 2486 2475 </p> 2487 2476 <div id="rfc.iref.57"></div> 2488 <h3 id="rfc.section. 7.4.2"><a href="#rfc.section.7.4.2">7.4.2</a> <a id="status.301" href="#status.301">301 Moved Permanently</a></h3>2489 <p id="rfc.section. 7.4.2.p.1">The target resource has been assigned a new permanent URI and any future references to this resource <em class="bcp14">SHOULD</em> use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the effective2477 <h3 id="rfc.section.6.4.2"><a href="#rfc.section.6.4.2">6.4.2</a> <a id="status.301" href="#status.301">301 Moved Permanently</a></h3> 2478 <p id="rfc.section.6.4.2.p.1">The target resource has been assigned a new permanent URI and any future references to this resource <em class="bcp14">SHOULD</em> use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the effective 2490 2479 request URI to one or more of the new references returned by the server, where possible. 2491 2480 </p> 2492 <p id="rfc.section. 7.4.2.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 301 responses.2493 </p> 2494 <p id="rfc.section. 7.4.2.p.3">The new permanent URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s).2495 </p> 2496 <div class="note" id="rfc.section. 7.4.2.p.4">2481 <p id="rfc.section.6.4.2.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 301 responses. 2482 </p> 2483 <p id="rfc.section.6.4.2.p.3">The new permanent URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s). 2484 </p> 2485 <div class="note" id="rfc.section.6.4.2.p.4"> 2497 2486 <p> <b>Note:</b> For historic reasons, user agents <em class="bcp14">MAY</em> change the request method from POST to GET for the subsequent request. If this behavior is undesired, status code <a href="#status.307" class="smpl">307 (Temporary Redirect)</a> can be used instead. 2498 2487 </p> 2499 2488 </div> 2500 2489 <div id="rfc.iref.57"></div> 2501 <h3 id="rfc.section. 7.4.3"><a href="#rfc.section.7.4.3">7.4.3</a> <a id="status.302" href="#status.302">302 Found</a></h3>2502 <p id="rfc.section. 7.4.3.p.1">The target resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client <em class="bcp14">SHOULD</em> continue to use the effective request URI for future requests.2503 </p> 2504 <p id="rfc.section. 7.4.3.p.2">The temporary URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s).2505 </p> 2506 <div class="note" id="rfc.section. 7.4.3.p.3">2490 <h3 id="rfc.section.6.4.3"><a href="#rfc.section.6.4.3">6.4.3</a> <a id="status.302" href="#status.302">302 Found</a></h3> 2491 <p id="rfc.section.6.4.3.p.1">The target resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client <em class="bcp14">SHOULD</em> continue to use the effective request URI for future requests. 2492 </p> 2493 <p id="rfc.section.6.4.3.p.2">The temporary URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s). 2494 </p> 2495 <div class="note" id="rfc.section.6.4.3.p.3"> 2507 2496 <p> <b>Note:</b> For historic reasons, user agents <em class="bcp14">MAY</em> change the request method from POST to GET for the subsequent request. If this behavior is undesired, status code <a href="#status.307" class="smpl">307 (Temporary Redirect)</a> can be used instead. 2508 2497 </p> 2509 2498 </div> 2510 2499 <div id="rfc.iref.57"></div> 2511 <h3 id="rfc.section. 7.4.4"><a href="#rfc.section.7.4.4">7.4.4</a> <a id="status.303" href="#status.303">303 See Other</a></h3>2512 <p id="rfc.section. 7.4.4.p.1">The 303 status code indicates that the server is redirecting the user agent to a different resource, as indicated by a URI2500 <h3 id="rfc.section.6.4.4"><a href="#rfc.section.6.4.4">6.4.4</a> <a id="status.303" href="#status.303">303 See Other</a></h3> 2501 <p id="rfc.section.6.4.4.p.1">The 303 status code indicates that the server is redirecting the user agent to a different resource, as indicated by a URI 2513 2502 in the <a href="#header.location" class="smpl">Location</a> header field, that is intended to provide an indirect response to the original request. In order to satisfy the original request, 2514 2503 a user agent <em class="bcp14">SHOULD</em> perform a retrieval request using the Location URI (a GET or HEAD request if using HTTP), which can itself be redirected further, … … 2516 2505 not considered equivalent to the effective request URI. 2517 2506 </p> 2518 <p id="rfc.section. 7.4.4.p.2">This status code is generally applicable to any HTTP method. It is primarily used to allow the output of a POST action to2507 <p id="rfc.section.6.4.4.p.2">This status code is generally applicable to any HTTP method. It is primarily used to allow the output of a POST action to 2519 2508 redirect the user agent to a selected resource, since doing so provides the information corresponding to the POST response 2520 2509 in a form that can be separately identified, bookmarked, and cached independent of the original request. 2521 2510 </p> 2522 <p id="rfc.section. 7.4.4.p.3">A 303 response to a GET request indicates that the requested resource does not have a representation of its own that can be2511 <p id="rfc.section.6.4.4.p.3">A 303 response to a GET request indicates that the requested resource does not have a representation of its own that can be 2523 2512 transferred by the server over HTTP. The <a href="#header.location" class="smpl">Location</a> URI indicates a resource that is descriptive of the target resource, such that the follow-on representation might be useful 2524 2513 to recipients without implying that it adequately represents the target resource. Note that answers to the questions of what … … 2526 2515 and thus entirely determined by the URI owner(s). 2527 2516 </p> 2528 <p id="rfc.section. 7.4.4.p.4">Except for responses to a HEAD request, the representation of a 303 response <em class="bcp14">SHOULD</em> contain a short hypertext note with a hyperlink to the <a href="#header.location" class="smpl">Location</a> URI.2517 <p id="rfc.section.6.4.4.p.4">Except for responses to a HEAD request, the representation of a 303 response <em class="bcp14">SHOULD</em> contain a short hypertext note with a hyperlink to the <a href="#header.location" class="smpl">Location</a> URI. 2529 2518 </p> 2530 2519 <div id="rfc.iref.57"></div> 2531 <h3 id="rfc.section. 7.4.5"><a href="#rfc.section.7.4.5">7.4.5</a> <a id="status.305" href="#status.305">305 Use Proxy</a></h3>2532 <p id="rfc.section. 7.4.5.p.1">The 305 status code was defined in a previous version of this specification (see <a href="#changes.from.rfc.2616" title="Changes from RFC 2616">Appendix C</a>), and is now deprecated.2520 <h3 id="rfc.section.6.4.5"><a href="#rfc.section.6.4.5">6.4.5</a> <a id="status.305" href="#status.305">305 Use Proxy</a></h3> 2521 <p id="rfc.section.6.4.5.p.1">The 305 status code was defined in a previous version of this specification (see <a href="#changes.from.rfc.2616" title="Changes from RFC 2616">Appendix C</a>), and is now deprecated. 2533 2522 </p> 2534 2523 <div id="rfc.iref.57"></div> 2535 <h3 id="rfc.section. 7.4.6"><a href="#rfc.section.7.4.6">7.4.6</a> <a id="status.306" href="#status.306">306 (Unused)</a></h3>2536 <p id="rfc.section. 7.4.6.p.1">The 306 status code was used in a previous version of the specification, is no longer used, and the code is reserved.</p>2524 <h3 id="rfc.section.6.4.6"><a href="#rfc.section.6.4.6">6.4.6</a> <a id="status.306" href="#status.306">306 (Unused)</a></h3> 2525 <p id="rfc.section.6.4.6.p.1">The 306 status code was used in a previous version of the specification, is no longer used, and the code is reserved.</p> 2537 2526 <div id="rfc.iref.57"></div> 2538 <h3 id="rfc.section. 7.4.7"><a href="#rfc.section.7.4.7">7.4.7</a> <a id="status.307" href="#status.307">307 Temporary Redirect</a></h3>2539 <p id="rfc.section. 7.4.7.p.1">The target resource resides temporarily under a different URI. Since the redirection can change over time, the client <em class="bcp14">SHOULD</em> continue to use the effective request URI for future requests.2540 </p> 2541 <p id="rfc.section. 7.4.7.p.2">The temporary URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s).2542 </p> 2543 <div class="note" id="rfc.section. 7.4.7.p.3">2527 <h3 id="rfc.section.6.4.7"><a href="#rfc.section.6.4.7">6.4.7</a> <a id="status.307" href="#status.307">307 Temporary Redirect</a></h3> 2528 <p id="rfc.section.6.4.7.p.1">The target resource resides temporarily under a different URI. Since the redirection can change over time, the client <em class="bcp14">SHOULD</em> continue to use the effective request URI for future requests. 2529 </p> 2530 <p id="rfc.section.6.4.7.p.2">The temporary URI <em class="bcp14">SHOULD</em> be given by the <a href="#header.location" class="smpl">Location</a> field in the response. A response payload can contain a short hypertext note with a hyperlink to the new URI(s). 2531 </p> 2532 <div class="note" id="rfc.section.6.4.7.p.3"> 2544 2533 <p> <b>Note:</b> This status code is similar to <a href="#status.302" class="smpl">302 (Found)</a>, except that it does not allow rewriting the request method from POST to GET. This specification defines no equivalent counterpart 2545 2534 for <a href="#status.301" class="smpl">301 (Moved … … 2547 2536 </p> 2548 2537 </div> 2549 <h2 id="rfc.section. 7.5"><a href="#rfc.section.7.5">7.5</a> <a id="status.4xx" href="#status.4xx">Client Error 4xx</a></h2>2538 <h2 id="rfc.section.6.5"><a href="#rfc.section.6.5">6.5</a> <a id="status.4xx" href="#status.4xx">Client Error 4xx</a></h2> 2550 2539 <div id="rfc.iref.57"></div> 2551 2540 <div id="rfc.iref.s.6"></div> 2552 <p id="rfc.section. 7.5.p.1">The 4xx class of status code is intended for cases in which the client seems to have erred. Except when responding to a HEAD2541 <p id="rfc.section.6.5.p.1">The 4xx class of status code is intended for cases in which the client seems to have erred. Except when responding to a HEAD 2553 2542 request, the server <em class="bcp14">SHOULD</em> include a representation containing an explanation of the error situation, and whether it is a temporary or permanent condition. 2554 2543 These status codes are applicable to any request method. User agents <em class="bcp14">SHOULD</em> display any included representation to the user. 2555 2544 </p> 2556 2545 <div id="rfc.iref.58"></div> 2557 <h3 id="rfc.section. 7.5.1"><a href="#rfc.section.7.5.1">7.5.1</a> <a id="status.400" href="#status.400">400 Bad Request</a></h3>2558 <p id="rfc.section. 7.5.1.p.1">The server cannot or will not process the request, due to a client error (e.g., malformed syntax).</p>2546 <h3 id="rfc.section.6.5.1"><a href="#rfc.section.6.5.1">6.5.1</a> <a id="status.400" href="#status.400">400 Bad Request</a></h3> 2547 <p id="rfc.section.6.5.1.p.1">The server cannot or will not process the request, due to a client error (e.g., malformed syntax).</p> 2559 2548 <div id="rfc.iref.58"></div> 2560 <h3 id="rfc.section. 7.5.2"><a href="#rfc.section.7.5.2">7.5.2</a> <a id="status.402" href="#status.402">402 Payment Required</a></h3>2561 <p id="rfc.section. 7.5.2.p.1">This code is reserved for future use.</p>2549 <h3 id="rfc.section.6.5.2"><a href="#rfc.section.6.5.2">6.5.2</a> <a id="status.402" href="#status.402">402 Payment Required</a></h3> 2550 <p id="rfc.section.6.5.2.p.1">This code is reserved for future use.</p> 2562 2551 <div id="rfc.iref.58"></div> 2563 <h3 id="rfc.section. 7.5.3"><a href="#rfc.section.7.5.3">7.5.3</a> <a id="status.403" href="#status.403">403 Forbidden</a></h3>2564 <p id="rfc.section. 7.5.3.p.1">The server understood the request, but refuses to authorize it. Providing different user authentication credentials might2552 <h3 id="rfc.section.6.5.3"><a href="#rfc.section.6.5.3">6.5.3</a> <a id="status.403" href="#status.403">403 Forbidden</a></h3> 2553 <p id="rfc.section.6.5.3.p.1">The server understood the request, but refuses to authorize it. Providing different user authentication credentials might 2565 2554 be successful, but any credentials that were provided in the request are insufficient. The request <em class="bcp14">SHOULD NOT</em> be repeated with the same credentials. 2566 2555 </p> 2567 <p id="rfc.section. 7.5.3.p.2">If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it <em class="bcp14">SHOULD</em> describe the reason for the refusal in the representation. If the server does not wish to make this information available2556 <p id="rfc.section.6.5.3.p.2">If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it <em class="bcp14">SHOULD</em> describe the reason for the refusal in the representation. If the server does not wish to make this information available 2568 2557 to the client, the status code <a href="#status.404" class="smpl">404 2569 2558 (Not Found)</a> <em class="bcp14">MAY</em> be used instead. 2570 2559 </p> 2571 2560 <div id="rfc.iref.58"></div> 2572 <h3 id="rfc.section. 7.5.4"><a href="#rfc.section.7.5.4">7.5.4</a> <a id="status.404" href="#status.404">404 Not Found</a></h3>2573 <p id="rfc.section. 7.5.4.p.1">The server has not found anything matching the effective request URI. No indication is given of whether the condition is temporary2561 <h3 id="rfc.section.6.5.4"><a href="#rfc.section.6.5.4">6.5.4</a> <a id="status.404" href="#status.404">404 Not Found</a></h3> 2562 <p id="rfc.section.6.5.4.p.1">The server has not found anything matching the effective request URI. No indication is given of whether the condition is temporary 2574 2563 or permanent. The <a href="#status.410" class="smpl">410 (Gone)</a> status code <em class="bcp14">SHOULD</em> be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable 2575 2564 and has no forwarding address. This status code is commonly used when the server does not wish to reveal exactly why the request … … 2577 2566 </p> 2578 2567 <div id="rfc.iref.58"></div> 2579 <h3 id="rfc.section. 7.5.5"><a href="#rfc.section.7.5.5">7.5.5</a> <a id="status.405" href="#status.405">405 Method Not Allowed</a></h3>2580 <p id="rfc.section. 7.5.5.p.1">The method specified in the request-line is not allowed for the target resource. The response <em class="bcp14">MUST</em> include an <a href="#header.allow" class="smpl">Allow</a> header field containing a list of valid methods for the requested resource.2568 <h3 id="rfc.section.6.5.5"><a href="#rfc.section.6.5.5">6.5.5</a> <a id="status.405" href="#status.405">405 Method Not Allowed</a></h3> 2569 <p id="rfc.section.6.5.5.p.1">The method specified in the request-line is not allowed for the target resource. The response <em class="bcp14">MUST</em> include an <a href="#header.allow" class="smpl">Allow</a> header field containing a list of valid methods for the requested resource. 2581 2570 </p> 2582 2571 <div id="rfc.iref.58"></div> 2583 <h3 id="rfc.section. 7.5.6"><a href="#rfc.section.7.5.6">7.5.6</a> <a id="status.406" href="#status.406">406 Not Acceptable</a></h3>2584 <p id="rfc.section. 7.5.6.p.1">The resource identified by the request is only capable of generating response representations which have content characteristics2572 <h3 id="rfc.section.6.5.6"><a href="#rfc.section.6.5.6">6.5.6</a> <a id="status.406" href="#status.406">406 Not Acceptable</a></h3> 2573 <p id="rfc.section.6.5.6.p.1">The resource identified by the request is only capable of generating response representations which have content characteristics 2585 2574 not acceptable according to the <a href="#header.accept" class="smpl">Accept</a> and Accept-* header fields sent in the request. 2586 2575 </p> 2587 <p id="rfc.section. 7.5.6.p.2">Unless it was a HEAD request, the response <em class="bcp14">SHOULD</em> include a representation containing a list of available representation characteristics and location(s) from which the user2576 <p id="rfc.section.6.5.6.p.2">Unless it was a HEAD request, the response <em class="bcp14">SHOULD</em> include a representation containing a list of available representation characteristics and location(s) from which the user 2588 2577 or user agent can choose the one most appropriate. Depending upon the format and the capabilities of the user agent, selection 2589 2578 of the most appropriate choice <em class="bcp14">MAY</em> be performed automatically. However, this specification does not define any standard for such automatic selection. 2590 2579 </p> 2591 <div class="note" id="rfc.section. 7.5.6.p.3">2580 <div class="note" id="rfc.section.6.5.6.p.3"> 2592 2581 <p> <b>Note:</b> HTTP/1.1 servers are allowed to return responses which are not acceptable according to the accept header fields sent in the 2593 2582 request. In some cases, this might even be preferable to sending a 406 response. User agents are encouraged to inspect the … … 2595 2584 </p> 2596 2585 </div> 2597 <p id="rfc.section. 7.5.6.p.4">If the response could be unacceptable, a user agent <em class="bcp14">SHOULD</em> temporarily stop receipt of more data and query the user for a decision on further actions.2586 <p id="rfc.section.6.5.6.p.4">If the response could be unacceptable, a user agent <em class="bcp14">SHOULD</em> temporarily stop receipt of more data and query the user for a decision on further actions. 2598 2587 </p> 2599 2588 <div id="rfc.iref.58"></div> 2600 <h3 id="rfc.section. 7.5.7"><a href="#rfc.section.7.5.7">7.5.7</a> <a id="status.408" href="#status.408">408 Request Timeout</a></h3>2601 <p id="rfc.section. 7.5.7.p.1">The client did not produce a request within the time that the server was prepared to wait. The client <em class="bcp14">MAY</em> repeat the request without modifications at any later time.2589 <h3 id="rfc.section.6.5.7"><a href="#rfc.section.6.5.7">6.5.7</a> <a id="status.408" href="#status.408">408 Request Timeout</a></h3> 2590 <p id="rfc.section.6.5.7.p.1">The client did not produce a request within the time that the server was prepared to wait. The client <em class="bcp14">MAY</em> repeat the request without modifications at any later time. 2602 2591 </p> 2603 2592 <div id="rfc.iref.58"></div> 2604 <h3 id="rfc.section. 7.5.8"><a href="#rfc.section.7.5.8">7.5.8</a> <a id="status.409" href="#status.409">409 Conflict</a></h3>2605 <p id="rfc.section. 7.5.8.p.1">The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in2593 <h3 id="rfc.section.6.5.8"><a href="#rfc.section.6.5.8">6.5.8</a> <a id="status.409" href="#status.409">409 Conflict</a></h3> 2594 <p id="rfc.section.6.5.8.p.1">The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in 2606 2595 situations where it is expected that the user might be able to resolve the conflict and resubmit the request. The response 2607 2596 body <em class="bcp14">SHOULD</em> include enough information for the user to recognize the source of the conflict. Ideally, the response representation would 2608 2597 include enough information for the user or user agent to fix the problem; however, that might not be possible and is not required. 2609 2598 </p> 2610 <p id="rfc.section. 7.5.8.p.2">Conflicts are most likely to occur in response to a PUT request. For example, if versioning were being used and the representation2599 <p id="rfc.section.6.5.8.p.2">Conflicts are most likely to occur in response to a PUT request. For example, if versioning were being used and the representation 2611 2600 being PUT included changes to a resource which conflict with those made by an earlier (third-party) request, the server might 2612 2601 use the 409 response to indicate that it can't complete the request. In this case, the response representation would likely … … 2614 2603 </p> 2615 2604 <div id="rfc.iref.58"></div> 2616 <h3 id="rfc.section. 7.5.9"><a href="#rfc.section.7.5.9">7.5.9</a> <a id="status.410" href="#status.410">410 Gone</a></h3>2617 <p id="rfc.section. 7.5.9.p.1">The target resource is no longer available at the server and no forwarding address is known. This condition is expected to2605 <h3 id="rfc.section.6.5.9"><a href="#rfc.section.6.5.9">6.5.9</a> <a id="status.410" href="#status.410">410 Gone</a></h3> 2606 <p id="rfc.section.6.5.9.p.1">The target resource is no longer available at the server and no forwarding address is known. This condition is expected to 2618 2607 be considered permanent. Clients with link editing capabilities <em class="bcp14">SHOULD</em> delete references to the effective request URI after user approval. If the server does not know, or has no facility to determine, 2619 2608 whether or not the condition is permanent, the status code <a href="#status.404" class="smpl">404 (Not Found)</a> <em class="bcp14">SHOULD</em> be used instead. 2620 2609 </p> 2621 <p id="rfc.section. 7.5.9.p.2">The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource2610 <p id="rfc.section.6.5.9.p.2">The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource 2622 2611 is intentionally unavailable and that the server owners desire that remote links to that resource be removed. Such an event 2623 2612 is common for limited-time, promotional services and for resources belonging to individuals no longer working at the server's … … 2625 2614 — that is left to the discretion of the server owner. 2626 2615 </p> 2627 <p id="rfc.section. 7.5.9.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 410 responses.2616 <p id="rfc.section.6.5.9.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 410 responses. 2628 2617 </p> 2629 2618 <div id="rfc.iref.58"></div> 2630 <h3 id="rfc.section. 7.5.10"><a href="#rfc.section.7.5.10">7.5.10</a> <a id="status.411" href="#status.411">411 Length Required</a></h3>2631 <p id="rfc.section. 7.5.10.p.1">The server refuses to accept the request without a defined <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a>. The client <em class="bcp14">MAY</em> repeat the request if it adds a valid Content-Length header field containing the length of the message body in the request2619 <h3 id="rfc.section.6.5.10"><a href="#rfc.section.6.5.10">6.5.10</a> <a id="status.411" href="#status.411">411 Length Required</a></h3> 2620 <p id="rfc.section.6.5.10.p.1">The server refuses to accept the request without a defined <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a>. The client <em class="bcp14">MAY</em> repeat the request if it adds a valid Content-Length header field containing the length of the message body in the request 2632 2621 message. 2633 2622 </p> 2634 2623 <div id="rfc.iref.58"></div> 2635 <h3 id="rfc.section. 7.5.11"><a href="#rfc.section.7.5.11">7.5.11</a> <a id="status.413" href="#status.413">413 Request Representation Too Large</a></h3>2636 <p id="rfc.section. 7.5.11.p.1">The server is refusing to process a request because the request representation is larger than the server is willing or able2624 <h3 id="rfc.section.6.5.11"><a href="#rfc.section.6.5.11">6.5.11</a> <a id="status.413" href="#status.413">413 Request Representation Too Large</a></h3> 2625 <p id="rfc.section.6.5.11.p.1">The server is refusing to process a request because the request representation is larger than the server is willing or able 2637 2626 to process. The server <em class="bcp14">MAY</em> close the connection to prevent the client from continuing the request. 2638 2627 </p> 2639 <p id="rfc.section. 7.5.11.p.2">If the condition is temporary, the server <em class="bcp14">SHOULD</em> include a <a href="#header.retry-after" class="smpl">Retry-After</a> header field to indicate that it is temporary and after what time the client <em class="bcp14">MAY</em> try again.2628 <p id="rfc.section.6.5.11.p.2">If the condition is temporary, the server <em class="bcp14">SHOULD</em> include a <a href="#header.retry-after" class="smpl">Retry-After</a> header field to indicate that it is temporary and after what time the client <em class="bcp14">MAY</em> try again. 2640 2629 </p> 2641 2630 <div id="rfc.iref.58"></div> 2642 <h3 id="rfc.section. 7.5.12"><a href="#rfc.section.7.5.12">7.5.12</a> <a id="status.414" href="#status.414">414 URI Too Long</a></h3>2643 <p id="rfc.section. 7.5.12.p.1">The server is refusing to service the request because the effective request URI is longer than the server is willing to interpret.2631 <h3 id="rfc.section.6.5.12"><a href="#rfc.section.6.5.12">6.5.12</a> <a id="status.414" href="#status.414">414 URI Too Long</a></h3> 2632 <p id="rfc.section.6.5.12.p.1">The server is refusing to service the request because the effective request URI is longer than the server is willing to interpret. 2644 2633 This rare condition is only likely to occur when a client has improperly converted a POST request to a GET request with long 2645 2634 query information, when the client has descended into a URI "black hole" of redirection (e.g., a redirected URI prefix that … … 2648 2637 </p> 2649 2638 <div id="rfc.iref.58"></div> 2650 <h3 id="rfc.section. 7.5.13"><a href="#rfc.section.7.5.13">7.5.13</a> <a id="status.415" href="#status.415">415 Unsupported Media Type</a></h3>2651 <p id="rfc.section. 7.5.13.p.1">The server is refusing to service the request because the request payload is in a format not supported by this request method2639 <h3 id="rfc.section.6.5.13"><a href="#rfc.section.6.5.13">6.5.13</a> <a id="status.415" href="#status.415">415 Unsupported Media Type</a></h3> 2640 <p id="rfc.section.6.5.13.p.1">The server is refusing to service the request because the request payload is in a format not supported by this request method 2652 2641 on the target resource. 2653 2642 </p> 2654 2643 <div id="rfc.iref.58"></div> 2655 <h3 id="rfc.section. 7.5.14"><a href="#rfc.section.7.5.14">7.5.14</a> <a id="status.417" href="#status.417">417 Expectation Failed</a></h3>2656 <p id="rfc.section. 7.5.14.p.1">The expectation given in an <a href="#header.expect" class="smpl">Expect</a> header field (see <a href="#header.expect" id="rfc.xref.header.expect.2" title="Expect">Section 6.1.2</a>) could not be met by this server, or, if the server is a proxy, the server has unambiguous evidence that the request could2644 <h3 id="rfc.section.6.5.14"><a href="#rfc.section.6.5.14">6.5.14</a> <a id="status.417" href="#status.417">417 Expectation Failed</a></h3> 2645 <p id="rfc.section.6.5.14.p.1">The expectation given in an <a href="#header.expect" class="smpl">Expect</a> header field (see <a href="#header.expect" id="rfc.xref.header.expect.2" title="Expect">Section 5.1.2</a>) could not be met by this server, or, if the server is a proxy, the server has unambiguous evidence that the request could 2657 2646 not be met by the next-hop server. 2658 2647 </p> 2659 2648 <div id="rfc.iref.58"></div> 2660 <h3 id="rfc.section. 7.5.15"><a href="#rfc.section.7.5.15">7.5.15</a> <a id="status.426" href="#status.426">426 Upgrade Required</a></h3>2661 <p id="rfc.section. 7.5.15.p.1">The request can not be completed without a prior protocol upgrade. This response <em class="bcp14">MUST</em> include an <a href="p1-messaging.html#header.upgrade" class="smpl">Upgrade</a> header field (<a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 6.3</a> of <a href="#Part1" id="rfc.xref.Part1.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) specifying the required protocols.2649 <h3 id="rfc.section.6.5.15"><a href="#rfc.section.6.5.15">6.5.15</a> <a id="status.426" href="#status.426">426 Upgrade Required</a></h3> 2650 <p id="rfc.section.6.5.15.p.1">The request can not be completed without a prior protocol upgrade. This response <em class="bcp14">MUST</em> include an <a href="p1-messaging.html#header.upgrade" class="smpl">Upgrade</a> header field (<a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 6.3</a> of <a href="#Part1" id="rfc.xref.Part1.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) specifying the required protocols. 2662 2651 </p> 2663 2652 <div id="rfc.figure.u.33"></div> … … 2669 2658 2670 2659 <span id="s426body">This service requires use of the HTTP/3.0 protocol. 2671 </span></pre><p id="rfc.section. 7.5.15.p.3">The server <em class="bcp14">SHOULD</em> include a message body in the 426 response which indicates in human readable form the reason for the error and describes any2660 </span></pre><p id="rfc.section.6.5.15.p.3">The server <em class="bcp14">SHOULD</em> include a message body in the 426 response which indicates in human readable form the reason for the error and describes any 2672 2661 alternative courses which might be available to the user. 2673 2662 </p> 2674 <h2 id="rfc.section. 7.6"><a href="#rfc.section.7.6">7.6</a> <a id="status.5xx" href="#status.5xx">Server Error 5xx</a></h2>2663 <h2 id="rfc.section.6.6"><a href="#rfc.section.6.6">6.6</a> <a id="status.5xx" href="#status.5xx">Server Error 5xx</a></h2> 2675 2664 <div id="rfc.iref.58"></div> 2676 2665 <div id="rfc.iref.s.7"></div> 2677 <p id="rfc.section. 7.6.p.1">Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has erred or is incapable2666 <p id="rfc.section.6.6.p.1">Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has erred or is incapable 2678 2667 of performing the request. Except when responding to a HEAD request, the server <em class="bcp14">SHOULD</em> include a representation containing an explanation of the error situation, and whether it is a temporary or permanent condition. 2679 2668 User agents <em class="bcp14">SHOULD</em> display any included representation to the user. These response codes are applicable to any request method. 2680 2669 </p> 2681 2670 <div id="rfc.iref.59"></div> 2682 <h3 id="rfc.section. 7.6.1"><a href="#rfc.section.7.6.1">7.6.1</a> <a id="status.500" href="#status.500">500 Internal Server Error</a></h3>2683 <p id="rfc.section. 7.6.1.p.1">The server encountered an unexpected condition which prevented it from fulfilling the request.</p>2671 <h3 id="rfc.section.6.6.1"><a href="#rfc.section.6.6.1">6.6.1</a> <a id="status.500" href="#status.500">500 Internal Server Error</a></h3> 2672 <p id="rfc.section.6.6.1.p.1">The server encountered an unexpected condition which prevented it from fulfilling the request.</p> 2684 2673 <div id="rfc.iref.59"></div> 2685 <h3 id="rfc.section. 7.6.2"><a href="#rfc.section.7.6.2">7.6.2</a> <a id="status.501" href="#status.501">501 Not Implemented</a></h3>2686 <p id="rfc.section. 7.6.2.p.1">The server does not support the functionality required to fulfill the request. This is the appropriate response when the server2674 <h3 id="rfc.section.6.6.2"><a href="#rfc.section.6.6.2">6.6.2</a> <a id="status.501" href="#status.501">501 Not Implemented</a></h3> 2675 <p id="rfc.section.6.6.2.p.1">The server does not support the functionality required to fulfill the request. This is the appropriate response when the server 2687 2676 does not recognize the request method and is not capable of supporting it for any resource. 2688 2677 </p> 2689 2678 <div id="rfc.iref.59"></div> 2690 <h3 id="rfc.section. 7.6.3"><a href="#rfc.section.7.6.3">7.6.3</a> <a id="status.502" href="#status.502">502 Bad Gateway</a></h3>2691 <p id="rfc.section. 7.6.3.p.1">The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting2679 <h3 id="rfc.section.6.6.3"><a href="#rfc.section.6.6.3">6.6.3</a> <a id="status.502" href="#status.502">502 Bad Gateway</a></h3> 2680 <p id="rfc.section.6.6.3.p.1">The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting 2692 2681 to fulfill the request. 2693 2682 </p> 2694 2683 <div id="rfc.iref.59"></div> 2695 <h3 id="rfc.section. 7.6.4"><a href="#rfc.section.7.6.4">7.6.4</a> <a id="status.503" href="#status.503">503 Service Unavailable</a></h3>2696 <p id="rfc.section. 7.6.4.p.1">The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.</p>2697 <p id="rfc.section. 7.6.4.p.2">The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the2698 delay <em class="bcp14">MAY</em> be indicated in a <a href="#header.retry-after" class="smpl">Retry-After</a> header field (<a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 8.1.2</a>). If no Retry-After is given, the client <em class="bcp14">SHOULD</em> handle the response as it would for a <a href="#status.500" class="smpl">500 (Internal2684 <h3 id="rfc.section.6.6.4"><a href="#rfc.section.6.6.4">6.6.4</a> <a id="status.503" href="#status.503">503 Service Unavailable</a></h3> 2685 <p id="rfc.section.6.6.4.p.1">The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.</p> 2686 <p id="rfc.section.6.6.4.p.2">The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the 2687 delay <em class="bcp14">MAY</em> be indicated in a <a href="#header.retry-after" class="smpl">Retry-After</a> header field (<a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section 7.1.2</a>). If no Retry-After is given, the client <em class="bcp14">SHOULD</em> handle the response as it would for a <a href="#status.500" class="smpl">500 (Internal 2699 2688 Server Error)</a> response. 2700 2689 </p> 2701 <div class="note" id="rfc.section. 7.6.4.p.3">2690 <div class="note" id="rfc.section.6.6.4.p.3"> 2702 2691 <p> <b>Note:</b> The existence of the 503 status code does not imply that a server has to use it when becoming overloaded. Some servers might 2703 2692 wish to simply refuse the connection. … … 2705 2694 </div> 2706 2695 <div id="rfc.iref.59"></div> 2707 <h3 id="rfc.section. 7.6.5"><a href="#rfc.section.7.6.5">7.6.5</a> <a id="status.504" href="#status.504">504 Gateway Timeout</a></h3>2708 <p id="rfc.section. 7.6.5.p.1">The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the2696 <h3 id="rfc.section.6.6.5"><a href="#rfc.section.6.6.5">6.6.5</a> <a id="status.504" href="#status.504">504 Gateway Timeout</a></h3> 2697 <p id="rfc.section.6.6.5.p.1">The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the 2709 2698 URI (e.g., HTTP, FTP, LDAP) or some other auxiliary server (e.g., DNS) it needed to access in attempting to complete the request. 2710 2699 </p> 2711 <div class="note" id="rfc.section. 7.6.5.p.2">2700 <div class="note" id="rfc.section.6.6.5.p.2"> 2712 2701 <p> <b>Note</b> to implementers: some deployed proxies are known to return <a href="#status.400" class="smpl">400 (Bad Request)</a> or <a href="#status.500" class="smpl">500 (Internal Server 2713 2702 Error)</a> when DNS lookups time out. … … 2715 2704 </div> 2716 2705 <div id="rfc.iref.59"></div> 2717 <h3 id="rfc.section. 7.6.6"><a href="#rfc.section.7.6.6">7.6.6</a> <a id="status.505" href="#status.505">505 HTTP Version Not Supported</a></h3>2718 <p id="rfc.section. 7.6.6.p.1">The server does not support, or refuses to support, the protocol version that was used in the request message. The server2706 <h3 id="rfc.section.6.6.6"><a href="#rfc.section.6.6.6">6.6.6</a> <a id="status.505" href="#status.505">505 HTTP Version Not Supported</a></h3> 2707 <p id="rfc.section.6.6.6.p.1">The server does not support, or refuses to support, the protocol version that was used in the request message. The server 2719 2708 is indicating that it is unable or unwilling to complete the request using the same major version as the client, as described 2720 2709 in <a href="p1-messaging.html#http.version" title="Protocol Versioning">Section 2.6</a> of <a href="#Part1" id="rfc.xref.Part1.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, other than with this error message. The response <em class="bcp14">SHOULD</em> contain a representation describing why that version is not supported and what other protocols are supported by that server. 2721 2710 </p> 2722 <h1 id="rfc.section. 8"><a href="#rfc.section.8">8.</a> <a id="response.header.fields" href="#response.header.fields">Response Header Fields</a></h1>2723 <p id="rfc.section. 8.p.1">The response header fields allow the server to pass additional information about the response which cannot be placed in the2711 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="response.header.fields" href="#response.header.fields">Response Header Fields</a></h1> 2712 <p id="rfc.section.7.p.1">The response header fields allow the server to pass additional information about the response which cannot be placed in the 2724 2713 status-line. These header fields give information about the server and about further access to the target resource (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). 2725 2714 </p> 2726 <h2 id="rfc.section. 8.1"><a href="#rfc.section.8.1">8.1</a> <a id="response.control.data" href="#response.control.data">Control Data</a></h2>2727 <p id="rfc.section. 8.1.p.1">Response header fields can supply control data that supplements the status code or instructs the client where to go next.</p>2715 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="response.control.data" href="#response.control.data">Control Data</a></h2> 2716 <p id="rfc.section.7.1.p.1">Response header fields can supply control data that supplements the status code or instructs the client where to go next.</p> 2728 2717 <div id="rfc.table.u.11"> 2729 2718 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 2737 2726 <tr> 2738 2727 <td class="left">Location</td> 2739 <td class="left"><a href="#header.location" id="rfc.xref.header.location.3" title="Location">Section 8.1.1</a></td>2728 <td class="left"><a href="#header.location" id="rfc.xref.header.location.3" title="Location">Section 7.1.1</a></td> 2740 2729 </tr> 2741 2730 <tr> 2742 2731 <td class="left">Retry-After</td> 2743 <td class="left"><a href="#header.retry-after" id="rfc.xref.header.retry-after.2" title="Retry-After">Section 8.1.2</a></td>2732 <td class="left"><a href="#header.retry-after" id="rfc.xref.header.retry-after.2" title="Retry-After">Section 7.1.2</a></td> 2744 2733 </tr> 2745 2734 </tbody> … … 2747 2736 </div> 2748 2737 <div id="rfc.iref.l.1"></div> 2749 <h3 id="rfc.section. 8.1.1"><a href="#rfc.section.8.1.1">8.1.1</a> <a id="header.location" href="#header.location">Location</a></h3>2750 <p id="rfc.section. 8.1.1.p.1">The "Location" header field <em class="bcp14">MAY</em> be sent in responses to refer to a specific resource in accordance with the semantics of the status code.2738 <h3 id="rfc.section.7.1.1"><a href="#rfc.section.7.1.1">7.1.1</a> <a id="header.location" href="#header.location">Location</a></h3> 2739 <p id="rfc.section.7.1.1.p.1">The "Location" header field <em class="bcp14">MAY</em> be sent in responses to refer to a specific resource in accordance with the semantics of the status code. 2751 2740 </p> 2752 2741 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.27"></span> <a href="#header.location" class="smpl">Location</a> = <a href="#imported.abnf" class="smpl">URI-reference</a> 2753 </pre><p id="rfc.section. 8.1.1.p.3">For <a href="#status.201" class="smpl">201 (Created)</a> responses, the Location is the URI of the new resource which was created by the request. For <a href="#status.3xx" class="smpl">3xx (Redirection)</a> responses, the location <em class="bcp14">SHOULD</em> indicate the server's preferred URI for automatic redirection to the resource.2754 </p> 2755 <p id="rfc.section. 8.1.1.p.4">The field value consists of a single URI-reference. When it has the form of a relative reference (<a href="#RFC3986" id="rfc.xref.RFC3986.1"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.2">Section 4.2</a>), the final value is computed by resolving it against the effective request URI (<a href="#RFC3986" id="rfc.xref.RFC3986.2"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-5">Section 5</a>). If the original URI, as navigated to by the user agent, did contain a fragment identifier, and the final value does not,2742 </pre><p id="rfc.section.7.1.1.p.3">For <a href="#status.201" class="smpl">201 (Created)</a> responses, the Location is the URI of the new resource which was created by the request. For <a href="#status.3xx" class="smpl">3xx (Redirection)</a> responses, the location <em class="bcp14">SHOULD</em> indicate the server's preferred URI for automatic redirection to the resource. 2743 </p> 2744 <p id="rfc.section.7.1.1.p.4">The field value consists of a single URI-reference. When it has the form of a relative reference (<a href="#RFC3986" id="rfc.xref.RFC3986.1"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-4.2">Section 4.2</a>), the final value is computed by resolving it against the effective request URI (<a href="#RFC3986" id="rfc.xref.RFC3986.2"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-5">Section 5</a>). If the original URI, as navigated to by the user agent, did contain a fragment identifier, and the final value does not, 2756 2745 then the original URI's fragment identifier is added to the final value. 2757 2746 </p> … … 2762 2751 <p>An original URI "http://www.example.org/index.html#larry", combined with a field value given as:</p> <pre class="text"> Location: http://www.example.net/index.html 2763 2752 </pre> <p>would result in a final value of "http://www.example.net/index.html#larry", preserving the original fragment identifier.</p> 2764 <div class="note" id="rfc.section. 8.1.1.p.7">2753 <div class="note" id="rfc.section.7.1.1.p.7"> 2765 2754 <p> <b>Note:</b> Some recipients attempt to recover from Location fields that are not valid URI references. This specification does not mandate 2766 2755 or define such processing, but does allow it. 2767 2756 </p> 2768 2757 </div> 2769 <p id="rfc.section. 8.1.1.p.8">There are circumstances in which a fragment identifier in a Location URI would not be appropriate. For instance, when it appears2758 <p id="rfc.section.7.1.1.p.8">There are circumstances in which a fragment identifier in a Location URI would not be appropriate. For instance, when it appears 2770 2759 in a <a href="#status.201" class="smpl">201 2771 2760 (Created)</a> response, where the Location header field specifies the URI for the entire created resource. 2772 2761 </p> 2773 <div class="note" id="rfc.section. 8.1.1.p.9">2774 <p> <b>Note:</b> The <a href="#header.content-location" class="smpl">Content-Location</a> header field (<a href="#header.content-location" id="rfc.xref.header.content-location.3" title="Content-Location">Section 3. 2.4</a>) differs from Location in that the Content-Location identifies the most specific resource corresponding to the enclosed representation.2762 <div class="note" id="rfc.section.7.1.1.p.9"> 2763 <p> <b>Note:</b> The <a href="#header.content-location" class="smpl">Content-Location</a> header field (<a href="#header.content-location" id="rfc.xref.header.content-location.3" title="Content-Location">Section 3.3.4</a>) differs from Location in that the Content-Location identifies the most specific resource corresponding to the enclosed representation. 2775 2764 It is therefore possible for a response to contain header fields for both Location and Content-Location. 2776 2765 </p> 2777 2766 </div> 2778 2767 <div id="rfc.iref.r.3"></div> 2779 <h3 id="rfc.section. 8.1.2"><a href="#rfc.section.8.1.2">8.1.2</a> <a id="header.retry-after" href="#header.retry-after">Retry-After</a></h3>2780 <p id="rfc.section. 8.1.2.p.1">The header "Retry-After" field can be used with a <a href="#status.503" class="smpl">503 (Service2768 <h3 id="rfc.section.7.1.2"><a href="#rfc.section.7.1.2">7.1.2</a> <a id="header.retry-after" href="#header.retry-after">Retry-After</a></h3> 2769 <p id="rfc.section.7.1.2.p.1">The header "Retry-After" field can be used with a <a href="#status.503" class="smpl">503 (Service 2781 2770 Unavailable)</a> response to indicate how long the service is expected to be unavailable to the requesting client. This field <em class="bcp14">MAY</em> also be used with any <a href="#status.3xx" class="smpl">3xx (Redirection)</a> response to indicate the minimum time the user-agent is asked to wait before issuing the redirected request. 2782 2771 </p> 2783 <p id="rfc.section. 8.1.2.p.2">The value of this field can be either an HTTP-date or an integer number of seconds (in decimal) after the time of the response.</p>2772 <p id="rfc.section.7.1.2.p.2">The value of this field can be either an HTTP-date or an integer number of seconds (in decimal) after the time of the response.</p> 2784 2773 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.28"></span> <a href="#header.retry-after" class="smpl">Retry-After</a> = <a href="#http.date" class="smpl">HTTP-date</a> / <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> 2785 2774 </pre><div id="rule.delta-seconds"> 2786 <p id="rfc.section. 8.1.2.p.4"> Time spans are non-negative decimal integers, representing time in seconds.</p>2775 <p id="rfc.section.7.1.2.p.4"> Time spans are non-negative decimal integers, representing time in seconds.</p> 2787 2776 </div> 2788 2777 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.29"></span> <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 2789 </pre><p id="rfc.section. 8.1.2.p.6">Two examples of its use are</p>2778 </pre><p id="rfc.section.7.1.2.p.6">Two examples of its use are</p> 2790 2779 <div id="rfc.figure.u.39"></div><pre class="text"> Retry-After: Fri, 31 Dec 1999 23:59:59 GMT 2791 2780 Retry-After: 120 2792 </pre><p id="rfc.section. 8.1.2.p.8">In the latter example, the delay is 2 minutes.</p>2793 <h2 id="rfc.section. 8.2"><a href="#rfc.section.8.2">8.2</a> <a id="response.cache.related" href="#response.cache.related">Cache-related</a></h2>2794 <p id="rfc.section. 8.2.p.1">Cache-related response header fields provide metadata about the message in order to assist downstream caches.</p>2781 </pre><p id="rfc.section.7.1.2.p.8">In the latter example, the delay is 2 minutes.</p> 2782 <h2 id="rfc.section.7.2"><a href="#rfc.section.7.2">7.2</a> <a id="response.cache.related" href="#response.cache.related">Cache-related</a></h2> 2783 <p id="rfc.section.7.2.p.1">Cache-related response header fields provide metadata about the message in order to assist downstream caches.</p> 2795 2784 <div id="rfc.table.u.12"> 2796 2785 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 2808 2797 <tr> 2809 2798 <td class="left">Date</td> 2810 <td class="left"><a href="#header.date" id="rfc.xref.header.date.2" title="Date">Section 8.2.1</a></td>2799 <td class="left"><a href="#header.date" id="rfc.xref.header.date.2" title="Date">Section 7.2.1</a></td> 2811 2800 </tr> 2812 2801 <tr> 2813 2802 <td class="left">Vary</td> 2814 <td class="left"><a href="#header.vary" id="rfc.xref.header.vary.2" title="Vary">Section 8.2.2</a></td>2803 <td class="left"><a href="#header.vary" id="rfc.xref.header.vary.2" title="Vary">Section 7.2.2</a></td> 2815 2804 </tr> 2816 2805 </tbody> … … 2818 2807 </div> 2819 2808 <div id="rfc.iref.d.2"></div> 2820 <h3 id="rfc.section. 8.2.1"><a href="#rfc.section.8.2.1">8.2.1</a> <a id="header.date" href="#header.date">Date</a></h3>2821 <p id="rfc.section. 8.2.1.p.1">The "Date" header field represents the date and time at which the message was originated, having the same semantics as the2822 Origination Date Field (orig-date) defined 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.3"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as defined in <a href="#http.date" title="Date/Time Formats">Section 9.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format.2809 <h3 id="rfc.section.7.2.1"><a href="#rfc.section.7.2.1">7.2.1</a> <a id="header.date" href="#header.date">Date</a></h3> 2810 <p id="rfc.section.7.2.1.p.1">The "Date" header field represents the date and time at which the message was originated, having the same semantics as the 2811 Origination Date Field (orig-date) defined 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.3"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as defined in <a href="#http.date" title="Date/Time Formats">Section 8.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 2823 2812 </p> 2824 2813 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.30"></span> <a href="#header.date" class="smpl">Date</a> = <a href="#http.date" class="smpl">HTTP-date</a> 2825 </pre><p id="rfc.section. 8.2.1.p.3">An example is</p>2814 </pre><p id="rfc.section.7.2.1.p.3">An example is</p> 2826 2815 <div id="rfc.figure.u.41"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 2827 </pre><p id="rfc.section. 8.2.1.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases:2816 </pre><p id="rfc.section.7.2.1.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases: 2828 2817 </p> 2829 2818 <ol> … … 2836 2825 </li> 2837 2826 </ol> 2838 <p id="rfc.section. 8.2.1.p.6">A received message that does not have a Date header field <em class="bcp14">MUST</em> be assigned one by the recipient if the message will be cached by that recipient.2839 </p> 2840 <p id="rfc.section. 8.2.1.p.7">Clients can use the Date header field as well; in order to keep request messages small, they are advised not to include it2827 <p id="rfc.section.7.2.1.p.6">A received message that does not have a Date header field <em class="bcp14">MUST</em> be assigned one by the recipient if the message will be cached by that recipient. 2828 </p> 2829 <p id="rfc.section.7.2.1.p.7">Clients can use the Date header field as well; in order to keep request messages small, they are advised not to include it 2841 2830 when it doesn't convey any useful information (as is usually the case for requests that do not contain a payload). 2842 2831 </p> 2843 <p id="rfc.section. 8.2.1.p.8">The HTTP-date sent in a Date header field <em class="bcp14">SHOULD NOT</em> represent a date and time subsequent to the generation of the message. It <em class="bcp14">SHOULD</em> represent the best available approximation of the date and time of message generation, unless the implementation has no means2832 <p id="rfc.section.7.2.1.p.8">The HTTP-date sent in a Date header field <em class="bcp14">SHOULD NOT</em> represent a date and time subsequent to the generation of the message. It <em class="bcp14">SHOULD</em> represent the best available approximation of the date and time of message generation, unless the implementation has no means 2844 2833 of generating a reasonably accurate date and time. In theory, the date ought to represent the moment just before the payload 2845 2834 is generated. In practice, the date can be generated at any time during the message origination without affecting its semantic … … 2847 2836 </p> 2848 2837 <div id="rfc.iref.v.1"></div> 2849 <h3 id="rfc.section. 8.2.2"><a href="#rfc.section.8.2.2">8.2.2</a> <a id="header.vary" href="#header.vary">Vary</a></h3>2850 <p id="rfc.section. 8.2.2.p.1">The "Vary" header field conveys the set of header fields that were used to select the representation.</p>2851 <p id="rfc.section. 8.2.2.p.2">Caches use this information as part of determining whether a stored response can be used to satisfy a given request (<a href="p6-cache.html#caching.negotiated.responses" title="Using Negotiated Responses">Section 4.3</a> of <a href="#Part6" id="rfc.xref.Part6.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).2852 </p> 2853 <p id="rfc.section. 8.2.2.p.3">In uncacheable or stale responses, the Vary field value advises the user agent about the criteria that were used to select2838 <h3 id="rfc.section.7.2.2"><a href="#rfc.section.7.2.2">7.2.2</a> <a id="header.vary" href="#header.vary">Vary</a></h3> 2839 <p id="rfc.section.7.2.2.p.1">The "Vary" header field conveys the set of header fields that were used to select the representation.</p> 2840 <p id="rfc.section.7.2.2.p.2">Caches use this information as part of determining whether a stored response can be used to satisfy a given request (<a href="p6-cache.html#caching.negotiated.responses" title="Using Negotiated Responses">Section 4.3</a> of <a href="#Part6" id="rfc.xref.Part6.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 2841 </p> 2842 <p id="rfc.section.7.2.2.p.3">In uncacheable or stale responses, the Vary field value advises the user agent about the criteria that were used to select 2854 2843 the representation. 2855 2844 </p> 2856 2845 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.31"></span> <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#imported.abnf" class="smpl">field-name</a> 2857 </pre><p id="rfc.section. 8.2.2.p.5">The set of header fields named by the Vary field value is known as the selecting header fields.</p>2858 <p id="rfc.section. 8.2.2.p.6">A server <em class="bcp14">SHOULD</em> include a Vary header field with any cacheable response that is subject to proactive negotiation. Doing so allows a cache2846 </pre><p id="rfc.section.7.2.2.p.5">The set of header fields named by the Vary field value is known as the selecting header fields.</p> 2847 <p id="rfc.section.7.2.2.p.6">A server <em class="bcp14">SHOULD</em> include a Vary header field with any cacheable response that is subject to proactive negotiation. Doing so allows a cache 2859 2848 to properly interpret future requests on that resource and informs the user agent about the presence of negotiation on that 2860 2849 resource. A server <em class="bcp14">MAY</em> include a Vary header field with a non-cacheable response that is subject to proactive negotiation, since this might provide 2861 2850 the user agent with useful information about the dimensions over which the response varies at the time of the response. 2862 2851 </p> 2863 <p id="rfc.section. 8.2.2.p.7">A Vary field value of "*" signals that unspecified parameters not limited to the header fields (e.g., the network address2852 <p id="rfc.section.7.2.2.p.7">A Vary field value of "*" signals that unspecified parameters not limited to the header fields (e.g., the network address 2864 2853 of the client), play a role in the selection of the response representation; therefore, a cache cannot determine whether this 2865 2854 response is appropriate. A proxy <em class="bcp14">MUST NOT</em> generate the "*" value. 2866 2855 </p> 2867 <p id="rfc.section. 8.2.2.p.8">The field-names given are not limited to the set of standard header fields defined by this specification. Field names are2856 <p id="rfc.section.7.2.2.p.8">The field-names given are not limited to the set of standard header fields defined by this specification. Field names are 2868 2857 case-insensitive. 2869 2858 </p> 2870 <h2 id="rfc.section. 8.3"><a href="#rfc.section.8.3">8.3</a> <a id="response.auth" href="#response.auth">Authentication Challenges</a></h2>2871 <p id="rfc.section. 8.3.p.1">Authentication challenges indicate what mechanisms are available for the client to provide authentication credentials in future2859 <h2 id="rfc.section.7.3"><a href="#rfc.section.7.3">7.3</a> <a id="response.auth" href="#response.auth">Authentication Challenges</a></h2> 2860 <p id="rfc.section.7.3.p.1">Authentication challenges indicate what mechanisms are available for the client to provide authentication credentials in future 2872 2861 requests. 2873 2862 </p> … … 2892 2881 </table> 2893 2882 </div> 2894 <h2 id="rfc.section. 8.4"><a href="#rfc.section.8.4">8.4</a> <a id="response.inform" href="#response.inform">Informative</a></h2>2895 <p id="rfc.section. 8.4.p.1">The remaining response header fields provide more information about the target resource for potential use in later requests.</p>2883 <h2 id="rfc.section.7.4"><a href="#rfc.section.7.4">7.4</a> <a id="response.inform" href="#response.inform">Informative</a></h2> 2884 <p id="rfc.section.7.4.p.1">The remaining response header fields provide more information about the target resource for potential use in later requests.</p> 2896 2885 <div id="rfc.table.u.14"> 2897 2886 <table class="tt full left" cellpadding="3" cellspacing="0"> … … 2909 2898 <tr> 2910 2899 <td class="left">Allow</td> 2911 <td class="left"><a href="#header.allow" id="rfc.xref.header.allow.2" title="Allow">Section 8.4.1</a></td>2900 <td class="left"><a href="#header.allow" id="rfc.xref.header.allow.2" title="Allow">Section 7.4.1</a></td> 2912 2901 </tr> 2913 2902 <tr> 2914 2903 <td class="left">Server</td> 2915 <td class="left"><a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 8.4.2</a></td>2904 <td class="left"><a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section 7.4.2</a></td> 2916 2905 </tr> 2917 2906 </tbody> … … 2919 2908 </div> 2920 2909 <div id="rfc.iref.a.5"></div> 2921 <h3 id="rfc.section. 8.4.1"><a href="#rfc.section.8.4.1">8.4.1</a> <a id="header.allow" href="#header.allow">Allow</a></h3>2922 <p id="rfc.section. 8.4.1.p.1">The "Allow" header field lists the set of methods advertised as supported by the target resource. The purpose of this field2910 <h3 id="rfc.section.7.4.1"><a href="#rfc.section.7.4.1">7.4.1</a> <a id="header.allow" href="#header.allow">Allow</a></h3> 2911 <p id="rfc.section.7.4.1.p.1">The "Allow" header field lists the set of methods advertised as supported by the target resource. The purpose of this field 2923 2912 is strictly to inform the recipient of valid request methods associated with the resource. 2924 2913 </p> 2925 2914 <div id="rfc.figure.u.43"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#header.allow" class="smpl">Allow</a> = #<a href="#method.overview" class="smpl">method</a> 2926 </pre><p id="rfc.section. 8.4.1.p.3">Example of use:</p>2915 </pre><p id="rfc.section.7.4.1.p.3">Example of use:</p> 2927 2916 <div id="rfc.figure.u.44"></div><pre class="text"> Allow: GET, HEAD, PUT 2928 </pre><p id="rfc.section. 8.4.1.p.5">The actual set of allowed methods is defined by the origin server at the time of each request.</p>2929 <p id="rfc.section. 8.4.1.p.6">A proxy <em class="bcp14">MUST NOT</em> modify the Allow header field — it does not need to understand all the methods specified in order to handle them according2917 </pre><p id="rfc.section.7.4.1.p.5">The actual set of allowed methods is defined by the origin server at the time of each request.</p> 2918 <p id="rfc.section.7.4.1.p.6">A proxy <em class="bcp14">MUST NOT</em> modify the Allow header field — it does not need to understand all the methods specified in order to handle them according 2930 2919 to the generic message handling rules. 2931 2920 </p> 2932 2921 <div id="rfc.iref.s.8"></div> 2933 <h3 id="rfc.section. 8.4.2"><a href="#rfc.section.8.4.2">8.4.2</a> <a id="header.server" href="#header.server">Server</a></h3>2934 <p id="rfc.section. 8.4.2.p.1">The "Server" header field contains information about the software used by the origin server to handle the request.</p>2935 <p id="rfc.section. 8.4.2.p.2">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 9.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) identifying the server and any significant subproducts. The product tokens are listed in order of their significance for2922 <h3 id="rfc.section.7.4.2"><a href="#rfc.section.7.4.2">7.4.2</a> <a id="header.server" href="#header.server">Server</a></h3> 2923 <p id="rfc.section.7.4.2.p.1">The "Server" header field contains information about the software used by the origin server to handle the request.</p> 2924 <p id="rfc.section.7.4.2.p.2">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 8.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) identifying the server and any significant subproducts. The product tokens are listed in order of their significance for 2936 2925 identifying the application. 2937 2926 </p> 2938 2927 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.33"></span> <a href="#header.server" class="smpl">Server</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) ) 2939 </pre><p id="rfc.section. 8.4.2.p.4">Example:</p>2928 </pre><p id="rfc.section.7.4.2.p.4">Example:</p> 2940 2929 <div id="rfc.figure.u.46"></div><pre class="text"> Server: CERN/3.0 libwww/2.17 2941 </pre><p id="rfc.section. 8.4.2.p.6">If the response is being forwarded through a proxy, the proxy application <em class="bcp14">MUST NOT</em> modify the <a href="#header.server" class="smpl">Server</a> header field. Instead, it <em class="bcp14">MUST</em> include a <a href="p1-messaging.html#header.via" class="smpl">Via</a> field (as described in <a href="p1-messaging.html#header.via" title="Via">Section 5.7</a> of <a href="#Part1" id="rfc.xref.Part1.25"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>).2942 </p> 2943 <div class="note" id="rfc.section. 8.4.2.p.7">2930 </pre><p id="rfc.section.7.4.2.p.6">If the response is being forwarded through a proxy, the proxy application <em class="bcp14">MUST NOT</em> modify the <a href="#header.server" class="smpl">Server</a> header field. Instead, it <em class="bcp14">MUST</em> include a <a href="p1-messaging.html#header.via" class="smpl">Via</a> field (as described in <a href="p1-messaging.html#header.via" title="Via">Section 5.7</a> of <a href="#Part1" id="rfc.xref.Part1.25"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). 2931 </p> 2932 <div class="note" id="rfc.section.7.4.2.p.7"> 2944 2933 <p> <b>Note:</b> Revealing the specific software version of the server might allow the server machine to become more vulnerable to attacks 2945 2934 against software that is known to contain security holes. Server implementers are encouraged to make this field a configurable … … 2947 2936 </p> 2948 2937 </div> 2949 <h1 id="rfc.section. 9"><a href="#rfc.section.9">9.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1>2950 <h2 id="rfc.section. 9.1"><a href="#rfc.section.9.1">9.1</a> <a id="http.date" href="#http.date">Date/Time Formats</a></h2>2951 <p id="rfc.section. 9.1.p.1">HTTP applications have historically allowed three different formats for date/time stamps. However, the preferred format is2938 <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 2939 <h2 id="rfc.section.8.1"><a href="#rfc.section.8.1">8.1</a> <a id="http.date" href="#http.date">Date/Time Formats</a></h2> 2940 <p id="rfc.section.8.1.p.1">HTTP applications have historically allowed three different formats for date/time stamps. However, the preferred format is 2952 2941 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>: 2953 2942 </p> 2954 2943 <div id="rfc.figure.u.47"></div><pre class="text">Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 2955 </pre><p id="rfc.section. 9.1.p.3">The other formats are described here only for compatibility with obsolete implementations.</p>2944 </pre><p id="rfc.section.8.1.p.3">The other formats are described here only for compatibility with obsolete implementations.</p> 2956 2945 <div id="rfc.figure.u.48"></div><pre class="text">Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 2957 2946 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format 2958 </pre><p id="rfc.section. 9.1.p.5">HTTP/1.1 clients and servers that parse a 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.2959 </p> 2960 <p id="rfc.section. 9.1.p.6">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 (Coordinated2947 </pre><p id="rfc.section.8.1.p.5">HTTP/1.1 clients and servers that parse a 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. 2948 </p> 2949 <p id="rfc.section.8.1.p.6">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 2961 2950 Universal Time). This is indicated in the first two formats by the inclusion of "GMT" as the three-letter abbreviation for 2962 2951 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. … … 2964 2953 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.34"></span> <a href="#http.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> 2965 2954 </pre><div id="preferred.date.format"> 2966 <p id="rfc.section. 9.1.p.8"> Preferred format:</p>2955 <p id="rfc.section.8.1.p.8"> Preferred format:</p> 2967 2956 </div> 2968 2957 <div id="rfc.figure.u.50"></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="#imported.abnf" class="smpl">SP</a> date1 <a href="#imported.abnf" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#imported.abnf" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a> … … 3004 2993 <a href="#preferred.date.format" class="smpl">minute</a> = 2<a href="#imported.abnf" class="smpl">DIGIT</a> 3005 2994 <a href="#preferred.date.format" class="smpl">second</a> = 2<a href="#imported.abnf" class="smpl">DIGIT</a> 3006 </pre><p id="rfc.section. 9.1.p.10">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>).2995 </pre><p id="rfc.section.8.1.p.10">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>). 3007 2996 </p> 3008 2997 <div id="obsolete.date.formats"> 3009 <p id="rfc.section. 9.1.p.11"> Obsolete formats:</p>2998 <p id="rfc.section.8.1.p.11"> Obsolete formats:</p> 3010 2999 </div> 3011 3000 <div id="rfc.figure.u.51"></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> … … 3024 3013 <a href="#obsolete.date.formats" class="smpl">date3</a> = <a href="#preferred.date.format" class="smpl">month</a> <a href="#imported.abnf" class="smpl">SP</a> ( 2<a href="#imported.abnf" class="smpl">DIGIT</a> / ( <a href="#imported.abnf" class="smpl">SP</a> 1<a href="#imported.abnf" class="smpl">DIGIT</a> )) 3025 3014 ; month day (e.g., Jun 2) 3026 </pre><div class="note" id="rfc.section. 9.1.p.15">3015 </pre><div class="note" id="rfc.section.8.1.p.15"> 3027 3016 <p> <b>Note:</b> Recipients of date values are encouraged to be robust in accepting date values that might have been sent by non-HTTP applications, 3028 3017 as is sometimes the case when retrieving or posting messages via proxies/gateways to SMTP or NNTP. 3029 3018 </p> 3030 3019 </div> 3031 <div class="note" id="rfc.section. 9.1.p.16">3020 <div class="note" id="rfc.section.8.1.p.16"> 3032 3021 <p> <b>Note:</b> HTTP requirements for the date/time stamp format apply only to their usage within the protocol stream. Clients and servers 3033 3022 are not required to use these formats for user presentation, request logging, etc. 3034 3023 </p> 3035 3024 </div> 3036 <h2 id="rfc.section. 9.2"><a href="#rfc.section.9.2">9.2</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2>3037 <p id="rfc.section. 9.2.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields3025 <h2 id="rfc.section.8.2"><a href="#rfc.section.8.2">8.2</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2> 3026 <p id="rfc.section.8.2.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields 3038 3027 using product tokens also allow sub-products which form a significant part of the application to be listed, separated by whitespace. 3039 3028 By convention, the products are listed in order of their significance for identifying the application. … … 3041 3030 <div id="rfc.figure.u.54"></div><pre class="inline"><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span> <a href="#product.tokens" class="smpl">product</a> = <a href="#imported.abnf" class="smpl">token</a> ["/" <a href="#product.tokens" class="smpl">product-version</a>] 3042 3031 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#imported.abnf" class="smpl">token</a> 3043 </pre><p id="rfc.section. 9.2.p.3">Examples:</p>3032 </pre><p id="rfc.section.8.2.p.3">Examples:</p> 3044 3033 <div id="rfc.figure.u.55"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 3045 3034 Server: Apache/0.8.4 3046 </pre><p id="rfc.section. 9.2.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 octet <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).3047 </p> 3048 <h2 id="rfc.section. 9.3"><a href="#rfc.section.9.3">9.3</a> <a id="character.sets" href="#character.sets">Character Encodings (charset)</a></h2>3049 <p id="rfc.section. 9.3.p.1">HTTP uses charset names to indicate the character encoding of a textual representation.</p>3035 </pre><p id="rfc.section.8.2.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 octet <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). 3036 </p> 3037 <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a> <a id="character.sets" href="#character.sets">Character Encodings (charset)</a></h2> 3038 <p id="rfc.section.8.3.p.1">HTTP uses charset names to indicate the character encoding of a textual representation.</p> 3050 3039 <div id="rule.charset"> 3051 <p id="rfc.section. 9.3.p.2"> A character encoding is identified by a case-insensitive token. The complete set of tokens is defined by the IANA Character3040 <p id="rfc.section.8.3.p.2"> A character encoding is identified by a case-insensitive token. The complete set of tokens is defined by the IANA Character 3052 3041 Set registry (<<a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a>>). 3053 3042 </p> 3054 3043 </div> 3055 3044 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.52"></span> <a href="#rule.charset" class="smpl">charset</a> = <a href="#imported.abnf" class="smpl">token</a> 3056 </pre><p id="rfc.section. 9.3.p.4">Although HTTP allows an arbitrary token to be used as a charset value, any token that has a predefined value within the IANA3045 </pre><p id="rfc.section.8.3.p.4">Although HTTP allows an arbitrary token to be used as a charset value, any token that has a predefined value within the IANA 3057 3046 Character Set registry <em class="bcp14">MUST</em> represent the character encoding defined by that registry. Applications <em class="bcp14">SHOULD</em> limit their use of character encodings to those defined within the IANA registry. 3058 3047 </p> 3059 <p id="rfc.section. 9.3.p.5">HTTP uses charset in two contexts: within an <a href="#header.accept-charset" class="smpl">Accept-Charset</a> request header field (in which the charset value is an unquoted token) and as the value of a parameter in a <a href="#header.content-type" class="smpl">Content-Type</a> header field (within a request or response), in which case the parameter value of the charset parameter can be quoted.3060 </p> 3061 <p id="rfc.section. 9.3.p.6">Implementers need to be aware of IETF character set requirements <a href="#RFC3629" id="rfc.xref.RFC3629.1"><cite title="UTF-8, a transformation format of ISO 10646">[RFC3629]</cite></a> <a href="#RFC2277" id="rfc.xref.RFC2277.1"><cite title="IETF Policy on Character Sets and Languages">[RFC2277]</cite></a>.3062 </p> 3063 <h2 id="rfc.section. 9.4"><a href="#rfc.section.9.4">9.4</a> <a id="content.codings" href="#content.codings">Content Codings</a></h2>3064 <p id="rfc.section. 9.4.p.1">Content coding values indicate an encoding transformation that has been or can be applied to a representation. Content codings3048 <p id="rfc.section.8.3.p.5">HTTP uses charset in two contexts: within an <a href="#header.accept-charset" class="smpl">Accept-Charset</a> request header field (in which the charset value is an unquoted token) and as the value of a parameter in a <a href="#header.content-type" class="smpl">Content-Type</a> header field (within a request or response), in which case the parameter value of the charset parameter can be quoted. 3049 </p> 3050 <p id="rfc.section.8.3.p.6">Implementers need to be aware of IETF character set requirements <a href="#RFC3629" id="rfc.xref.RFC3629.1"><cite title="UTF-8, a transformation format of ISO 10646">[RFC3629]</cite></a> <a href="#RFC2277" id="rfc.xref.RFC2277.1"><cite title="IETF Policy on Character Sets and Languages">[RFC2277]</cite></a>. 3051 </p> 3052 <h2 id="rfc.section.8.4"><a href="#rfc.section.8.4">8.4</a> <a id="content.codings" href="#content.codings">Content Codings</a></h2> 3053 <p id="rfc.section.8.4.p.1">Content coding values indicate an encoding transformation that has been or can be applied to a representation. Content codings 3065 3054 are primarily used to allow a representation to be compressed or otherwise usefully transformed without losing the identity 3066 3055 of its underlying media type and without loss of information. Frequently, the representation is stored in coded form, transmitted … … 3068 3057 </p> 3069 3058 <div id="rfc.figure.u.57"></div><pre class="inline"><span id="rfc.iref.g.53"></span> <a href="#content.codings" class="smpl">content-coding</a> = <a href="#imported.abnf" class="smpl">token</a> 3070 </pre><p id="rfc.section. 9.4.p.3">All content-coding values are case-insensitive. HTTP/1.1 uses content-coding values in the <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.3" title="Accept-Encoding">Section 6.3.4</a>) and <a href="#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="#header.content-encoding" id="rfc.xref.header.content-encoding.2" title="Content-Encoding">Section 3.2.2</a>) header fields. Although the value describes the content-coding, what is more important is that it indicates what decoding3059 </pre><p id="rfc.section.8.4.p.3">All content-coding values are case-insensitive. HTTP/1.1 uses content-coding values in the <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.3" title="Accept-Encoding">Section 5.3.4</a>) and <a href="#header.content-encoding" class="smpl">Content-Encoding</a> (<a href="#header.content-encoding" id="rfc.xref.header.content-encoding.2" title="Content-Encoding">Section 3.3.2</a>) header fields. Although the value describes the content-coding, what is more important is that it indicates what decoding 3071 3060 mechanism will be required to remove the encoding. 3072 3061 </p> 3073 <p id="rfc.section. 9.4.p.4">compress<span id="rfc.iref.c.8"></span>3062 <p id="rfc.section.8.4.p.4">compress<span id="rfc.iref.c.8"></span> 3074 3063 </p> 3075 3064 <ul class="empty"> … … 3077 3066 </li> 3078 3067 </ul> 3079 <p id="rfc.section. 9.4.p.5">deflate<span id="rfc.iref.d.3"></span>3068 <p id="rfc.section.8.4.p.5">deflate<span id="rfc.iref.d.3"></span> 3080 3069 </p> 3081 3070 <ul class="empty"> … … 3083 3072 </li> 3084 3073 </ul> 3085 <p id="rfc.section. 9.4.p.6">gzip<span id="rfc.iref.g.54"></span>3074 <p id="rfc.section.8.4.p.6">gzip<span id="rfc.iref.g.54"></span> 3086 3075 </p> 3087 3076 <ul class="empty"> … … 3089 3078 </li> 3090 3079 </ul> 3091 <h2 id="rfc.section. 9.5"><a href="#rfc.section.9.5">9.5</a> <a id="media.types" href="#media.types">Media Types</a></h2>3092 <p id="rfc.section. 9.5.p.1">HTTP uses Internet Media Types <a href="#RFC2046" id="rfc.xref.RFC2046.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a> in the <a href="#header.content-type" class="smpl">Content-Type</a> (<a href="#header.content-type" id="rfc.xref.header.content-type.3" title="Content-Type">Section 3.2.1</a>) and <a href="#header.accept" class="smpl">Accept</a> (<a href="#header.accept" id="rfc.xref.header.accept.3" title="Accept">Section 6.3.2</a>) header fields in order to provide open and extensible data typing and type negotiation.3080 <h2 id="rfc.section.8.5"><a href="#rfc.section.8.5">8.5</a> <a id="media.types" href="#media.types">Media Types</a></h2> 3081 <p id="rfc.section.8.5.p.1">HTTP uses Internet Media Types <a href="#RFC2046" id="rfc.xref.RFC2046.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a> in the <a href="#header.content-type" class="smpl">Content-Type</a> (<a href="#header.content-type" id="rfc.xref.header.content-type.3" title="Content-Type">Section 3.3.1</a>) and <a href="#header.accept" class="smpl">Accept</a> (<a href="#header.accept" id="rfc.xref.header.accept.3" title="Accept">Section 5.3.2</a>) header fields in order to provide open and extensible data typing and type negotiation. 3093 3082 </p> 3094 3083 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span><span id="rfc.iref.g.57"></span> <a href="#media.types" class="smpl">media-type</a> = <a href="#media.types" class="smpl">type</a> "/" <a href="#media.types" class="smpl">subtype</a> *( <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">parameter</a> ) … … 3096 3085 <a href="#media.types" class="smpl">subtype</a> = <a href="#imported.abnf" class="smpl">token</a> 3097 3086 </pre><div id="rule.parameter"> 3098 <p id="rfc.section. 9.5.p.3"> The type/subtype <em class="bcp14">MAY</em> be followed by parameters in the form of attribute/value pairs.3087 <p id="rfc.section.8.5.p.3"> The type/subtype <em class="bcp14">MAY</em> be followed by parameters in the form of attribute/value pairs. 3099 3088 </p> 3100 3089 </div> … … 3102 3091 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#imported.abnf" class="smpl">token</a> 3103 3092 <a href="#rule.parameter" class="smpl">value</a> = <a href="#imported.abnf" class="smpl">word</a> 3104 </pre><p id="rfc.section. 9.5.p.5">The type, subtype, and parameter attribute names are case-insensitive. Parameter values might or might not be case-sensitive,3093 </pre><p id="rfc.section.8.5.p.5">The type, subtype, and parameter attribute names are case-insensitive. Parameter values might or might not be case-sensitive, 3105 3094 depending on the semantics of the parameter name. The presence or absence of a parameter might be significant to the processing 3106 3095 of a media-type, depending on its definition within the media type registry. 3107 3096 </p> 3108 <p id="rfc.section. 9.5.p.6">A parameter value that matches the <a href="#imported.abnf" class="smpl">token</a> production can be transmitted as either a token or within a quoted-string. The quoted and unquoted values are equivalent.3109 </p> 3110 <p id="rfc.section. 9.5.p.7">Media-type values are registered with the Internet Assigned Number Authority (IANA). The media type registration process is3097 <p id="rfc.section.8.5.p.6">A parameter value that matches the <a href="#imported.abnf" class="smpl">token</a> production can be transmitted as either a token or within a quoted-string. The quoted and unquoted values are equivalent. 3098 </p> 3099 <p id="rfc.section.8.5.p.7">Media-type values are registered with the Internet Assigned Number Authority (IANA). The media type registration process is 3111 3100 outlined in <a href="#RFC4288" id="rfc.xref.RFC4288.1"><cite title="Media Type Specifications and Registration Procedures">[RFC4288]</cite></a>. Use of non-registered media types is discouraged. 3112 3101 </p> 3113 <h3 id="rfc.section. 9.5.1"><a href="#rfc.section.9.5.1">9.5.1</a> <a id="canonicalization.and.text.defaults" href="#canonicalization.and.text.defaults">Canonicalization and Text Defaults</a></h3>3114 <p id="rfc.section. 9.5.1.p.1">Internet media types are registered with a canonical form. A representation transferred via HTTP messages <em class="bcp14">MUST</em> be in the appropriate canonical form prior to its transmission except for "text" types, as defined in the next paragraph.3115 </p> 3116 <p id="rfc.section. 9.5.1.p.2">When in canonical form, media subtypes of the "text" type use CRLF as the text line break. HTTP relaxes this requirement and3102 <h3 id="rfc.section.8.5.1"><a href="#rfc.section.8.5.1">8.5.1</a> <a id="canonicalization.and.text.defaults" href="#canonicalization.and.text.defaults">Canonicalization and Text Defaults</a></h3> 3103 <p id="rfc.section.8.5.1.p.1">Internet media types are registered with a canonical form. A representation transferred via HTTP messages <em class="bcp14">MUST</em> be in the appropriate canonical form prior to its transmission except for "text" types, as defined in the next paragraph. 3104 </p> 3105 <p id="rfc.section.8.5.1.p.2">When in canonical form, media subtypes of the "text" type use CRLF as the text line break. HTTP relaxes this requirement and 3117 3106 allows the transport of text media with plain CR or LF alone representing a line break when it is done consistently for an 3118 3107 entire representation. HTTP applications <em class="bcp14">MUST</em> accept CRLF, bare CR, and bare LF as indicating a line break in text media received via HTTP. In addition, if the text is … … 3122 3111 body; a bare CR or LF <em class="bcp14">MUST NOT</em> be substituted for CRLF within any of the HTTP control structures (such as header fields and multipart boundaries). 3123 3112 </p> 3124 <p id="rfc.section. 9.5.1.p.3">If a representation is encoded with a content-coding, the underlying data <em class="bcp14">MUST</em> be in a form defined above prior to being encoded.3125 </p> 3126 <h3 id="rfc.section. 9.5.2"><a href="#rfc.section.9.5.2">9.5.2</a> <a id="multipart.types" href="#multipart.types">Multipart Types</a></h3>3127 <p id="rfc.section. 9.5.2.p.1">MIME provides for a number of "multipart" types — encapsulations of one or more representations within a single message body.3113 <p id="rfc.section.8.5.1.p.3">If a representation is encoded with a content-coding, the underlying data <em class="bcp14">MUST</em> be in a form defined above prior to being encoded. 3114 </p> 3115 <h3 id="rfc.section.8.5.2"><a href="#rfc.section.8.5.2">8.5.2</a> <a id="multipart.types" href="#multipart.types">Multipart Types</a></h3> 3116 <p id="rfc.section.8.5.2.p.1">MIME provides for a number of "multipart" types — encapsulations of one or more representations within a single message body. 3128 3117 All multipart types share a common syntax, as defined in <a href="http://tools.ietf.org/html/rfc2046#section-5.1.1">Section 5.1.1</a> of <a href="#RFC2046" id="rfc.xref.RFC2046.3"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a>, and include a boundary parameter as part of the media type value. The message body is itself a protocol element; a sender <em class="bcp14">MUST</em> generate only CRLF to represent line breaks between body-parts. 3129 3118 </p> 3130 <p id="rfc.section. 9.5.2.p.2">In general, HTTP treats a multipart message body no differently than any other media type: strictly as payload. HTTP does3119 <p id="rfc.section.8.5.2.p.2">In general, HTTP treats a multipart message body no differently than any other media type: strictly as payload. HTTP does 3131 3120 not use the multipart boundary as an indicator of message body length. In all other respects, an HTTP user agent <em class="bcp14">SHOULD</em> follow the same or similar behavior as a MIME user agent would upon receipt of a multipart type. The MIME header fields within 3132 3121 each body-part of a multipart message body do not have any significance to HTTP beyond that defined by their MIME semantics. 3133 3122 </p> 3134 <p id="rfc.section. 9.5.2.p.3">A recipient <em class="bcp14">MUST</em> treat an unrecognized multipart subtype as being equivalent to "multipart/mixed".3135 </p> 3136 <div class="note" id="rfc.section. 9.5.2.p.4">3123 <p id="rfc.section.8.5.2.p.3">A recipient <em class="bcp14">MUST</em> treat an unrecognized multipart subtype as being equivalent to "multipart/mixed". 3124 </p> 3125 <div class="note" id="rfc.section.8.5.2.p.4"> 3137 3126 <p> <b>Note:</b> The "multipart/form-data" type has been specifically defined for carrying form data suitable for processing via the POST request 3138 3127 method, as described in <a href="#RFC2388" id="rfc.xref.RFC2388.1"><cite title="Returning Values from Forms: multipart/form-data">[RFC2388]</cite></a>. 3139 3128 </p> 3140 3129 </div> 3141 <h2 id="rfc.section. 9.6"><a href="#rfc.section.9.6">9.6</a> <a id="language.tags" href="#language.tags">Language Tags</a></h2>3142 <p id="rfc.section. 9.6.p.1">A language tag, as defined in <a href="#RFC5646" id="rfc.xref.RFC5646.1"><cite title="Tags for Identifying Languages">[RFC5646]</cite></a>, identifies a natural language spoken, written, or otherwise conveyed by human beings for communication of information to3130 <h2 id="rfc.section.8.6"><a href="#rfc.section.8.6">8.6</a> <a id="language.tags" href="#language.tags">Language Tags</a></h2> 3131 <p id="rfc.section.8.6.p.1">A language tag, as defined in <a href="#RFC5646" id="rfc.xref.RFC5646.1"><cite title="Tags for Identifying Languages">[RFC5646]</cite></a>, identifies a natural language spoken, written, or otherwise conveyed by human beings for communication of information to 3143 3132 other human beings. Computer languages are explicitly excluded. HTTP uses language tags within the <a href="#header.accept-language" class="smpl">Accept-Language</a> and <a href="#header.content-language" class="smpl">Content-Language</a> fields. 3144 3133 </p> 3145 <p id="rfc.section. 9.6.p.2">In summary, a language tag is composed of one or more parts: A primary language subtag followed by a possibly empty series3134 <p id="rfc.section.8.6.p.2">In summary, a language tag is composed of one or more parts: A primary language subtag followed by a possibly empty series 3146 3135 of subtags: 3147 3136 </p> 3148 3137 <div id="rfc.figure.u.60"></div><pre class="inline"><span id="rfc.iref.g.61"></span> <a href="#language.tags" class="smpl">language-tag</a> = <Language-Tag, defined in <a href="#RFC5646" id="rfc.xref.RFC5646.2"><cite title="Tags for Identifying Languages">[RFC5646]</cite></a>, <a href="http://tools.ietf.org/html/rfc5646#section-2.1">Section 2.1</a>> 3149 </pre><p id="rfc.section. 9.6.p.4">White space is not allowed within the tag and all tags are case-insensitive. The name space of language subtags is administered3138 </pre><p id="rfc.section.8.6.p.4">White space is not allowed within the tag and all tags are case-insensitive. The name space of language subtags is administered 3150 3139 by the IANA (see <<a href="http://www.iana.org/assignments/language-subtag-registry">http://www.iana.org/assignments/language-subtag-registry</a>>). 3151 3140 </p> 3152 3141 <div id="rfc.figure.u.61"></div> 3153 3142 <p>Example tags include:</p> <pre class="text"> en, en-US, es-419, az-Arab, x-pig-latin, man-Nkoo-GN 3154 </pre> <p id="rfc.section. 9.6.p.6">See <a href="#RFC5646" id="rfc.xref.RFC5646.3"><cite title="Tags for Identifying Languages">[RFC5646]</cite></a> for further information.3155 </p> 3156 <h1 id="rfc.section. 10"><a href="#rfc.section.10">10.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>3157 <h2 id="rfc.section. 10.1"><a href="#rfc.section.10.1">10.1</a> <a id="method.registry" href="#method.registry">Method Registry</a></h2>3158 <p id="rfc.section. 10.1.p.1">The HTTP Method Registry defines the name space for the request method token (<a href="#methods" title="Request Methods">Section 5</a>). The method registry is maintained at <<a href="http://www.iana.org/assignments/http-methods">http://www.iana.org/assignments/http-methods</a>>.3159 </p> 3160 <h3 id="rfc.section. 10.1.1"><a href="#rfc.section.10.1.1">10.1.1</a> <a id="method.procedure" href="#method.procedure">Procedure</a></h3>3161 <p id="rfc.section. 10.1.1.p.1">HTTP method registrations <em class="bcp14">MUST</em> include the following fields:3162 </p> 3163 <ul> 3164 <li>Method Name (see <a href="#methods" title="Request Methods">Section 5</a>)3165 </li> 3166 <li>Safe ("yes" or "no", see <a href="#safe.methods" title="Safe Methods">Section 5.2.1</a>)3167 </li> 3168 <li>Idempotent ("yes" or "no", see <a href="#idempotent.methods" title="Idempotent Methods">Section 5.2.2</a>)3143 </pre> <p id="rfc.section.8.6.p.6">See <a href="#RFC5646" id="rfc.xref.RFC5646.3"><cite title="Tags for Identifying Languages">[RFC5646]</cite></a> for further information. 3144 </p> 3145 <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1> 3146 <h2 id="rfc.section.9.1"><a href="#rfc.section.9.1">9.1</a> <a id="method.registry" href="#method.registry">Method Registry</a></h2> 3147 <p id="rfc.section.9.1.p.1">The HTTP Method Registry defines the name space for the request method token (<a href="#methods" title="Request Methods">Section 4</a>). The method registry is maintained at <<a href="http://www.iana.org/assignments/http-methods">http://www.iana.org/assignments/http-methods</a>>. 3148 </p> 3149 <h3 id="rfc.section.9.1.1"><a href="#rfc.section.9.1.1">9.1.1</a> <a id="method.procedure" href="#method.procedure">Procedure</a></h3> 3150 <p id="rfc.section.9.1.1.p.1">HTTP method registrations <em class="bcp14">MUST</em> include the following fields: 3151 </p> 3152 <ul> 3153 <li>Method Name (see <a href="#methods" title="Request Methods">Section 4</a>) 3154 </li> 3155 <li>Safe ("yes" or "no", see <a href="#safe.methods" title="Safe Methods">Section 4.2.1</a>) 3156 </li> 3157 <li>Idempotent ("yes" or "no", see <a href="#idempotent.methods" title="Idempotent Methods">Section 4.2.2</a>) 3169 3158 </li> 3170 3159 <li>Pointer to specification text</li> 3171 3160 </ul> 3172 <p id="rfc.section. 10.1.1.p.2">Values to be added to this name space require IETF Review (see <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>).3173 </p> 3174 <h3 id="rfc.section. 10.1.2"><a href="#rfc.section.10.1.2">10.1.2</a> <a id="considerations.for.new.methods" href="#considerations.for.new.methods">Considerations for New Methods</a></h3>3175 <p id="rfc.section. 10.1.2.p.1">Standardized HTTP methods are generic; that is, they are potentially applicable to any resource, not just one particular media3161 <p id="rfc.section.9.1.1.p.2">Values to be added to this name space require IETF Review (see <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). 3162 </p> 3163 <h3 id="rfc.section.9.1.2"><a href="#rfc.section.9.1.2">9.1.2</a> <a id="considerations.for.new.methods" href="#considerations.for.new.methods">Considerations for New Methods</a></h3> 3164 <p id="rfc.section.9.1.2.p.1">Standardized HTTP methods are generic; that is, they are potentially applicable to any resource, not just one particular media 3176 3165 type, kind of resource, or application. As such, it is preferred that new HTTP methods be registered in a document that isn't 3177 3166 specific to a single application or data format, since orthogonal technologies deserve orthogonal specification. 3178 3167 </p> 3179 <p id="rfc.section. 10.1.2.p.2">Since HTTP message parsing (<a href="p1-messaging.html#message.body" title="Message Body">Section 3.3</a> of <a href="#Part1" id="rfc.xref.Part1.29"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is independent of method semantics (aside from responses to HEAD), definitions of new HTTP methods cannot change the parsing3168 <p id="rfc.section.9.1.2.p.2">Since HTTP message parsing (<a href="p1-messaging.html#message.body" title="Message Body">Section 3.3</a> of <a href="#Part1" id="rfc.xref.Part1.29"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is independent of method semantics (aside from responses to HEAD), definitions of new HTTP methods cannot change the parsing 3180 3169 algorithm or prohibit the presence of a message body on either the request or the response message. Definitions of new methods 3181 3170 can specify that only zero-length bodies are allowed, which would imply that each such messages would be required to contain 3182 3171 a Content-Length header field with a value of "0". 3183 3172 </p> 3184 <p id="rfc.section. 10.1.2.p.3">New method definitions need to indicate whether they are safe (<a href="#safe.methods" title="Safe Methods">Section 5.2.1</a>), idempotent (<a href="#idempotent.methods" title="Idempotent Methods">Section 5.2.2</a>), cacheable (<a href="#cacheable.methods" title="Cacheable Methods">Section 5.2.3</a>), and what semantics are to be associated with the request body if any is present in the request. If a method is cacheable,3173 <p id="rfc.section.9.1.2.p.3">New method definitions need to indicate whether they are safe (<a href="#safe.methods" title="Safe Methods">Section 4.2.1</a>), idempotent (<a href="#idempotent.methods" title="Idempotent Methods">Section 4.2.2</a>), cacheable (<a href="#cacheable.methods" title="Cacheable Methods">Section 4.2.3</a>), and what semantics are to be associated with the request body if any is present in the request. If a method is cacheable, 3185 3174 the method definition ought to describe how, and under what conditions, a cache can store a response and use it to satisfy 3186 3175 a subsequent request. 3187 3176 </p> 3188 <h3 id="rfc.section. 10.1.3"><a href="#rfc.section.10.1.3">10.1.3</a> <a id="method.registration" href="#method.registration">Registrations</a></h3>3189 <p id="rfc.section. 10.1.3.p.1">The HTTP Method Registry shall be populated with the registrations below:</p>3177 <h3 id="rfc.section.9.1.3"><a href="#rfc.section.9.1.3">9.1.3</a> <a id="method.registration" href="#method.registration">Registrations</a></h3> 3178 <p id="rfc.section.9.1.3.p.1">The HTTP Method Registry shall be populated with the registrations below:</p> 3190 3179 <div id="rfc.table.2"> 3191 3180 <div id="iana.method.registration.table"></div> … … 3204 3193 <td class="left">no</td> 3205 3194 <td class="left">no</td> 3206 <td class="left"> <a href="#CONNECT" id="rfc.xref.CONNECT.2" title="CONNECT">Section 5.3.6</a>3195 <td class="left"> <a href="#CONNECT" id="rfc.xref.CONNECT.2" title="CONNECT">Section 4.3.6</a> 3207 3196 </td> 3208 3197 </tr> … … 3211 3200 <td class="left">no</td> 3212 3201 <td class="left">yes</td> 3213 <td class="left"> <a href="#DELETE" id="rfc.xref.DELETE.2" title="DELETE">Section 5.3.5</a>3202 <td class="left"> <a href="#DELETE" id="rfc.xref.DELETE.2" title="DELETE">Section 4.3.5</a> 3214 3203 </td> 3215 3204 </tr> … … 3218 3207 <td class="left">yes</td> 3219 3208 <td class="left">yes</td> 3220 <td class="left"> <a href="#GET" id="rfc.xref.GET.3" title="GET">Section 5.3.1</a>3209 <td class="left"> <a href="#GET" id="rfc.xref.GET.3" title="GET">Section 4.3.1</a> 3221 3210 </td> 3222 3211 </tr> … … 3225 3214 <td class="left">yes</td> 3226 3215 <td class="left">yes</td> 3227 <td class="left"> <a href="#HEAD" id="rfc.xref.HEAD.2" title="HEAD">Section 5.3.2</a>3216 <td class="left"> <a href="#HEAD" id="rfc.xref.HEAD.2" title="HEAD">Section 4.3.2</a> 3228 3217 </td> 3229 3218 </tr> … … 3232 3221 <td class="left">yes</td> 3233 3222 <td class="left">yes</td> 3234 <td class="left"> <a href="#OPTIONS" id="rfc.xref.OPTIONS.3" title="OPTIONS">Section 5.3.7</a>3223 <td class="left"> <a href="#OPTIONS" id="rfc.xref.OPTIONS.3" title="OPTIONS">Section 4.3.7</a> 3235 3224 </td> 3236 3225 </tr> … … 3239 3228 <td class="left">no</td> 3240 3229 <td class="left">no</td> 3241 <td class="left"> <a href="#POST" id="rfc.xref.POST.3" title="POST">Section 5.3.3</a>3230 <td class="lef