Changeset 2147 for draft-ietf-httpbis/latest/p2-semantics.html
- Timestamp:
- 21/01/13 07:43:33 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p2-semantics.html
r2132 r2147 449 449 } 450 450 @bottom-center { 451 content: "Expires July 2 3, 2013";451 content: "Expires July 24, 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- 19">496 <meta name="dct.issued" scheme="ISO8601" content="2013-01-20"> 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 19, 2013</td>524 <td class="right">January 20, 2013</td> 525 525 </tr> 526 526 <tr> 527 <td class="left">Expires: July 2 3, 2013</td>527 <td class="left">Expires: July 24, 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 3, 2013.</p>555 <p>This Internet-Draft will expire on July 24, 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> … … 1011 1011 not be restated in Content-Encoding even if it happens to be the same algorithm as one of the content codings. Such a content 1012 1012 coding would only be listed if, for some bizarre reason, it is applied a second time to form the representation. Likewise, 1013 an origin server might choose to publish the same payload data as multiple representations that differ only in whether the1014 codingis defined as part of <a href="#header.content-type" class="smpl">Content-Type</a> or Content-Encoding, since some user agents will behave differently in their handling of each response (e.g., open a "Save1013 an origin server might choose to publish the same data as multiple representations that differ only in whether the coding 1014 is defined as part of <a href="#header.content-type" class="smpl">Content-Type</a> or Content-Encoding, since some user agents will behave differently in their handling of each response (e.g., open a "Save 1015 1015 as ..." dialog instead of automatic decompression and rendering of content). 1016 1016 </p> … … 1059 1059 or the recipient to determine, an identifier for a resource corresponding to that representation. 1060 1060 </p> 1061 <p id="rfc.section.3.1.4.1.p.2"> The following rules are used to determine such a URI for the payload ofa request message: </p>1061 <p id="rfc.section.3.1.4.1.p.2">For a request message: </p> 1062 1062 <ul> 1063 1063 <li>If the request has a <a href="#header.content-location" class="smpl">Content-Location</a> header field, then the sender asserts that the payload is a representation of the resource identified by the Content-Location … … 1067 1067 <li>Otherwise, the payload is unidentified.</li> 1068 1068 </ul> 1069 <p id="rfc.section.3.1.4.1.p.3">The following rules, to be applied in order until a match is found, are used to determine such a URI for the payload of a 1070 response message: 1071 </p> 1069 <p id="rfc.section.3.1.4.1.p.3">For a response message, the following rules are applied in order until a match is found: </p> 1072 1070 <ol> 1073 <li>If the request is GET or HEAD and the response status code is <a href="#status.200" class="smpl">200 (OK)</a>, <a href="#status.204" class="smpl">204 (No Content)</a>, <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a>, or <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a>, the payload 's identifier isthe effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>).1074 </li> 1075 <li>If the request is GET or HEAD and the response status code is <a href="#status.203" class="smpl">203 (Non-Authoritative Information)</a>, the payload is intended to be a representation of the <a href="#resources" class="smpl">target resource</a> that has been modified by an intermediary.1076 </li> 1077 <li>If the response has a <a href="#header.content-location" class="smpl">Content-Location</a> header field and its field-value is a reference to the same URI as the effective request URI, the payload 's identifier is1078 the effective request URI.1071 <li>If the request is GET or HEAD and the response status code is <a href="#status.200" class="smpl">200 (OK)</a>, <a href="#status.204" class="smpl">204 (No Content)</a>, <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a>, or <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a>, the payload is a representation of the resource identified by the effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). 1072 </li> 1073 <li>If the request is GET or HEAD and the response status code is <a href="#status.203" class="smpl">203 (Non-Authoritative Information)</a>, the payload is a potentially modified or enhanced representation of the <a href="#resources" class="smpl">target resource</a> as provided by an intermediary. 1074 </li> 1075 <li>If the response has a <a href="#header.content-location" class="smpl">Content-Location</a> header field and its field-value is a reference to the same URI as the effective request URI, the payload is a representation 1076 of the resource identified by the effective request URI. 1079 1077 </li> 1080 1078 <li>If the response has a <a href="#header.content-location" class="smpl">Content-Location</a> header field and its field-value is a reference to a URI different from the effective request URI, then the sender asserts … … 1086 1084 <div id="rfc.iref.c.7"></div> 1087 1085 <h4 id="rfc.section.3.1.4.2"><a href="#rfc.section.3.1.4.2">3.1.4.2</a> <a id="header.content-location" href="#header.content-location">Content-Location</a></h4> 1088 <p id="rfc.section.3.1.4.2.p.1">The "Content-Location" header field references a URI that can be used as a specific identifier for the representation in this 1089 message payload. In other words, if one were to perform a GET on this URI at the time of this message's generation, then a <a href="#status.200" class="smpl">200 (OK)</a> response would contain the same representation that is enclosed as payload in this message. 1086 <p id="rfc.section.3.1.4.2.p.1">The "Content-Location" header field references a URI that can be used as an identifier for a specific resource corresponding 1087 to the representation in this message's payload. In other words, if one were to perform a GET request on this URI at the time 1088 of this message's generation, then a <a href="#status.200" class="smpl">200 (OK)</a> response would contain the same representation that is enclosed as payload in this message. 1090 1089 </p> 1091 1090 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.14"></span> <a href="#header.content-location" class="smpl">Content-Location</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a> … … 1101 1100 </p> 1102 1101 <p id="rfc.section.3.1.4.2.p.5">If Content-Location is included in a <a href="#status.2xx" class="smpl">2xx (Successful)</a> response message and its field-value refers to a URI that differs from the effective request URI, then the origin server claims 1103 that the field-value is an identifier for the representation enclosed as the payload. Such a claim can only be trusted if1104 b oth identifiers share the same resource owner, which cannot be programmatically determined via HTTP.1102 that the URI is an identifier for a different resource corresponding to the enclosed representation. Such a claim can only 1103 be trusted if both identifiers share the same resource owner, which cannot be programmatically determined via HTTP. 1105 1104 </p> 1106 1105 <ul> … … 1169 1168 <tr> 1170 1169 <td class="left">Content-Range</td> 1171 <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>1170 <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 4.4</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 1172 1171 </tr> 1173 1172 <tr> … … 1390 1389 to be refreshed without requiring multiple requests or transferring data already held by the client. 1391 1390 </p> 1392 <p id="rfc.section.4.3.1.p.4">The semantics of the GET method change to a "partial GET" if the request message includes a <a href="p5-range.html# range.retrieval.requests" class="smpl">Range</a> header field (<a href="#Part5" id="rfc.xref.Part5.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 5.4</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 representations1391 <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 1393 1392 to be completed without transferring data already held by the client. 1394 1393 </p> … … 1496 1495 the related resources. 1497 1496 </p> 1498 <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 5.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 full1497 <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.4</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 full 1499 1498 representation). Partial content updates are possible by targeting a separately identified resource with state that overlaps 1500 1499 a portion of the larger resource, or by using a different method that has been specifically defined for partial updates (for … … 1648 1647 <tr> 1649 1648 <td class="left">Range</td> 1650 <td class="left"><a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></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> 1651 1650 </tr> 1652 1651 <tr> … … 1775 1774 <tr> 1776 1775 <td class="left">If-Range</td> 1777 <td class="left"><a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a> of <a href="#Part5" id="rfc.xref.Part5.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></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 1777 </tr> 1779 1778 </tbody> … … 2167 2166 </ul> 2168 2167 <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> 2169 <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# status.code.definitions" title="Status Code Definitions">Section 3</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 the2168 <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 the 2170 2169 protocol. 2171 2170 </p> … … 2223 2222 <td class="left">206</td> 2224 2223 <td class="left">Partial Content</td> 2225 <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 3.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>2224 <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 4.2</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 2225 </tr> 2227 2226 <tr> … … 2343 2342 <td class="left">416</td> 2344 2343 <td class="left">Range Not Satisfiable</td> 2345 <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Range Not Satisfiable">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td>2344 <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Range Not Satisfiable">Section 4.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> 2346 2345 </tr> 2347 2346 <tr> … … 3118 3117 <tr> 3119 3118 <td class="left">Accept-Ranges</td> 3120 <td class="left"><a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a> of <a href="#Part5" id="rfc.xref.Part5.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></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.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></td> 3121 3120 </tr> 3122 3121 <tr> … … 3545 3544 </p> 3546 3545 <p id="rfc.section.8.3.1.p.4">Because commas (",") are used as a generic delimiter between field-values, they need to be treated with care if they are allowed 3547 in the field-value 's payload. Typically, components that might contain a comma are protected with double-quotes using the3548 quoted-stringABNF production (<a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a> of <a href="#Part1" id="rfc.xref.Part1.33"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>).3546 in the field-value. Typically, components that might contain a comma are protected with double-quotes using the quoted-string 3547 ABNF production (<a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a> of <a href="#Part1" id="rfc.xref.Part1.33"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). 3549 3548 </p> 3550 3549 <p id="rfc.section.8.3.1.p.5">For example, a textual date and a URI (either of which might contain a comma) could be safely carried in field-values like … … 4646 4645 </li> 4647 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> 4648 <li><em>Section 3</em> <a href="#rfc.xref.Part5.8">6.1</a></li>4649 <li><em>Section 3.1</em> <a href="#rfc.xref.Part5. 9">6.1</a></li>4650 <li><em>Section 3.2</em> <a href="#rfc.xref.Part5. 10">6.1</a></li>4651 <li><em>Section 5.1</em> <a href="#rfc.xref.Part5.11">7.4</a></li>4652 <li><em>Section 5.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 5.3</em> <a href="#rfc.xref.Part5.7">5.2</a></li>4654 <li><em>Section 5.4</em> <a href="#rfc.xref.Part5.4">4.3.1</a>, <a href="#rfc.xref.Part5.6">5.1</a></li>4647 <li><em>Section 2.3</em> <a href="#rfc.xref.Part5.11">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.2</em> <a href="#rfc.xref.Part5.9">6.1</a></li> 4652 <li><em>Section 4.3</em> <a href="#rfc.xref.Part5.10">6.1</a></li> 4653 <li><em>Section 4.4</em> <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.5">4.3.4</a></li> 4655 4654 <li><em>Appendix A</em> <a href="#rfc.xref.Part5.13">A.6</a></li> 4656 4655 </ul>
Note: See TracChangeset
for help on using the changeset viewer.