Changeset 2161 for draft-ietf-httpbis
- Timestamp:
- 25/01/13 11:25:21 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p2-semantics.html
r2156 r2161 449 449 } 450 450 @bottom-center { 451 content: "Expires July 2 8, 2013";451 content: "Expires July 29, 2013"; 452 452 } 453 453 @bottom-right { … … 494 494 <meta name="dct.creator" content="Reschke, J. F."> 495 495 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest"> 496 <meta name="dct.issued" scheme="ISO8601" content="2013-01-2 4">496 <meta name="dct.issued" scheme="ISO8601" content="2013-01-25"> 497 497 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 498 498 <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."> … … 522 522 <tr> 523 523 <td class="left">Intended status: Standards Track</td> 524 <td class="right">January 2 4, 2013</td>524 <td class="right">January 25, 2013</td> 525 525 </tr> 526 526 <tr> 527 <td class="left">Expires: July 2 8, 2013</td>527 <td class="left">Expires: July 29, 2013</td> 528 528 <td class="right"></td> 529 529 </tr> … … 553 553 in progress”. 554 554 </p> 555 <p>This Internet-Draft will expire on July 2 8, 2013.</p>555 <p>This Internet-Draft will expire on July 29, 2013.</p> 556 556 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 557 557 <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 948 948 <h4 id="rfc.section.3.1.1.5"><a href="#rfc.section.3.1.1.5">3.1.1.5</a> <a id="header.content-type" href="#header.content-type">Content-Type</a></h4> 949 949 <p id="rfc.section.3.1.1.5.p.1">The "Content-Type" header field indicates the media type of the associated representation: either the representation enclosed 950 in the message payload or the selected representation, as determined by the message semantics. The indicated media type defines 951 both the data format and how that data is intended to be processed by a recipient, within the scope of the received message 952 semantics, after any content codings indicated by <a href="#header.content-encoding" class="smpl">Content-Encoding</a> are decoded. 950 in the message payload or the <a href="#representations" class="smpl">selected representation</a>, as determined by the message semantics. The indicated media type defines both the data format and how that data is intended 951 to be processed by a recipient, within the scope of the received message semantics, after any content codings indicated by <a href="#header.content-encoding" class="smpl">Content-Encoding</a> are decoded. 953 952 </p> 954 953 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.8"></span> <a href="#header.content-type" class="smpl">Content-Type</a> = <a href="#media.type" class="smpl">media-type</a> … … 1105 1104 <ul> 1106 1105 <li>For a response to a GET or HEAD request, this is an indication that the effective request URI refers to a resource that is 1107 subject to content negotiation and the Content-Location field-value is a more specific identifier for the selected representation.1106 subject to content negotiation and the Content-Location field-value is a more specific identifier for the <a href="#representations" class="smpl">selected representation</a>. 1108 1107 </li> 1109 1108 <li>For a <a href="#status.201" class="smpl">201 (Created)</a> response to a state-changing method, a Content-Location field-value that is identical to the <a href="#header.location" class="smpl">Location</a> field-value indicates that this payload is a current representation of the newly created resource. … … 1325 1324 the origin server <em class="bcp14">SHOULD</em> respond with the <a href="#status.405" class="smpl">405 (Method Not Allowed)</a> status code. 1326 1325 </p> 1326 <p id="rfc.section.4.1.p.9">A client can send conditional request header fields (<a href="#request.conditionals" title="Conditionals">Section 5.2</a>) to make the requested action conditional on the current state of the target resource (<a href="#Part4" id="rfc.xref.Part4.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>). 1327 </p> 1327 1328 <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> 1328 1329 <div id="rfc.iref.s.2"></div> … … 1379 1380 <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> 1380 1381 <div id="rfc.iref.g.16"></div> 1381 <p id="rfc.section.4.3.1.p.1">The GET method requests transfer of a current representation ofthe <a href="#resources" class="smpl">target resource</a>. GET is the primary mechanism of information retrieval and the focus of almost all performance optimizations. Hence, when1382 <p id="rfc.section.4.3.1.p.1">The GET method requests transfer of the selected representation for the <a href="#resources" class="smpl">target resource</a>. GET is the primary mechanism of information retrieval and the focus of almost all performance optimizations. Hence, when 1382 1383 people speak of retrieving some identifiable information via HTTP, they are generally referring to making a GET request. 1383 1384 </p> … … 1385 1386 of the process, unless that text happens to be the output of the process. 1386 1387 </p> 1387 <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.2"><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 1388 header field(s). The conditional GET request is intended to reduce unnecessary network usage by allowing cached representations 1389 to be refreshed without requiring multiple requests or transferring data already held by the client. 1390 </p> 1391 <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#header.range" class="smpl">Range</a> header field (<a href="#Part5" id="rfc.xref.Part5.3"><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 3.1</a> of <a href="#Part5" id="rfc.xref.Part5.4"><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 1392 to be completed without transferring data already held by the client. 1393 </p> 1394 <p id="rfc.section.4.3.1.p.5">A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some 1388 <p id="rfc.section.4.3.1.p.3">A client can alter the semantics of GET to be a "range request", requesting transfer of only some part(s) of the selected 1389 representation, by sending a <a href="p5-range.html#header.range" class="smpl">Range</a> header field in the request (<a href="#Part5" id="rfc.xref.Part5.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>). 1390 </p> 1391 <p id="rfc.section.4.3.1.p.4">A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some 1395 1392 existing implementations to reject the request. 1396 1393 </p> 1397 <p id="rfc.section.4.3.1.p. 6">The response to a GET request is cacheable; a cache <em class="bcp14">MAY</em> use it to satisfy subsequent GET and HEAD requests unless otherwise indicated by the Cache-Control header field (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).1394 <p id="rfc.section.4.3.1.p.5">The response to a GET request is cacheable; a cache <em class="bcp14">MAY</em> use it to satisfy subsequent GET and HEAD requests unless otherwise indicated by the Cache-Control header field (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). 1398 1395 </p> 1399 1396 <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> … … 1477 1474 body it has in memory remains current as a result of the PUT, thus not in need of retrieving again from the origin server, 1478 1475 and that the new validator(s) received in the response can be used for future conditional requests in order to prevent accidental 1479 overwrites .1476 overwrites (<a href="#request.conditionals" title="Conditionals">Section 5.2</a>). 1480 1477 </p> 1481 1478 <p id="rfc.section.4.3.4.p.8">The fundamental difference between the POST and PUT methods is highlighted by the different intent for the enclosed representation. … … 1495 1492 the related resources. 1496 1493 </p> 1497 <p id="rfc.section.4.3.4.p.11">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 4.2</a> of <a href="#Part5" id="rfc.xref.Part5. 5"><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 full1494 <p id="rfc.section.4.3.4.p.11">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 4.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 1498 1495 representation). Partial content updates are possible by targeting a separately identified resource with state that overlaps 1499 1496 a portion of the larger resource, or by using a different method that has been specifically defined for partial updates (for … … 1647 1644 <tr> 1648 1645 <td class="left">Range</td> 1649 <td class="left"><a href="p5-range.html#header.range" title="Range">Section 3.1</a> of <a href="#Part5" id="rfc.xref.Part5. 6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>1646 <td class="left"><a href="p5-range.html#header.range" title="Range">Section 3.1</a> of <a href="#Part5" id="rfc.xref.Part5.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 1650 1647 </tr> 1651 1648 <tr> … … 1744 1741 <p id="rfc.section.5.1.2.p.5">The Max-Forwards header field <em class="bcp14">MAY</em> be ignored for all other request methods. 1745 1742 </p> 1743 <div id="rfc.iref.c.10"></div> 1746 1744 <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> 1747 <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 <a href="#resources" class="smpl">target resource</a>. Each precondition is based on metadata that is expected to change if the <a href="#representations" class="smpl">selected representation</a> is changed. The HTTP/1.1 conditional request mechanisms are defined in <a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. 1745 <p id="rfc.section.5.2.p.1">The HTTP conditional request header fields <a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a> allow a client to place a precondition on the state of the target resource, so that the action corresponding to the method 1746 semantics will not be applied if the precondition evaluates to false. Each precondition defined by this specification consists 1747 of a comparison between a set of validators obtained from prior representations of the target resource to the current state 1748 of validators for the <a href="#representations" class="smpl">selected representation</a> (<a href="#response.validator" title="Validator Header Fields">Section 7.2</a>). Hence, these preconditions evaluate whether the state of the target resource has changed since a given state known by the 1749 client. The effect of such an evaluation depends on the method semantics and choice of conditional, as defined in <a href="p4-conditional.html#precedence" title="Evaluation and Precedence">Section 5</a> of <a href="#Part4" id="rfc.xref.Part4.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. 1748 1750 </p> 1749 1751 <div id="rfc.table.u.4"> … … 1758 1760 <tr> 1759 1761 <td class="left">If-Match</td> 1760 <td class="left"><a href="p4-conditional.html#header.if-match" title="If-Match">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4. 4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>1762 <td class="left"><a href="p4-conditional.html#header.if-match" title="If-Match">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 1761 1763 </tr> 1762 1764 <tr> 1763 1765 <td class="left">If-None-Match</td> 1764 <td class="left"><a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4. 5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>1766 <td class="left"><a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 1765 1767 </tr> 1766 1768 <tr> 1767 1769 <td class="left">If-Modified-Since</td> 1768 <td class="left"><a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#Part4" id="rfc.xref.Part4. 6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>1770 <td class="left"><a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#Part4" id="rfc.xref.Part4.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 1769 1771 </tr> 1770 1772 <tr> 1771 1773 <td class="left">If-Unmodified-Since</td> 1772 <td class="left"><a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 3.4</a> of <a href="#Part4" id="rfc.xref.Part4. 7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>1774 <td class="left"><a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 3.4</a> of <a href="#Part4" id="rfc.xref.Part4.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 1773 1775 </tr> 1774 1776 <tr> 1775 1777 <td class="left">If-Range</td> 1776 <td class="left"><a href="p5-range.html#header.if-range" title="If-Range">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5. 7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>1778 <td class="left"><a href="p5-range.html#header.if-range" title="If-Range">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 1777 1779 </tr> 1778 1780 </tbody> … … 2166 2168 </ul> 2167 2169 <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> 2168 <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. 8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#range.response" title="Responses to a Range Request">Section 4</a> of <a href="#Part5" id="rfc.xref.Part5.8"><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.5"><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 the2170 <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#range.response" title="Responses to a Range Request">Section 4</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.5"><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 2169 2171 protocol. 2170 2172 </p> … … 2222 2224 <td class="left">206</td> 2223 2225 <td class="left">Partial Content</td> 2224 <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 4.1</a> of <a href="#Part5" id="rfc.xref.Part5. 9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>2226 <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 4.1</a> of <a href="#Part5" id="rfc.xref.Part5.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 2225 2227 </tr> 2226 2228 <tr> … … 2247 2249 <td class="left">304</td> 2248 2250 <td class="left">Not Modified</td> 2249 <td id="status.304" class="left"><a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4. 9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>2251 <td id="status.304" class="left"><a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 2250 2252 </tr> 2251 2253 <tr> … … 2322 2324 <td class="left">412</td> 2323 2325 <td class="left">Precondition Failed</td> 2324 <td id="status.412" class="left"><a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 4.2</a> of <a href="#Part4" id="rfc.xref.Part4.1 0"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>2326 <td id="status.412" class="left"><a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 4.2</a> of <a href="#Part4" id="rfc.xref.Part4.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 2325 2327 </tr> 2326 2328 <tr> … … 2342 2344 <td class="left">416</td> 2343 2345 <td class="left">Range Not Satisfiable</td> 2344 <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Range Not Satisfiable">Section 4.4</a> of <a href="#Part5" id="rfc.xref.Part5. 10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>2346 <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Range Not Satisfiable">Section 4.4</a> of <a href="#Part5" id="rfc.xref.Part5.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 2345 2347 </tr> 2346 2348 <tr> … … 2389 2391 <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> 2390 2392 <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> 2391 <div id="rfc.iref.7 1"></div>2393 <div id="rfc.iref.72"></div> 2392 2394 <div id="rfc.iref.s.3"></div> 2393 2395 <p id="rfc.section.6.2.p.1">The <dfn>1xx (Informational)</dfn> class of status code indicates an interim response for communicating connection status or request progress prior to completing … … 2403 2405 a request, then it need not forward the corresponding <a href="#status.100" class="smpl">100 (Continue)</a> response(s). 2404 2406 </p> 2405 <div id="rfc.iref.7 2"></div>2407 <div id="rfc.iref.73"></div> 2406 2408 <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> 2407 2409 <p id="rfc.section.6.2.1.p.1">The <dfn>100 (Continue)</dfn> status code indicates that the initial part of a request has been received and has not yet been rejected by the server. The … … 2412 2414 <p id="rfc.section.6.2.1.p.3">If the request did not contain an <a href="#header.expect" class="smpl">Expect</a> header field containing the <a href="#use.of.the.100.status" class="smpl">100-continue</a> expectation, the client can simply discard this interim response. 2413 2415 </p> 2414 <div id="rfc.iref.7 2"></div>2416 <div id="rfc.iref.73"></div> 2415 2417 <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> 2416 2418 <p id="rfc.section.6.2.2.p.1">The <dfn>101 (Switching Protocols)</dfn> status code indicates that 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> header field (<a href="p1-messaging.html#header.upgrade" title="Upgrade">Section 6.7</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>), for a change in the application protocol being used on this connection. The server <em class="bcp14">MUST</em> generate an Upgrade header field in the response that indicates which protocol(s) will be switched to immediately after the … … 2422 2424 </p> 2423 2425 <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> 2424 <div id="rfc.iref.7 2"></div>2426 <div id="rfc.iref.73"></div> 2425 2427 <div id="rfc.iref.s.4"></div> 2426 2428 <p id="rfc.section.6.3.p.1">The <dfn>2xx (Successful)</dfn> class of status code indicates that the client's request was successfully received, understood, and accepted. 2427 2429 </p> 2428 <div id="rfc.iref.7 3"></div>2430 <div id="rfc.iref.74"></div> 2429 2431 <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> 2430 2432 <p id="rfc.section.6.3.1.p.1">The <dfn>200 (OK)</dfn> status code indicates that the request has succeeded. The payload sent in a 200 response depends on the request method. For … … 2451 2453 <p id="rfc.section.6.3.1.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.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 200 responses. 2452 2454 </p> 2453 <div id="rfc.iref.7 3"></div>2455 <div id="rfc.iref.74"></div> 2454 2456 <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> 2455 2457 <p id="rfc.section.6.3.2.p.1">The <dfn>201 (Created)</dfn> status code indicates that the request has been fulfilled and has resulted in one or more new resources being created. The … … 2458 2460 <p id="rfc.section.6.3.2.p.2">The 201 response payload typically describes and links to the resource(s) created. See <a href="#response.validator" title="Validator Header Fields">Section 7.2</a> for a discussion of the meaning and purpose of validator header fields, such as <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> and <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a>, in a 201 response. 2459 2461 </p> 2460 <div id="rfc.iref.7 3"></div>2462 <div id="rfc.iref.74"></div> 2461 2463 <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> 2462 2464 <p id="rfc.section.6.3.3.p.1">The <dfn>202 (Accepted)</dfn> status code indicates that the request has been accepted for processing, but the processing has not been completed. The request … … 2470 2472 be fulfilled. 2471 2473 </p> 2472 <div id="rfc.iref.7 3"></div>2474 <div id="rfc.iref.74"></div> 2473 2475 <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> 2474 2476 <p id="rfc.section.6.3.4.p.1">The <dfn>203 (Non-Authoritative Information)</dfn> status code indicates that the request was successful but the enclosed payload has been modified from that of the origin server's <a href="#status.200" class="smpl">200 (OK)</a> response by a transforming proxy (<a href="p1-messaging.html#message.transformations" title="Transformations">Section 5.7.2</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>). This status code allows the proxy to notify recipients when a transformation has been applied, since that knowledge might … … 2478 2480 <p id="rfc.section.6.3.4.p.2">The 203 response is similar to the Warning code of 214 Transformation Applied (<a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>), which has the advantage of being applicable to responses with any status code. 2479 2481 </p> 2480 <div id="rfc.iref.7 3"></div>2482 <div id="rfc.iref.74"></div> 2481 2483 <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> 2482 2484 <p id="rfc.section.6.3.5.p.1">The <dfn>204 (No Content)</dfn> status code indicates that the server has successfully fulfilled the request and that there is no additional content to send 2483 in the response payload body. Metadata in the response header fields refer to the <a href="#resources" class="smpl">target resource</a> and its selected representationafter the requested action was applied.2485 in the response payload body. Metadata in the response header fields refer to the <a href="#resources" class="smpl">target resource</a> and its <a href="#representations" class="smpl">selected representation</a> after the requested action was applied. 2484 2486 </p> 2485 2487 <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 … … 2496 2498 </p> 2497 2499 <p id="rfc.section.6.3.5.p.5">A 204 response is terminated by the first empty line after the header fields because it cannot contain a message body.</p> 2498 <div id="rfc.iref.7 3"></div>2500 <div id="rfc.iref.74"></div> 2499 2501 <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> 2500 2502 <p id="rfc.section.6.3.6.p.1">The <dfn>205 (Reset Content)</dfn> status code indicates that the server has fulfilled the request and desires that the user agent reset the "document view", … … 2509 2511 </p> 2510 2512 <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> 2511 <div id="rfc.iref.7 3"></div>2513 <div id="rfc.iref.74"></div> 2512 2514 <div id="rfc.iref.s.5"></div> 2513 2515 <p id="rfc.section.6.4.p.1">The <dfn>3xx (Redirection)</dfn> class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. If … … 2546 2548 </p> 2547 2549 </div> 2548 <div id="rfc.iref.7 4"></div>2550 <div id="rfc.iref.75"></div> 2549 2551 <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> 2550 2552 <p id="rfc.section.6.4.1.p.1">The <dfn>300 (Multiple Choices)</dfn> status code indicates that the <a href="#resources" class="smpl">target resource</a> has more than one representation, each with its own more specific identifier, and information about the alternatives is being … … 2568 2570 </p> 2569 2571 </div> 2570 <div id="rfc.iref.7 4"></div>2572 <div id="rfc.iref.75"></div> 2571 2573 <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> 2572 2574 <p id="rfc.section.6.4.2.p.1">The <dfn>301 (Moved Permanently)</dfn> status code indicates that the <a href="#resources" class="smpl">target resource</a> has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs. Clients … … 2583 2585 <p id="rfc.section.6.4.2.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.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 301 responses. 2584 2586 </p> 2585 <div id="rfc.iref.7 4"></div>2587 <div id="rfc.iref.75"></div> 2586 2588 <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> 2587 2589 <p id="rfc.section.6.4.3.p.1">The <dfn>302 (Found)</dfn> status code indicates that the target resource resides temporarily under a different URI. Since the redirection might be altered … … 2595 2597 </p> 2596 2598 </div> 2597 <div id="rfc.iref.7 4"></div>2599 <div id="rfc.iref.75"></div> 2598 2600 <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> 2599 2601 <p id="rfc.section.6.4.4.p.1">The <dfn>303 (See Other)</dfn> status code indicates that the server is redirecting the user agent to a different resource, as indicated by a URI 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, … … 2614 2616 a hyperlink to the same URI reference provided in the <a href="#header.location" class="smpl">Location</a> header field. 2615 2617 </p> 2616 <div id="rfc.iref.7 4"></div>2618 <div id="rfc.iref.75"></div> 2617 2619 <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> 2618 2620 <p id="rfc.section.6.4.5.p.1">The <dfn>305 (Use Proxy)</dfn> status code was defined in a previous version of this specification and is now deprecated (<a href="#changes.from.rfc.2616" title="Significant changes from RFC 2616">Appendix B</a>). 2619 2621 </p> 2620 <div id="rfc.iref.7 4"></div>2622 <div id="rfc.iref.75"></div> 2621 2623 <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> 2622 2624 <p id="rfc.section.6.4.6.p.1">The 306 status code was defined in a previous version of this specification, is no longer used, and the code is reserved.</p> 2623 <div id="rfc.iref.7 4"></div>2625 <div id="rfc.iref.75"></div> 2624 2626 <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> 2625 2627 <p id="rfc.section.6.4.7.p.1">The <dfn>307 (Temporary Redirect)</dfn> status code indicates that the <a href="#resources" class="smpl">target resource</a> resides temporarily under a different URI and the user agent <em class="bcp14">MUST NOT</em> change the request method if it performs an automatic redirection to that URI. Since the redirection can change over time, … … 2636 2638 </div> 2637 2639 <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> 2638 <div id="rfc.iref.7 4"></div>2640 <div id="rfc.iref.75"></div> 2639 2641 <div id="rfc.iref.s.6"></div> 2640 2642 <p id="rfc.section.6.5.p.1">The <dfn>4xx (Client Error)</dfn> class of status code indicates that the client seems to have erred. Except when responding to a HEAD request, the server <em class="bcp14">SHOULD</em> send a representation containing an explanation of the error situation, and whether it is a temporary or permanent condition. 2641 2643 These status codes are applicable to any request method. User agents <em class="bcp14">SHOULD</em> display any included representation to the user. 2642 2644 </p> 2643 <div id="rfc.iref.7 5"></div>2645 <div id="rfc.iref.76"></div> 2644 2646 <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> 2645 2647 <p id="rfc.section.6.5.1.p.1">The <dfn>400 (Bad Request)</dfn> status code indicates that the server cannot or will not process the request because the received syntax is invalid, nonsensical, 2646 2648 or exceeds some limitation on what the server is willing to process. 2647 2649 </p> 2648 <div id="rfc.iref.7 5"></div>2650 <div id="rfc.iref.76"></div> 2649 2651 <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> 2650 2652 <p id="rfc.section.6.5.2.p.1">The <dfn>402 (Payment Required)</dfn> status code is reserved for future use. 2651 2653 </p> 2652 <div id="rfc.iref.7 5"></div>2654 <div id="rfc.iref.76"></div> 2653 2655 <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> 2654 2656 <p id="rfc.section.6.5.3.p.1">The <dfn>403 (Forbidden)</dfn> status code indicates that the server understood the request but refuses to authorize it. A server that wishes to make public … … 2659 2661 <p id="rfc.section.6.5.3.p.3">An origin server that wishes to "hide" the current existence of a forbidden <a href="#resources" class="smpl">target resource</a> <em class="bcp14">MAY</em> instead respond with a status code of <a href="#status.404" class="smpl">404 (Not Found)</a>. 2660 2662 </p> 2661 <div id="rfc.iref.7 5"></div>2663 <div id="rfc.iref.76"></div> 2662 2664 <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> 2663 2665 <p id="rfc.section.6.5.4.p.1">The <dfn>404 (Not Found)</dfn> status code indicates that the origin server did not find a current representation for the <a href="#resources" class="smpl">target resource</a> or is not willing to disclose that one exists. A 404 status does not indicate whether this lack of representation is temporary … … 2665 2667 is likely to be permanent. 2666 2668 </p> 2667 <div id="rfc.iref.7 5"></div>2669 <div id="rfc.iref.76"></div> 2668 2670 <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> 2669 2671 <p id="rfc.section.6.5.5.p.1">The <dfn>405 (Method Not Allowed)</dfn> status code indicates that the method specified in the request-line is known by the origin server but not supported by the <a href="#resources" class="smpl">target resource</a>. The origin server <em class="bcp14">MUST</em> generate an <a href="#header.allow" class="smpl">Allow</a> header field in a 405 response containing a list of the target resource's currently supported methods. 2670 2672 </p> 2671 <div id="rfc.iref.7 5"></div>2673 <div id="rfc.iref.76"></div> 2672 2674 <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> 2673 2675 <p id="rfc.section.6.5.6.p.1">The <dfn>406 (Not Acceptable)</dfn> status code indicates that the <a href="#resources" class="smpl">target resource</a> does not have a current representation that would be acceptable to the user agent, according to the <a href="#proactive.negotiation" class="smpl">proactive negotiation</a> header fields received in the request (<a href="#request.conneg" title="Content Negotiation">Section 5.3</a>), and the server is unwilling to supply a default representation. … … 2677 2679 for such automatic selection, as described in <a href="#status.300" id="rfc.xref.status.300.2" title="300 Multiple Choices">Section 6.4.1</a>. 2678 2680 </p> 2679 <div id="rfc.iref.7 5"></div>2681 <div id="rfc.iref.76"></div> 2680 2682 <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> 2681 2683 <p id="rfc.section.6.5.7.p.1">The <dfn>408 (Request Timeout)</dfn> status code indicates that the server did not receive a complete request message within the time that it was prepared to wait. … … 2683 2685 the client has an outstanding request in transit, the client <em class="bcp14">MAY</em> repeat that request on a new connection. 2684 2686 </p> 2685 <div id="rfc.iref.7 5"></div>2687 <div id="rfc.iref.76"></div> 2686 2688 <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> 2687 2689 <p id="rfc.section.6.5.8.p.1">The <dfn>409 (Conflict)</dfn> status code indicates that the request could not be completed due to a conflict with the current state of the resource. This … … 2693 2695 contain information useful for merging the differences based on the revision history. 2694 2696 </p> 2695 <div id="rfc.iref.7 5"></div>2697 <div id="rfc.iref.76"></div> 2696 2698 <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> 2697 2699 <p id="rfc.section.6.5.9.p.1">The <dfn>410 (Gone)</dfn> status code indicates that access to the <a href="#resources" class="smpl">target resource</a> is no longer available at the origin server and that this condition is likely to be permanent. If the origin server does not … … 2706 2708 <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. 2707 2709 </p> 2708 <div id="rfc.iref.7 5"></div>2710 <div id="rfc.iref.76"></div> 2709 2711 <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> 2710 2712 <p id="rfc.section.6.5.10.p.1">The <dfn>411 (Length Required)</dfn> status code indicates that the server refuses to accept the request without a defined <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> (<a href="p1-messaging.html#header.content-length" title="Content-Length">Section 3.3.2</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>). 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 2711 2713 message. 2712 2714 </p> 2713 <div id="rfc.iref.7 5"></div>2715 <div id="rfc.iref.76"></div> 2714 2716 <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 Payload Too Large</a></h3> 2715 2717 <p id="rfc.section.6.5.11.p.1">The <dfn>413 (Payload Too Large)</dfn> status code indicates that the server is refusing to process a request because the request payload is larger than the server … … 2718 2720 <p id="rfc.section.6.5.11.p.2">If the condition is temporary, the server <em class="bcp14">SHOULD</em> generate 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. 2719 2721 </p> 2720 <div id="rfc.iref.7 5"></div>2722 <div id="rfc.iref.76"></div> 2721 2723 <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> 2722 2724 <p id="rfc.section.6.5.12.p.1">The <dfn>414 (URI Too Long)</dfn> status code indicates that the server is refusing to service the request because 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.26"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) is longer than the server is willing to interpret. This rare condition is only likely to occur when a client has improperly … … 2725 2727 attempting to exploit potential security holes. 2726 2728 </p> 2727 <div id="rfc.iref.7 5"></div>2729 <div id="rfc.iref.76"></div> 2728 2730 <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> 2729 2731 <p id="rfc.section.6.5.13.p.1">The <dfn>415 (Unsupported Media Type)</dfn> status code indicates that the origin server is refusing to service the request because the payload is in a format not supported 2730 2732 by the <a href="#resources" class="smpl">target resource</a> for this method. The format problem might be due to the request's indicated <a href="#header.content-type" class="smpl">Content-Type</a> or <a href="#header.content-encoding" class="smpl">Content-Encoding</a>, or as a result of inspecting the data directly. 2731 2733 </p> 2732 <div id="rfc.iref.7 5"></div>2734 <div id="rfc.iref.76"></div> 2733 2735 <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> 2734 2736 <p id="rfc.section.6.5.14.p.1">The <dfn>417 (Expectation Failed)</dfn> status code indicates that the expectation given in the request's <a href="#header.expect" class="smpl">Expect</a> header field (<a href="#header.expect" id="rfc.xref.header.expect.2" title="Expect">Section 5.1.1</a>) could not be met by at least one of the inbound servers. 2735 2737 </p> 2736 <div id="rfc.iref.7 5"></div>2738 <div id="rfc.iref.76"></div> 2737 2739 <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> 2738 2740 <p id="rfc.section.6.5.15.p.1">The <dfn>426 (Upgrade Required)</dfn> status code indicates that the server refuses to perform the request using the current protocol but might be willing to do … … 2748 2750 <span id="s426body">This service requires use of the HTTP/3.0 protocol. 2749 2751 </span></pre><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> 2750 <div id="rfc.iref.7 5"></div>2752 <div id="rfc.iref.76"></div> 2751 2753 <div id="rfc.iref.s.7"></div> 2752 2754 <p id="rfc.section.6.6.p.1">The <dfn>5xx (Server Error)</dfn> class of status code indicates that the server is aware that it has erred or is incapable of performing the requested method. … … 2754 2756 User agents <em class="bcp14">SHOULD</em> display any included representation to the user. These response codes are applicable to any request method. 2755 2757 </p> 2756 <div id="rfc.iref.7 6"></div>2758 <div id="rfc.iref.77"></div> 2757 2759 <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> 2758 2760 <p id="rfc.section.6.6.1.p.1">The <dfn>500 (Internal Server Error)</dfn> status code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request. 2759 2761 </p> 2760 <div id="rfc.iref.7 6"></div>2762 <div id="rfc.iref.77"></div> 2761 2763 <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> 2762 2764 <p id="rfc.section.6.6.2.p.1">The <dfn>501 (Not Implemented)</dfn> status code indicates that the server does not support the functionality required to fulfill the request. This is the appropriate 2763 2765 response when the server does not recognize the request method and is not capable of supporting it for any resource. 2764 2766 </p> 2765 <div id="rfc.iref.7 6"></div>2767 <div id="rfc.iref.77"></div> 2766 2768 <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> 2767 2769 <p id="rfc.section.6.6.3.p.1">The <dfn>502 (Bad Gateway)</dfn> status code indicates that the server, while acting as a gateway or proxy, received an invalid response from an inbound server 2768 2770 it accessed while attempting to fulfill the request. 2769 2771 </p> 2770 <div id="rfc.iref.7 6"></div>2772 <div id="rfc.iref.77"></div> 2771 2773 <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> 2772 2774 <p id="rfc.section.6.6.4.p.1">The <dfn>503 (Service Unavailable)</dfn> status code indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, … … 2778 2780 </p> 2779 2781 </div> 2780 <div id="rfc.iref.7 6"></div>2782 <div id="rfc.iref.77"></div> 2781 2783 <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> 2782 2784 <p id="rfc.section.6.6.5.p.1">The <dfn>504 (Gateway Timeout)</dfn> status code indicates that the server, while acting as a gateway or proxy, did not receive a timely response from an upstream 2783 2785 server it needed to access in order to complete the request. 2784 2786 </p> 2785 <div id="rfc.iref.7 6"></div>2787 <div id="rfc.iref.77"></div> 2786 2788 <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> 2787 2789 <p id="rfc.section.6.6.6.p.1">The <dfn>505 (HTTP Version Not Supported)</dfn> status code indicates that the server does not support, or refuses to support, the protocol version that was used in the request … … 3057 3059 </p> 3058 3060 <p id="rfc.section.7.2.p.3">For example, an ETag header field in a 201 response communicates the entity-tag of the newly created resource's representation, 3059 so that it can be used in later conditional requests to prevent the "lost update" problem <a href="#Part4" id="rfc.xref.Part4.1 1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>.3061 so that it can be used in later conditional requests to prevent the "lost update" problem <a href="#Part4" id="rfc.xref.Part4.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. 3060 3062 </p> 3061 3063 <div id="rfc.table.u.11"> … … 3070 3072 <tr> 3071 3073 <td class="left">ETag</td> 3072 <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.1 2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>3074 <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 3073 3075 </tr> 3074 3076 <tr> 3075 3077 <td class="left">Last-Modified</td> 3076 <td class="left"><a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.1 3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td>3078 <td class="left"><a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a></td> 3077 3079 </tr> 3078 3080 </tbody> … … 3117 3119 <tr> 3118 3120 <td class="left">Accept-Ranges</td> 3119 <td class="left"><a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 2.3</a> of <a href="#Part5" id="rfc.xref.Part5.1 1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>3121 <td class="left"><a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 2.3</a> of <a href="#Part5" id="rfc.xref.Part5.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 3120 3122 </tr> 3121 3123 <tr> … … 3190 3192 <p id="rfc.section.8.1.2.p.3">A new method definition needs to indicate whether it is 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>), what semantics are to be associated with the payload body if any is present in the request, and what refinements the method 3191 3193 makes to header field or status code semantics. If the new method is cacheable, its definition ought to describe how, and 3192 under what conditions, a cache can store a response and use it to satisfy a subsequent request. If the new method can be made3193 conditional (<a href="#Part4" id="rfc.xref.Part4.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>), the definition ought to describe how to respond when the condition is false. Likewise, if the new method might have some3194 use for partial response semantics (<a href="#Part5" id="rfc.xref.Part5.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), it ought to document this too.3194 under what conditions, a cache can store a response and use it to satisfy a subsequent request. The new method ought to describe 3195 whether it can be made conditional (<a href="#request.conditionals" title="Conditionals">Section 5.2</a>) and, if so, how a server responds when the condition is false. Likewise, if the new method might have some use for partial 3196 response semantics (<a href="#Part5" id="rfc.xref.Part5.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), it ought to document this too. 3195 3197 </p> 3196 3198 <h3 id="rfc.section.8.1.3"><a href="#rfc.section.8.1.3">8.1.3</a> <a id="method.registration" href="#method.registration">Registrations</a></h3> … … 4138 4140 However, this parameter is not part of the MIME standards). 4139 4141 </p> 4140 <div id="rfc.iref.c.1 0"></div>4142 <div id="rfc.iref.c.11"></div> 4141 4143 <h2 id="rfc.section.A.5"><a href="#rfc.section.A.5">A.5</a> <a id="conversion.content-transfer-encoding" href="#conversion.content-transfer-encoding">Conversion of Content-Transfer-Encoding</a></h2> 4142 4144 <p id="rfc.section.A.5.p.1">HTTP does not use the Content-Transfer-Encoding field of MIME. Proxies and gateways from MIME-compliant protocols to HTTP … … 4152 4154 fold long lines. MHTML messages being transported by HTTP follow all conventions of MHTML, including line length limitations 4153 4155 and folding, canonicalization, etc., since HTTP transfers message-bodies as payload and, aside from the "multipart/byteranges" 4154 type (<a href="p5-range.html#internet.media.type.multipart.byteranges" title="Internet Media Type multipart/byteranges">Appendix A</a> of <a href="#Part5" id="rfc.xref.Part5.1 3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), does not interpret the content or any MIME header lines that might be contained therein.4156 type (<a href="p5-range.html#internet.media.type.multipart.byteranges" title="Internet Media Type multipart/byteranges">Appendix A</a> of <a href="#Part5" id="rfc.xref.Part5.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), does not interpret the content or any MIME header lines that might be contained therein. 4155 4157 </p> 4156 4158 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Significant changes from RFC 2616</a></h1> … … 4411 4413 <ul class="ind"> 4412 4414 <li><a id="rfc.index.1" href="#rfc.index.1"><b>1</b></a><ul> 4413 <li>100 Continue (status code) <a href="#rfc.xref.status.100.1">5.1.1.1</a>, <a href="#rfc.xref.status.100.2">5.1.1.1</a>, <a href="#rfc.xref.status.100.3">6.1</a>, <a href="#rfc.iref.7 2"><b>6.2.1</b></a>, <a href="#rfc.xref.status.100.4">8.2.3</a></li>4415 <li>100 Continue (status code) <a href="#rfc.xref.status.100.1">5.1.1.1</a>, <a href="#rfc.xref.status.100.2">5.1.1.1</a>, <a href="#rfc.xref.status.100.3">6.1</a>, <a href="#rfc.iref.73"><b>6.2.1</b></a>, <a href="#rfc.xref.status.100.4">8.2.3</a></li> 4414 4416 <li>100-continue (expect value) <a href="#rfc.iref.45"><b>5.1.1.1</b></a></li> 4415 <li>101 Switching Protocols (status code) <a href="#rfc.xref.status.101.1">6.1</a>, <a href="#rfc.iref.7 2"><b>6.2.2</b></a>, <a href="#rfc.xref.status.101.2">8.2.3</a></li>4416 <li>1xx Informational (status code class) <a href="#rfc.iref.7 1"><b>6.2</b></a></li>4417 <li>101 Switching Protocols (status code) <a href="#rfc.xref.status.101.1">6.1</a>, <a href="#rfc.iref.73"><b>6.2.2</b></a>, <a href="#rfc.xref.status.101.2">8.2.3</a></li> 4418 <li>1xx Informational (status code class) <a href="#rfc.iref.72"><b>6.2</b></a></li> 4417 4419 </ul> 4418 4420 </li> 4419 4421 <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul> 4420 <li>200 OK (status code) <a href="#rfc.xref.status.200.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.1</b></a>, <a href="#rfc.xref.status.200.2">8.2.3</a></li>4421 <li>201 Created (status code) <a href="#rfc.xref.status.201.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.2</b></a>, <a href="#rfc.xref.status.201.2">8.2.3</a>, <a href="#rfc.xref.status.201.3">B</a></li>4422 <li>202 Accepted (status code) <a href="#rfc.xref.status.202.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.3</b></a>, <a href="#rfc.xref.status.202.2">8.2.3</a></li>4423 <li>203 Non-Authoritative Information (status code) <a href="#rfc.xref.status.203.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.4</b></a>, <a href="#rfc.xref.status.203.2">8.2.3</a>, <a href="#rfc.xref.status.203.3">B</a></li>4424 <li>204 No Content (status code) <a href="#rfc.xref.status.204.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.5</b></a>, <a href="#rfc.xref.status.204.2">8.2.3</a></li>4425 <li>205 Reset Content (status code) <a href="#rfc.xref.status.205.1">6.1</a>, <a href="#rfc.iref.7 3"><b>6.3.6</b></a>, <a href="#rfc.xref.status.205.2">8.2.3</a></li>4426 <li>2xx Successful (status code class) <a href="#rfc.iref.7 2"><b>6.3</b></a></li>4422 <li>200 OK (status code) <a href="#rfc.xref.status.200.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.1</b></a>, <a href="#rfc.xref.status.200.2">8.2.3</a></li> 4423 <li>201 Created (status code) <a href="#rfc.xref.status.201.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.2</b></a>, <a href="#rfc.xref.status.201.2">8.2.3</a>, <a href="#rfc.xref.status.201.3">B</a></li> 4424 <li>202 Accepted (status code) <a href="#rfc.xref.status.202.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.3</b></a>, <a href="#rfc.xref.status.202.2">8.2.3</a></li> 4425 <li>203 Non-Authoritative Information (status code) <a href="#rfc.xref.status.203.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.4</b></a>, <a href="#rfc.xref.status.203.2">8.2.3</a>, <a href="#rfc.xref.status.203.3">B</a></li> 4426 <li>204 No Content (status code) <a href="#rfc.xref.status.204.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.5</b></a>, <a href="#rfc.xref.status.204.2">8.2.3</a></li> 4427 <li>205 Reset Content (status code) <a href="#rfc.xref.status.205.1">6.1</a>, <a href="#rfc.iref.74"><b>6.3.6</b></a>, <a href="#rfc.xref.status.205.2">8.2.3</a></li> 4428 <li>2xx Successful (status code class) <a href="#rfc.iref.73"><b>6.3</b></a></li> 4427 4429 </ul> 4428 4430 </li> 4429 4431 <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul> 4430 <li>300 Multiple Choices (status code) <a href="#rfc.xref.status.300.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.1</b></a>, <a href="#rfc.xref.status.300.2">6.5.6</a>, <a href="#rfc.xref.status.300.3">8.2.3</a></li>4431 <li>301 Moved Permanently (status code) <a href="#rfc.xref.status.301.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.2</b></a>, <a href="#rfc.xref.status.301.2">8.2.3</a>, <a href="#rfc.xref.status.301.3">B</a></li>4432 <li>302 Found (status code) <a href="#rfc.xref.status.302.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.3</b></a>, <a href="#rfc.xref.status.302.2">8.2.3</a>, <a href="#rfc.xref.status.302.3">B</a></li>4433 <li>303 See Other (status code) <a href="#rfc.xref.status.303.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.4</b></a>, <a href="#rfc.xref.status.303.2">8.2.3</a>, <a href="#rfc.xref.status.303.3">B</a></li>4434 <li>305 Use Proxy (status code) <a href="#rfc.xref.status.305.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.5</b></a>, <a href="#rfc.xref.status.305.2">8.2.3</a>, <a href="#rfc.xref.status.305.3">B</a></li>4435 <li>306 (Unused) (status code) <a href="#rfc.iref.7 4"><b>6.4.6</b></a>, <a href="#rfc.xref.status.306.1">8.2.3</a></li>4436 <li>307 Temporary Redirect (status code) <a href="#rfc.xref.status.307.1">6.1</a>, <a href="#rfc.iref.7 4"><b>6.4.7</b></a>, <a href="#rfc.xref.status.307.2">8.2.3</a></li>4437 <li>3xx Redirection (status code class) <a href="#rfc.iref.7 3"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1">B</a>, <a href="#rfc.xref.status.3xx.2">B</a></li>4432 <li>300 Multiple Choices (status code) <a href="#rfc.xref.status.300.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.1</b></a>, <a href="#rfc.xref.status.300.2">6.5.6</a>, <a href="#rfc.xref.status.300.3">8.2.3</a></li> 4433 <li>301 Moved Permanently (status code) <a href="#rfc.xref.status.301.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.2</b></a>, <a href="#rfc.xref.status.301.2">8.2.3</a>, <a href="#rfc.xref.status.301.3">B</a></li> 4434 <li>302 Found (status code) <a href="#rfc.xref.status.302.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.3</b></a>, <a href="#rfc.xref.status.302.2">8.2.3</a>, <a href="#rfc.xref.status.302.3">B</a></li> 4435 <li>303 See Other (status code) <a href="#rfc.xref.status.303.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.4</b></a>, <a href="#rfc.xref.status.303.2">8.2.3</a>, <a href="#rfc.xref.status.303.3">B</a></li> 4436 <li>305 Use Proxy (status code) <a href="#rfc.xref.status.305.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.5</b></a>, <a href="#rfc.xref.status.305.2">8.2.3</a>, <a href="#rfc.xref.status.305.3">B</a></li> 4437 <li>306 (Unused) (status code) <a href="#rfc.iref.75"><b>6.4.6</b></a>, <a href="#rfc.xref.status.306.1">8.2.3</a></li> 4438 <li>307 Temporary Redirect (status code) <a href="#rfc.xref.status.307.1">6.1</a>, <a href="#rfc.iref.75"><b>6.4.7</b></a>, <a href="#rfc.xref.status.307.2">8.2.3</a></li> 4439 <li>3xx Redirection (status code class) <a href="#rfc.iref.74"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1">B</a>, <a href="#rfc.xref.status.3xx.2">B</a></li> 4438 4440 </ul> 4439 4441 </li> 4440 4442 <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul> 4441 <li>400 Bad Request (status code) <a href="#rfc.xref.status.400.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.1</b></a>, <a href="#rfc.xref.status.400.2">8.2.3</a>, <a href="#rfc.xref.status.400.3">B</a></li>4442 <li>402 Payment Required (status code) <a href="#rfc.xref.status.402.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.2</b></a>, <a href="#rfc.xref.status.402.2">8.2.3</a></li>4443 <li>403 Forbidden (status code) <a href="#rfc.xref.status.403.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.3</b></a>, <a href="#rfc.xref.status.403.2">8.2.3</a></li>4444 <li>404 Not Found (status code) <a href="#rfc.xref.status.404.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.4</b></a>, <a href="#rfc.xref.status.404.2">8.2.3</a></li>4445 <li>405 Method Not Allowed (status code) <a href="#rfc.xref.status.405.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.5</b></a>, <a href="#rfc.xref.status.405.2">8.2.3</a></li>4446 <li>406 Not Acceptable (status code) <a href="#rfc.xref.status.406.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.6</b></a>, <a href="#rfc.xref.status.406.2">8.2.3</a></li>4447 <li>408 Request Timeout (status code) <a href="#rfc.xref.status.408.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.7</b></a>, <a href="#rfc.xref.status.408.2">8.2.3</a></li>4448 <li>409 Conflict (status code) <a href="#rfc.xref.status.409.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.8</b></a>, <a href="#rfc.xref.status.409.2">8.2.3</a></li>4449 <li>410 Gone (status code) <a href="#rfc.xref.status.410.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.9</b></a>, <a href="#rfc.xref.status.410.2">8.2.3</a></li>4450 <li>411 Length Required (status code) <a href="#rfc.xref.status.411.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.10</b></a>, <a href="#rfc.xref.status.411.2">8.2.3</a></li>4451 <li>413 Payload Too Large (status code) <a href="#rfc.xref.status.413.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.11</b></a>, <a href="#rfc.xref.status.413.2">8.2.3</a></li>4452 <li>414 URI Too Long (status code) <a href="#rfc.xref.status.414.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.12</b></a>, <a href="#rfc.xref.status.414.2">8.2.3</a></li>4453 <li>415 Unsupported Media Type (status code) <a href="#rfc.xref.status.415.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.13</b></a>, <a href="#rfc.xref.status.415.2">8.2.3</a></li>4454 <li>417 Expectation Failed (status code) <a href="#rfc.xref.status.417.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.14</b></a>, <a href="#rfc.xref.status.417.2">8.2.3</a></li>4455 <li>426 Upgrade Required (status code) <a href="#rfc.xref.status.426.1">6.1</a>, <a href="#rfc.iref.7 5"><b>6.5.15</b></a>, <a href="#rfc.xref.status.426.2">8.2.3</a>, <a href="#rfc.xref.status.426.3">B</a></li>4456 <li>4xx Client Error (status code class) <a href="#rfc.iref.7 4"><b>6.5</b></a></li>4443 <li>400 Bad Request (status code) <a href="#rfc.xref.status.400.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.1</b></a>, <a href="#rfc.xref.status.400.2">8.2.3</a>, <a href="#rfc.xref.status.400.3">B</a></li> 4444 <li>402 Payment Required (status code) <a href="#rfc.xref.status.402.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.2</b></a>, <a href="#rfc.xref.status.402.2">8.2.3</a></li> 4445 <li>403 Forbidden (status code) <a href="#rfc.xref.status.403.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.3</b></a>, <a href="#rfc.xref.status.403.2">8.2.3</a></li> 4446 <li>404 Not Found (status code) <a href="#rfc.xref.status.404.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.4</b></a>, <a href="#rfc.xref.status.404.2">8.2.3</a></li> 4447 <li>405 Method Not Allowed (status code) <a href="#rfc.xref.status.405.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.5</b></a>, <a href="#rfc.xref.status.405.2">8.2.3</a></li> 4448 <li>406 Not Acceptable (status code) <a href="#rfc.xref.status.406.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.6</b></a>, <a href="#rfc.xref.status.406.2">8.2.3</a></li> 4449 <li>408 Request Timeout (status code) <a href="#rfc.xref.status.408.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.7</b></a>, <a href="#rfc.xref.status.408.2">8.2.3</a></li> 4450 <li>409 Conflict (status code) <a href="#rfc.xref.status.409.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.8</b></a>, <a href="#rfc.xref.status.409.2">8.2.3</a></li> 4451 <li>410 Gone (status code) <a href="#rfc.xref.status.410.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.9</b></a>, <a href="#rfc.xref.status.410.2">8.2.3</a></li> 4452 <li>411 Length Required (status code) <a href="#rfc.xref.status.411.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.10</b></a>, <a href="#rfc.xref.status.411.2">8.2.3</a></li> 4453 <li>413 Payload Too Large (status code) <a href="#rfc.xref.status.413.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.11</b></a>, <a href="#rfc.xref.status.413.2">8.2.3</a></li> 4454 <li>414 URI Too Long (status code) <a href="#rfc.xref.status.414.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.12</b></a>, <a href="#rfc.xref.status.414.2">8.2.3</a></li> 4455 <li>415 Unsupported Media Type (status code) <a href="#rfc.xref.status.415.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.13</b></a>, <a href="#rfc.xref.status.415.2">8.2.3</a></li> 4456 <li>417 Expectation Failed (status code) <a href="#rfc.xref.status.417.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.14</b></a>, <a href="#rfc.xref.status.417.2">8.2.3</a></li> 4457 <li>426 Upgrade Required (status code) <a href="#rfc.xref.status.426.1">6.1</a>, <a href="#rfc.iref.76"><b>6.5.15</b></a>, <a href="#rfc.xref.status.426.2">8.2.3</a>, <a href="#rfc.xref.status.426.3">B</a></li> 4458 <li>4xx Client Error (status code class) <a href="#rfc.iref.75"><b>6.5</b></a></li> 4457 4459 </ul> 4458 4460 </li> 4459 4461 <li><a id="rfc.index.5" href="#rfc.index.5"><b>5</b></a><ul> 4460 <li>500 Internal Server Error (status code) <a href="#rfc.xref.status.500.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.1</b></a>, <a href="#rfc.xref.status.500.2">8.2.3</a></li>4461 <li>501 Not Implemented (status code) <a href="#rfc.xref.status.501.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.2</b></a>, <a href="#rfc.xref.status.501.2">8.2.3</a></li>4462 <li>502 Bad Gateway (status code) <a href="#rfc.xref.status.502.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.3</b></a>, <a href="#rfc.xref.status.502.2">8.2.3</a></li>4463 <li>503 Service Unavailable (status code) <a href="#rfc.xref.status.503.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.4</b></a>, <a href="#rfc.xref.status.503.2">8.2.3</a></li>4464 <li>504 Gateway Timeout (status code) <a href="#rfc.xref.status.504.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.5</b></a>, <a href="#rfc.xref.status.504.2">8.2.3</a></li>4465 <li>505 HTTP Version Not Supported (status code) <a href="#rfc.xref.status.505.1">6.1</a>, <a href="#rfc.iref.7 6"><b>6.6.6</b></a>, <a href="#rfc.xref.status.505.2">8.2.3</a></li>4466 <li>5xx Server Error (status code class) <a href="#rfc.iref.7 5"><b>6.6</b></a></li>4462 <li>500 Internal Server Error (status code) <a href="#rfc.xref.status.500.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.1</b></a>, <a href="#rfc.xref.status.500.2">8.2.3</a></li> 4463 <li>501 Not Implemented (status code) <a href="#rfc.xref.status.501.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.2</b></a>, <a href="#rfc.xref.status.501.2">8.2.3</a></li> 4464 <li>502 Bad Gateway (status code) <a href="#rfc.xref.status.502.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.3</b></a>, <a href="#rfc.xref.status.502.2">8.2.3</a></li> 4465 <li>503 Service Unavailable (status code) <a href="#rfc.xref.status.503.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.4</b></a>, <a href="#rfc.xref.status.503.2">8.2.3</a></li> 4466 <li>504 Gateway Timeout (status code) <a href="#rfc.xref.status.504.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.5</b></a>, <a href="#rfc.xref.status.504.2">8.2.3</a></li> 4467 <li>505 HTTP Version Not Supported (status code) <a href="#rfc.xref.status.505.1">6.1</a>, <a href="#rfc.iref.77"><b>6.6.6</b></a>, <a href="#rfc.xref.status.505.2">8.2.3</a></li> 4468 <li>5xx Server Error (status code class) <a href="#rfc.iref.76"><b>6.6</b></a></li> 4467 4469 </ul> 4468 4470 </li> … … 4483 4485 <li>cacheable <a href="#rfc.iref.c.8"><b>4.2.3</b></a></li> 4484 4486 <li>compress (content coding) <a href="#rfc.iref.c.4"><b>3.1.2.1</b></a></li> 4487 <li>conditional request <a href="#rfc.iref.c.10"><b>5.2</b></a></li> 4485 4488 <li>CONNECT method <a href="#rfc.xref.CONNECT.1">4.1</a>, <a href="#rfc.iref.c.9"><b>4.3.6</b></a>, <a href="#rfc.xref.CONNECT.2">8.1.3</a>, <a href="#rfc.xref.CONNECT.3">B</a></li> 4486 4489 <li>content coding <a href="#rfc.iref.c.3"><b>3.1.2.1</b></a></li> … … 4489 4492 <li>Content-Language header field <a href="#rfc.xref.header.content-language.1">3.1</a>, <a href="#rfc.iref.c.6"><b>3.1.3.2</b></a>, <a href="#rfc.xref.header.content-language.2">8.3.2</a></li> 4490 4493 <li>Content-Location header field <a href="#rfc.xref.header.content-location.1">3.1</a>, <a href="#rfc.iref.c.7"><b>3.1.4.2</b></a>, <a href="#rfc.xref.header.content-location.2">4.3.3</a>, <a href="#rfc.xref.header.content-location.3">7.1.2</a>, <a href="#rfc.xref.header.content-location.4">8.3.2</a>, <a href="#rfc.xref.header.content-location.5">B</a></li> 4491 <li>Content-Transfer-Encoding header field <a href="#rfc.iref.c.1 0">A.5</a></li>4494 <li>Content-Transfer-Encoding header field <a href="#rfc.iref.c.11">A.5</a></li> 4492 4495 <li>Content-Type header field <a href="#rfc.xref.header.content-type.1">3.1</a>, <a href="#rfc.xref.header.content-type.2">3.1.1.1</a>, <a href="#rfc.iref.c.2"><b>3.1.1.5</b></a>, <a href="#rfc.xref.header.content-type.3">8.3.1</a>, <a href="#rfc.xref.header.content-type.4">8.3.2</a></li> 4493 4496 </ul> … … 4632 4635 </ul> 4633 4636 </li> 4634 <li><em>Part4</em> <a href="#rfc.xref.Part4.1">3</a>, <a href="#rfc.xref.Part4.2">4.3.1</a>, <a href="#rfc.xref.Part4.3">5.2</a>, <a href="#rfc.xref.Part4.4">5.2</a>, <a href="#rfc.xref.Part4.5">5.2</a>, <a href="#rfc.xref.Part4.6">5.2</a>, <a href="#rfc.xref.Part4.7">5.2</a>, <a href="#rfc.xref.Part4.8">6.1</a>, <a href="#rfc.xref.Part4.9">6.1</a>, <a href="#rfc.xref.Part4.10">6.1</a>, <a href="#rfc.xref.Part4.11">7.2</a>, <a href="#rfc.xref.Part4.12">7.2</a>, <a href="#rfc.xref.Part4.13">7.2</a>, <a href="#rfc.xref.Part4.14">8.1.2</a>, <a href="#Part4"><b>11.1</b></a><ul> 4635 <li><em>Section 2.2</em> <a href="#rfc.xref.Part4.13">7.2</a></li> 4636 <li><em>Section 2.3</em> <a href="#rfc.xref.Part4.12">7.2</a></li> 4637 <li><em>Section 3.1</em> <a href="#rfc.xref.Part4.4">5.2</a></li> 4638 <li><em>Section 3.2</em> <a href="#rfc.xref.Part4.5">5.2</a></li> 4639 <li><em>Section 3.3</em> <a href="#rfc.xref.Part4.6">5.2</a></li> 4640 <li><em>Section 3.4</em> <a href="#rfc.xref.Part4.7">5.2</a></li> 4641 <li><em>Section 4</em> <a href="#rfc.xref.Part4.8">6.1</a></li> 4642 <li><em>Section 4.1</em> <a href="#rfc.xref.Part4.9">6.1</a></li> 4643 <li><em>Section 4.2</em> <a href="#rfc.xref.Part4.10">6.1</a></li> 4637 <li><em>Part4</em> <a href="#rfc.xref.Part4.1">3</a>, <a href="#rfc.xref.Part4.2">4.1</a>, <a href="#rfc.xref.Part4.3">5.2</a>, <a href="#rfc.xref.Part4.4">5.2</a>, <a href="#rfc.xref.Part4.5">5.2</a>, <a href="#rfc.xref.Part4.6">5.2</a>, <a href="#rfc.xref.Part4.7">5.2</a>, <a href="#rfc.xref.Part4.8">5.2</a>, <a href="#rfc.xref.Part4.9">6.1</a>, <a href="#rfc.xref.Part4.10">6.1</a>, <a href="#rfc.xref.Part4.11">6.1</a>, <a href="#rfc.xref.Part4.12">7.2</a>, <a href="#rfc.xref.Part4.13">7.2</a>, <a href="#rfc.xref.Part4.14">7.2</a>, <a href="#Part4"><b>11.1</b></a><ul> 4638 <li><em>Section 2.2</em> <a href="#rfc.xref.Part4.14">7.2</a></li> 4639 <li><em>Section 2.3</em> <a href="#rfc.xref.Part4.13">7.2</a></li> 4640 <li><em>Section 3.1</em> <a href="#rfc.xref.Part4.5">5.2</a></li> 4641 <li><em>Section 3.2</em> <a href="#rfc.xref.Part4.6">5.2</a></li> 4642 <li><em>Section 3.3</em> <a href="#rfc.xref.Part4.7">5.2</a></li> 4643 <li><em>Section 3.4</em> <a href="#rfc.xref.Part4.8">5.2</a></li> 4644 <li><em>Section 4</em> <a href="#rfc.xref.Part4.9">6.1</a></li> 4645 <li><em>Section 4.1</em> <a href="#rfc.xref.Part4.10">6.1</a></li> 4646 <li><em>Section 4.2</em> <a href="#rfc.xref.Part4.11">6.1</a></li> 4647 <li><em>Section 5</em> <a href="#rfc.xref.Part4.4">5.2</a></li> 4644 4648 </ul> 4645 4649 </li> 4646 <li><em>Part5</em> <a href="#rfc.xref.Part5.1">3.1.1.4</a>, <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.3">4.3.1</a>, <a href="#rfc.xref.Part5.4">4.3. 1</a>, <a href="#rfc.xref.Part5.5">4.3.4</a>, <a href="#rfc.xref.Part5.6">5.1</a>, <a href="#rfc.xref.Part5.7">5.2</a>, <a href="#rfc.xref.Part5.8">6.1</a>, <a href="#rfc.xref.Part5.9">6.1</a>, <a href="#rfc.xref.Part5.10">6.1</a>, <a href="#rfc.xref.Part5.11">7.4</a>, <a href="#rfc.xref.Part5.12">8.1.2</a>, <a href="#Part5"><b>11.1</b></a>, <a href="#rfc.xref.Part5.13">A.6</a><ul>4647 <li><em>Section 2.3</em> <a href="#rfc.xref.Part5.1 1">7.4</a></li>4648 <li><em>Section 3.1</em> <a href="#rfc.xref.Part5. 4">4.3.1</a>, <a href="#rfc.xref.Part5.6">5.1</a></li>4649 <li><em>Section 3.2</em> <a href="#rfc.xref.Part5. 7">5.2</a></li>4650 <li><em>Section 4</em> <a href="#rfc.xref.Part5. 8">6.1</a></li>4651 <li><em>Section 4.1</em> <a href="#rfc.xref.Part5. 9">6.1</a></li>4652 <li><em>Section 4.2</em> <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5. 5">4.3.4</a></li>4653 <li><em>Section 4.4</em> <a href="#rfc.xref.Part5. 10">6.1</a></li>4654 <li><em>Appendix A</em> <a href="#rfc.xref.Part5.1 3">A.6</a></li>4650 <li><em>Part5</em> <a href="#rfc.xref.Part5.1">3.1.1.4</a>, <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.3">4.3.1</a>, <a href="#rfc.xref.Part5.4">4.3.4</a>, <a href="#rfc.xref.Part5.5">5.1</a>, <a href="#rfc.xref.Part5.6">5.2</a>, <a href="#rfc.xref.Part5.7">6.1</a>, <a href="#rfc.xref.Part5.8">6.1</a>, <a href="#rfc.xref.Part5.9">6.1</a>, <a href="#rfc.xref.Part5.10">7.4</a>, <a href="#rfc.xref.Part5.11">8.1.2</a>, <a href="#Part5"><b>11.1</b></a>, <a href="#rfc.xref.Part5.12">A.6</a><ul> 4651 <li><em>Section 2.3</em> <a href="#rfc.xref.Part5.10">7.4</a></li> 4652 <li><em>Section 3.1</em> <a href="#rfc.xref.Part5.5">5.1</a></li> 4653 <li><em>Section 3.2</em> <a href="#rfc.xref.Part5.6">5.2</a></li> 4654 <li><em>Section 4</em> <a href="#rfc.xref.Part5.7">6.1</a></li> 4655 <li><em>Section 4.1</em> <a href="#rfc.xref.Part5.8">6.1</a></li> 4656 <li><em>Section 4.2</em> <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.4">4.3.4</a></li> 4657 <li><em>Section 4.4</em> <a href="#rfc.xref.Part5.9">6.1</a></li> 4658 <li><em>Appendix A</em> <a href="#rfc.xref.Part5.12">A.6</a></li> 4655 4659 </ul> 4656 4660 </li> … … 4781 4785 </li> 4782 4786 <li><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul> 4783 <li>TRACE method <a href="#rfc.xref.TRACE.1">4.1</a>, <a href="#rfc.iref.t.1"><b>4.3.8</b></a>, <a href="#rfc.xref.TRACE.2">5.1.2</a>, <a href="#rfc.xref.TRACE.3">8.1.3</a>, <a href="#rfc.extref.t. 50">B</a>, <a href="#rfc.xref.TRACE.4">B</a>, <a href="#rfc.extref.t.51">B</a></li>4787 <li>TRACE method <a href="#rfc.xref.TRACE.1">4.1</a>, <a href="#rfc.iref.t.1"><b>4.3.8</b></a>, <a href="#rfc.xref.TRACE.2">5.1.2</a>, <a href="#rfc.xref.TRACE.3">8.1.3</a>, <a href="#rfc.extref.t.49">B</a>, <a href="#rfc.xref.TRACE.4">B</a>, <a href="#rfc.extref.t.50">B</a></li> 4784 4788 </ul> 4785 4789 </li> -
draft-ietf-httpbis/latest/p2-semantics.xml
r2156 r2161 99 99 <!ENTITY message-body "<xref target='Part1' x:rel='#message.body' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 100 100 <!ENTITY multipart-byteranges "<xref target='Part5' x:rel='#internet.media.type.multipart.byteranges' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 101 <!ENTITY evaluate-conditional "<xref target='Part4' x:rel='#precedence' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 101 102 <!ENTITY http-date "<xref target='http.date' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 102 103 <!ENTITY uri "<xref target='Part1' x:rel='#uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 477 478 The "Content-Type" header field indicates the media type of the 478 479 associated representation: either the representation enclosed in 479 the message payload or the selected representation, as determined by the480 the message payload or the <x:ref>selected representation</x:ref>, as determined by the 480 481 message semantics. The indicated media type defines both the data format 481 482 and how that data is intended to be processed by a recipient, within the … … 790 791 effective request URI refers to a resource that is subject to content 791 792 negotiation and the Content-Location field-value is a more specific 792 identifier for the selected representation.</t>793 identifier for the <x:ref>selected representation</x:ref>.</t> 793 794 <t>For a <x:ref>201 (Created)</x:ref> response to a state-changing method, 794 795 a Content-Location field-value that is identical to the … … 1132 1133 with the <x:ref>405 (Method Not Allowed)</x:ref> status code. 1133 1134 </t> 1135 <t> 1136 A client can send conditional request header fields 1137 (<xref target="request.conditionals"/>) to make the requested 1138 action conditional on the current state of the target resource 1139 (<xref target="Part4"/>). 1140 </t> 1134 1141 </section> 1135 1142 … … 1244 1251 <iref primary="true" item="GET method" x:for-anchor=""/> 1245 1252 <t> 1246 The GET method requests transfer of a current representation of1253 The GET method requests transfer of the selected representation for 1247 1254 the <x:ref>target resource</x:ref>. GET is the primary mechanism of 1248 1255 information retrieval and the focus of almost all performance … … 1256 1263 </t> 1257 1264 <t> 1258 The semantics of the GET method change to a "conditional GET" if the 1259 request message includes an <x:ref>If-Modified-Since</x:ref>, 1260 <x:ref>If-Unmodified-Since</x:ref>, <x:ref>If-Match</x:ref>, 1261 <x:ref>If-None-Match</x:ref>, or <x:ref>If-Range</x:ref> header field 1262 (<xref target="Part4"/>). A conditional GET requests that the representation 1263 be transferred only under the circumstances described by the conditional 1264 header field(s). The conditional GET request is intended to reduce 1265 unnecessary network usage by allowing cached representations to be refreshed 1266 without requiring multiple requests or transferring data already held by the 1267 client. 1268 </t> 1269 <t> 1270 The semantics of the GET method change to a "partial GET" if the request 1271 message includes a <x:ref>Range</x:ref> header field (<xref target="Part5"/>). 1272 A partial GET requests that only part of the representation be transferred, 1273 as described in &header-range;. The partial GET request is intended to reduce 1274 unnecessary network usage by allowing partially-retrieved representations to 1275 be completed without transferring data already held by the client. 1265 A client can alter the semantics of GET to be a "range request", requesting 1266 transfer of only some part(s) of the selected representation, by sending a 1267 <x:ref>Range</x:ref> header field in the request (<xref target="Part5"/>). 1276 1268 </t> 1277 1269 <t> … … 1455 1447 of retrieving again from the origin server, and that the new validator(s) 1456 1448 received in the response can be used for future conditional requests in 1457 order to prevent accidental overwrites .1449 order to prevent accidental overwrites (<xref target="request.conditionals"/>). 1458 1450 </t> 1459 1451 <t> … … 1981 1973 1982 1974 <section title="Conditionals" anchor="request.conditionals"> 1983 <t> 1984 Conditionals are request header fields that indicate a precondition to be 1985 tested before applying the method semantics to the 1986 <x:ref>target resource</x:ref>. Each precondition is based on metadata that 1987 is expected to change if the <x:ref>selected representation</x:ref> is 1988 changed. The HTTP/1.1 conditional request mechanisms are defined in 1989 <xref target="Part4"/>. 1975 <iref item="conditional request" primary="true"/> 1976 <t> 1977 The HTTP conditional request header fields <xref target="Part4"/> allow a 1978 client to place a precondition on the state of the target resource, so that 1979 the action corresponding to the method semantics will not be applied if the 1980 precondition evaluates to false. Each precondition defined by this 1981 specification consists of a comparison between a set of validators obtained 1982 from prior representations of the target resource to the current state of 1983 validators for the <x:ref>selected representation</x:ref> 1984 (<xref target="response.validator"/>). Hence, these preconditions evaluate 1985 whether the state of the target resource has changed since a given state 1986 known by the client. The effect of such an evaluation depends on the method 1987 semantics and choice of conditional, as defined in &evaluate-conditional;. 1990 1988 </t> 1991 1989 <texttable align="left"> … … 2862 2860 content to send in the response payload body. Metadata in the response 2863 2861 header fields refer to the <x:ref>target resource</x:ref> and its 2864 selected representationafter the requested action was applied.2862 <x:ref>selected representation</x:ref> after the requested action was applied. 2865 2863 </t> 2866 2864 <t> … … 4164 4162 under what conditions, a cache can store a response and use it to satisfy a 4165 4163 subsequent request. 4166 If the new method can be made conditional (<xref target="Part4"/>), the 4167 definition ought to describe how to respond when the condition is false. 4164 The new method ought to describe whether it can be made conditional 4165 (<xref target="request.conditionals"/>) and, if so, how a server responds 4166 when the condition is false. 4168 4167 Likewise, if the new method might have some use for partial response 4169 4168 semantics (<xref target="Part5"/>), it ought to document this too. … … 5008 5007 <x:source basename="p4-conditional" href="p4-conditional.xml"> 5009 5008 <x:defines>304 (Not Modified)</x:defines> 5009 <x:defines>412 (Precondition Failed)</x:defines> 5010 5010 <x:defines>ETag</x:defines> 5011 5011 <x:defines>If-Match</x:defines> -
draft-ietf-httpbis/latest/p4-conditional.html
r2159 r2161 449 449 } 450 450 @bottom-center { 451 content: "Expires July 2 8, 2013";451 content: "Expires July 29, 2013"; 452 452 } 453 453 @bottom-right { … … 491 491 <meta name="dct.creator" content="Reschke, J. F."> 492 492 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p4-conditional-latest"> 493 <meta name="dct.issued" scheme="ISO8601" content="2013-01-2 4">493 <meta name="dct.issued" scheme="ISO8601" content="2013-01-25"> 494 494 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 495 495 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP/1.1 conditional requests, including metadata header fields for indicating state changes, request header fields for making preconditions on such state, and rules for constructing the responses to a conditional request when one or more preconditions evaluate to false."> … … 517 517 </tr> 518 518 <tr> 519 <td class="left">Expires: July 2 8, 2013</td>520 <td class="right">January 2 4, 2013</td>519 <td class="left">Expires: July 29, 2013</td> 520 <td class="right">January 25, 2013</td> 521 521 </tr> 522 522 </tbody> … … 545 545 in progress”. 546 546 </p> 547 <p>This Internet-Draft will expire on July 2 8, 2013.</p>547 <p>This Internet-Draft will expire on July 29, 2013.</p> 548 548 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 549 549 <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 624 624 <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> <a id="introduction" href="#introduction">Introduction</a></h1> 625 625 <p id="rfc.section.1.p.1">Conditional requests are HTTP requests <a href="#Part2" id="rfc.xref.Part2.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> that include one or more header fields indicating a precondition to be tested before applying the method semantics to the 626 target resource. Each precondition is based on metadata that is expected to change if the selected representation of the target 627 resource is changed. This document defines the HTTP/1.1 conditional request mechanisms in terms of the architecture, syntax 628 notation, and conformance criteria defined in <a href="#Part1" id="rfc.xref.Part1.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. 626 target resource. This document defines the HTTP/1.1 conditional request mechanisms in terms of the architecture, syntax notation, 627 and conformance criteria defined in <a href="#Part1" id="rfc.xref.Part1.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. 629 628 </p> 630 629 <p id="rfc.section.1.p.2">Conditional GET requests are the most efficient mechanism for HTTP cache updates <a href="#Part6" id="rfc.xref.Part6.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>. Conditionals can also be applied to state-changing methods, such as PUT and DELETE, to prevent the "lost update" problem: 631 630 one client accidentally overwriting the work of another client that has been acting in parallel. 632 631 </p> 633 <p id="rfc.section.1.p.3"> Conditional request preconditions are based on the state of the target resource as a whole (its current value set) or the632 <p id="rfc.section.1.p.3"><span id="rfc.iref.s.1"></span> Conditional request preconditions are based on the state of the target resource as a whole (its current value set) or the 634 633 state as observed in a previously obtained representation (one value in that set). A resource might have multiple current 635 634 representations, each with its own observable state. The conditional request mechanisms assume that the mapping of requests 636 to corresponding representations will be consistent over time if the server intends to take advantage of conditionals. Regardless, 637 if the mapping is inconsistent and the server is unable to select the appropriate representation, then no harm will result 638 when the precondition evaluates to false. 639 </p> 640 <p id="rfc.section.1.p.4"><span id="rfc.iref.s.1"></span> We use the term "<dfn>selected representation</dfn>" to refer to the current representation of the target resource that would have been selected in a successful response if 641 the same request had used the method GET and had excluded all of the conditional request header fields. The conditional request 642 preconditions are evaluated by comparing the values provided in the request header fields to the current metadata for the 643 selected representation. 635 to a "selected representation" (<a href="p2-semantics.html#representations" title="Representations">Section 3</a> of <a href="#Part2" id="rfc.xref.Part2.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) will be consistent over time if the server intends to take advantage of conditionals. Regardless, if the mapping is inconsistent 636 and the server is unable to select the appropriate representation, then no harm will result when the precondition evaluates 637 to false. 638 </p> 639 <p id="rfc.section.1.p.4">The conditional request preconditions defined by this specification are evaluated by comparing the validators provided in 640 the conditional request header fields to the current validators for the selected representation in the order defined by <a href="#precedence" title="Evaluation and Precedence">Section 5</a>. 644 641 </p> 645 642 <h2 id="rfc.section.1.1"><a href="#rfc.section.1.1">1.1</a> <a id="conformance" href="#conformance">Conformance and Error Handling</a></h2> … … 868 865 </div> 869 866 <h3 id="rfc.section.2.3.3"><a href="#rfc.section.2.3.3">2.3.3</a> <a id="example.entity.tag.vs.conneg" href="#example.entity.tag.vs.conneg">Example: Entity-tags Varying on Content-Negotiated Resources</a></h3> 870 <p id="rfc.section.2.3.3.p.1">Consider a resource that is subject to content negotiation (<a href="p2-semantics.html#content.negotiation" title="Content Negotiation">Section 3.4</a> of <a href="#Part2" id="rfc.xref.Part2. 2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), and where the representations sent in response to a GET request vary based on the <a href="p2-semantics.html#header.accept-encoding" class="smpl">Accept-Encoding</a> request header field (<a href="p2-semantics.html#header.accept-encoding" title="Accept-Encoding">Section 5.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>):867 <p id="rfc.section.2.3.3.p.1">Consider a resource that is subject to content negotiation (<a href="p2-semantics.html#content.negotiation" title="Content Negotiation">Section 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 where the representations sent in response to a GET request vary based on the <a href="p2-semantics.html#header.accept-encoding" class="smpl">Accept-Encoding</a> request header field (<a href="p2-semantics.html#header.accept-encoding" title="Accept-Encoding">Section 5.3.4</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>): 871 868 </p> 872 869 <div id="rfc.figure.u.5"></div> … … 1070 1067 <p id="rfc.section.5.p.1">For each conditional request, a server <em class="bcp14">MUST</em> evaluate the request preconditions after it has successfully performed its normal request checks (i.e., just before it would 1071 1068 perform the action associated with the request method). Preconditions are ignored if the server determines that an error or 1072 redirect response applies before they are evaluated. 1073 </p> 1074 <p id="rfc.section.5.p.2">When more than one conditional request header field is present in a request, the order in which the fields are evaluated becomes 1069 redirect response applies before they are evaluated. Otherwise, the evaluation depends on both the method semantics and the 1070 choice of conditional. 1071 </p> 1072 <p id="rfc.section.5.p.2">A conditional request header field that is designed specifically for cache validation, which includes <a href="#header.if-none-match" class="smpl">If-None-Match</a> and <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> when used in a GET or HEAD request, allows cached representations to be refreshed without repeatedly transferring data already 1073 held by the client. Evaluating to false is thus an indication that the client can continue to use its local copy of the selected 1074 representation, as indicated by the server generating a <a href="#status.304" class="smpl">304 (Not Modified)</a> response that includes only those header fields useful for refreshing the cached representation. 1075 </p> 1076 <p id="rfc.section.5.p.3">All other conditionals are intended to signal failure when the precondition evaluates to false. For example, an <a href="#header.if-match" class="smpl">If-Match</a> conditional sent with a state-changing method (e.g., POST, PUT, DELETE) is intended to prevent the request from taking effect 1077 on the target resource if the resource state does not match the expected state. In other words, evaluating the condition to 1078 false means that the resource has been changed by some other client, perhaps by another user attempting to edit the same resource, 1079 and thus preventing the request from being applied saves the client from overwriting some other client's work. This result 1080 is indicated by the server generating a <a href="#status.412" class="smpl">412 (Precondition Failed)</a> response. 1081 </p> 1082 <p id="rfc.section.5.p.4">The conditional request header fields defined by this specification are ignored for request methods that never involve the 1083 selection or modification of a <a href="p2-semantics.html#representations" class="smpl">selected representation</a> (e.g., CONNECT, OPTIONS, and TRACE). Other conditional request header fields, defined by extensions to HTTP, might place conditions 1084 on the state of the target resource in general, such as how the If header field in WebDAV has been defined to make a request 1085 conditional on the presence or absence of a lock <a href="#RFC4918" id="rfc.xref.RFC4918.2"><cite title="HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)">[RFC4918]</cite></a>. 1086 </p> 1087 <p id="rfc.section.5.p.5">When more than one conditional request header field is present in a request, the order in which the fields are evaluated becomes 1075 1088 important. In practice, the fields defined in this document are consistently implemented in a single, logical order, due to 1076 1089 the fact that entity tags are presumed to be more accurate than date validators. For example, the only reason to send both <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> and <a href="#header.if-none-match" class="smpl">If-None-Match</a> in the same GET request is to support intermediary caches that might not have implemented <a href="#header.if-none-match" class="smpl">If-None-Match</a>, so it makes sense to ignore the <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> when entity tags are understood and available for the selected representation. 1077 1090 </p> 1078 <p id="rfc.section.5.p. 3">The general rule of conditional precedence is that exact match conditions are evaluated before cache-validating conditions1091 <p id="rfc.section.5.p.6">The general rule of conditional precedence is that exact match conditions are evaluated before cache-validating conditions 1079 1092 and, within that order, last-modified conditions are only evaluated if the corresponding entity tag condition is not present 1080 1093 (or not applicable because the selected representation does not have an entity tag). 1081 1094 </p> 1082 <p id="rfc.section.5.p. 4">Specifically, the fields defined by this specification are evaluated as follows: </p>1095 <p id="rfc.section.5.p.7">Specifically, the fields defined by this specification are evaluated as follows: </p> 1083 1096 <ol> 1084 1097 <li>When <a href="#header.if-match" class="smpl">If-Match</a> is present, evaluate it: … … 1118 1131 </li> 1119 1132 </ol> 1120 <p id="rfc.section.5.p. 5">Any extension to HTTP/1.1 that defines additional conditional request header fields ought to define its own expectations regarding1133 <p id="rfc.section.5.p.8">Any extension to HTTP/1.1 that defines additional conditional request header fields ought to define its own expectations regarding 1121 1134 the order for evaluating such fields in relation to those defined in this document and other conditionals that might be found 1122 1135 in practice. … … 1215 1228 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="security.considerations" href="#security.considerations">Security Considerations</a></h1> 1216 1229 <p id="rfc.section.7.p.1">This section is meant to inform developers, information providers, and users of known security concerns specific to the HTTP/1.1 1217 conditional request mechanisms. More general security considerations are addressed in HTTP messaging <a href="#Part1" id="rfc.xref.Part1.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a> and semantics <a href="#Part2" id="rfc.xref.Part2. 4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>.1230 conditional request mechanisms. More general security considerations are addressed in HTTP messaging <a href="#Part1" id="rfc.xref.Part1.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a> and semantics <a href="#Part2" id="rfc.xref.Part2.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>. 1218 1231 </p> 1219 1232 <p id="rfc.section.7.p.2">The validators defined by this specification are not intended to ensure the validity of a representation, guard against malicious … … 1318 1331 <a href="#imported.abnf" class="smpl">obs-text</a> = <obs-text, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>> 1319 1332 </pre><p id="rfc.section.B.p.4">The rules below are defined in other parts:</p> 1320 <div id="rfc.figure.u.17"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2. 5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a>>1333 <div id="rfc.figure.u.17"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a>> 1321 1334 </pre><h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 1322 1335 <div id="rfc.figure.u.18"></div> <pre class="inline"><a href="#header.etag" class="smpl">ETag</a> = entity-tag … … 1452 1465 </ul> 1453 1466 </li> 1454 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.3.3</a>, <a href="#rfc.xref.Part2.3">2.3.3</a>, <a href="#rfc.xref.Part2.4">7</a>, <a href="#Part2"><b>9.1</b></a>, <a href="#rfc.xref.Part2.5">B</a><ul> 1455 <li><em>Section 3.4</em> <a href="#rfc.xref.Part2.2">2.3.3</a></li> 1456 <li><em>Section 5.3.4</em> <a href="#rfc.xref.Part2.3">2.3.3</a></li> 1457 <li><em>Section 7.1.1.1</em> <a href="#rfc.xref.Part2.5">B</a></li> 1467 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">1</a>, <a href="#rfc.xref.Part2.3">2.3.3</a>, <a href="#rfc.xref.Part2.4">2.3.3</a>, <a href="#rfc.xref.Part2.5">7</a>, <a href="#Part2"><b>9.1</b></a>, <a href="#rfc.xref.Part2.6">B</a><ul> 1468 <li><em>Section 3</em> <a href="#rfc.xref.Part2.2">1</a></li> 1469 <li><em>Section 3.4</em> <a href="#rfc.xref.Part2.3">2.3.3</a></li> 1470 <li><em>Section 5.3.4</em> <a href="#rfc.xref.Part2.4">2.3.3</a></li> 1471 <li><em>Section 7.1.1.1</em> <a href="#rfc.xref.Part2.6">B</a></li> 1458 1472 </ul> 1459 1473 </li> … … 1474 1488 </ul> 1475 1489 </li> 1476 <li><em>RFC4918</em> <a href="#rfc.xref.RFC4918.1">2</a>, <a href="# RFC4918"><b>9.2</b></a></li>1490 <li><em>RFC4918</em> <a href="#rfc.xref.RFC4918.1">2</a>, <a href="#rfc.xref.RFC4918.2">5</a>, <a href="#RFC4918"><b>9.2</b></a></li> 1477 1491 <li><em>RFC5234</em> <a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#RFC5234"><b>9.1</b></a>, <a href="#rfc.xref.RFC5234.2">B</a><ul> 1478 1492 <li><em>Appendix B.1</em> <a href="#rfc.xref.RFC5234.2">B</a></li> -
draft-ietf-httpbis/latest/p4-conditional.xml
r2159 r2161 24 24 <!ENTITY field-components "<xref target='Part1' x:rel='#field.components' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 25 25 <!ENTITY header-date "<xref target='Part2' x:rel='#header.date' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 26 <!ENTITY representation "<xref target='Part2' x:rel='#representations' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 26 27 <!ENTITY messaging "<xref target='Part1' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 27 28 <!ENTITY semantics "<xref target='Part2' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 124 125 one or more header fields indicating a precondition to be tested before 125 126 applying the method semantics to the target resource. 126 Each precondition is based on metadata that is expected to change if the127 selected representation of the target resource is changed.128 127 This document defines the HTTP/1.1 conditional request mechanisms in terms 129 128 of the architecture, syntax notation, and conformance criteria defined in … … 137 136 the work of another client that has been acting in parallel. 138 137 </t> 139 <t> 138 <t><iref primary="true" item="selected representation"/> 140 139 Conditional request preconditions are based on the state of the target 141 140 resource as a whole (its current value set) or the state as observed … … 143 142 A resource might have multiple current representations, each with its 144 143 own observable state. The conditional request mechanisms assume that 145 the mapping of requests to corresponding representations will be 146 consistent over time if the server intends to take advantage of 147 conditionals. Regardless, if the mapping is inconsistent and 148 the server is unable to select the appropriate representation, then 149 no harm will result when the precondition evaluates to false. 150 </t> 151 <t><iref primary="true" item="selected representation"/> 152 We use the term "<x:dfn>selected representation</x:dfn>" to refer to 153 the current representation of the target resource that would have been 154 selected in a successful response if the same request had used the method 155 GET and had excluded all of the conditional request header fields. 156 The conditional request preconditions are evaluated by comparing the 157 values provided in the request header fields to the current metadata 158 for the selected representation. 144 the mapping of requests to a "selected representation" (&representation;) 145 will be consistent over time if the server intends to take advantage of 146 conditionals. Regardless, if the mapping is inconsistent and the server is 147 unable to select the appropriate representation, then no harm will result 148 when the precondition evaluates to false. 149 </t> 150 <t> 151 The conditional request preconditions defined by this specification are 152 evaluated by comparing the validators provided in the conditional request 153 header fields to the current validators for the selected representation 154 in the order defined by <xref target="precedence"/>. 159 155 </t> 160 156 … … 954 950 (i.e., just before it would perform the action associated with the request 955 951 method). Preconditions are ignored if the server determines that an error 956 or redirect response applies before they are evaluated. 952 or redirect response applies before they are evaluated. Otherwise, the 953 evaluation depends on both the method semantics and the choice of 954 conditional. 955 </t> 956 <t> 957 A conditional request header field that is designed specifically for cache 958 validation, which includes <x:ref>If-None-Match</x:ref> and 959 <x:ref>If-Modified-Since</x:ref> when used in a GET or HEAD request, 960 allows cached representations to be refreshed without repeatedly 961 transferring data already held by the client. Evaluating to false is thus 962 an indication that the client can continue to use its local copy of the 963 selected representation, as indicated by the server generating a 964 <x:ref>304 (Not Modified)</x:ref> response that includes only those header 965 fields useful for refreshing the cached representation. 966 </t> 967 <t> 968 All other conditionals are intended to signal failure when the 969 precondition evaluates to false. For example, an <x:ref>If-Match</x:ref> 970 conditional sent with a state-changing method (e.g., POST, PUT, DELETE) is 971 intended to prevent the request from taking effect on the target resource 972 if the resource state does not match the expected state. In other words, 973 evaluating the condition to false means that the resource has been changed 974 by some other client, perhaps by another user attempting to edit the same 975 resource, and thus preventing the request from being applied saves the 976 client from overwriting some other client's work. This result is indicated 977 by the server generating a <x:ref>412 (Precondition Failed)</x:ref> 978 response. 979 </t> 980 <t> 981 The conditional request header fields defined by this specification are 982 ignored for request methods that never involve the selection or 983 modification of a <x:ref>selected representation</x:ref> (e.g., CONNECT, 984 OPTIONS, and TRACE). Other conditional request header fields, defined by 985 extensions to HTTP, might place conditions on the state of the target 986 resource in general, such as how the If header field in WebDAV has been 987 defined to make a request conditional on the presence or absence of a lock 988 <xref target="RFC4918"/>. 957 989 </t> 958 990 <t> … … 1198 1230 <x:defines>Location</x:defines> 1199 1231 <x:defines>Vary</x:defines> 1232 <x:defines>selected representation</x:defines> 1200 1233 </x:source> 1201 1234 </reference>
Note: See TracChangeset
for help on using the changeset viewer.