Changeset 1470 for draft-ietf-httpbis/latest/p4-conditional.html
- Timestamp:
- 02/11/11 12:33:39 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p4-conditional.html
r1469 r1470 359 359 } 360 360 @bottom-center { 361 content: "Expires May 4, 2012";361 content: "Expires May 5, 2012"; 362 362 } 363 363 @bottom-right { … … 404 404 <meta name="dct.creator" content="Reschke, J. F."> 405 405 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p4-conditional-latest"> 406 <meta name="dct.issued" scheme="ISO8601" content="2011-11-0 1">406 <meta name="dct.issued" scheme="ISO8601" content="2011-11-02"> 407 407 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 408 408 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 4 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 4 defines request header fields for indicating conditional requests and the rules for constructing responses to those requests."> … … 430 430 </tr> 431 431 <tr> 432 <td class="left">Expires: May 4, 2012</td>432 <td class="left">Expires: May 5, 2012</td> 433 433 <td class="right">J. Mogul</td> 434 434 </tr> … … 487 487 <tr> 488 488 <td class="left"></td> 489 <td class="right">November 1, 2011</td>489 <td class="right">November 2, 2011</td> 490 490 </tr> 491 491 </tbody> … … 517 517 in progress”. 518 518 </p> 519 <p>This Internet-Draft will expire on May 4, 2012.</p>519 <p>This Internet-Draft will expire on May 5, 2012.</p> 520 520 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 521 521 <p>Copyright © 2011 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 654 654 </p> 655 655 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 1.2.2</a>> 656 <a href="#notation" class="smpl"> quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#field.rules" title="Common Field ABNF Rules">Section 3.2.3</a>>656 <a href="#notation" class="smpl">obs-text</a> = <obs-text, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#field.rules" title="Common Field ABNF Rules">Section 3.2.3</a>> 657 657 <a href="#notation" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 8</a>> 658 658 </pre><div id="rfc.iref.m.1"></div> … … 777 777 same time, or both. An entity-tag consists of an opaque quoted string, possibly prefixed by a weakness indicator. 778 778 </p> 779 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span> <a href="#header.etag" class="smpl">ETag</a> = <a href="#header.etag" class="smpl">entity-tag</a>779 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#header.etag" class="smpl">ETag</a> = <a href="#header.etag" class="smpl">entity-tag</a> 780 780 781 781 <a href="#header.etag" class="smpl">entity-tag</a> = [ <a href="#header.etag" class="smpl">weak</a> ] <a href="#header.etag" class="smpl">opaque-tag</a> 782 782 <a href="#header.etag" class="smpl">weak</a> = %x57.2F ; "W/", case-sensitive 783 <a href="#header.etag" class="smpl">opaque-tag</a> = <a href="#notation" class="smpl">quoted-string</a> 784 </pre><p id="rfc.section.2.3.p.3">An entity-tag can be more reliable for validation than a modification date in situations where it is inconvenient to store 783 <a href="#header.etag" class="smpl">opaque-tag</a> = <a href="#notation" class="smpl">DQUOTE</a> *<a href="#header.etag" class="smpl">etagc</a> <a href="#notation" class="smpl">DQUOTE</a> 784 <a href="#header.etag" class="smpl">etagc</a> = %x21 / %x23-7E / <a href="#notation" class="smpl">obs-text</a> 785 ; <a href="#">VCHAR</a> except double quotes, plus obs-text 786 </pre><div class="note" id="rfc.section.2.3.p.3"> 787 <p> <b>Note:</b> Previously, opaque-tag was defined to be a quoted-string (<a href="#RFC2616" id="rfc.xref.RFC2616.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-3.11">Section 3.11</a>), thus some recipients might perform backslash unescaping. Servers therefore ought to avoid backslash characters in entity 788 tags. 789 </p> 790 </div> 791 <p id="rfc.section.2.3.p.4">An entity-tag can be more reliable for validation than a modification date in situations where it is inconvenient to store 785 792 modification dates, where the one-second resolution of HTTP date values is not sufficient, or where modification dates are 786 793 not consistently maintained. … … 790 797 ETag: W/"xyzzy" 791 798 ETag: "" 792 </pre><p id="rfc.section.2.3.p. 5">An entity-tag can be either a weak or strong validator, with strong being the default. If an origin server provides an entity-tag799 </pre><p id="rfc.section.2.3.p.6">An entity-tag can be either a weak or strong validator, with strong being the default. If an origin server provides an entity-tag 793 800 for a representation and the generation of that entity-tag does not satisfy the requirements for a strong validator (<a href="#weak.and.strong.validators" title="Weak versus Strong">Section 2.1</a>), then that entity-tag <em class="bcp14">MUST</em> be marked as weak by prefixing its opaque value with "W/" (case-sensitive). 794 801 </p> … … 957 964 An If-Match field-value of "*" places the precondition on the existence of any current representation for the target resource. 958 965 </p> 959 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g. 6"></span> <a href="#header.if-match" class="smpl">If-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a>966 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#header.if-match" class="smpl">If-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a> 960 967 </pre><p id="rfc.section.3.1.p.3">If any of the entity-tags listed in the If-Match field value match (as per <a href="#entity.tag.comparison" title="Comparison">Section 2.3.2</a>) the entity-tag of the selected representation for the target resource, or if "*" is given and any current representation 961 968 exists for the target resource, then the server <em class="bcp14">MAY</em> perform the request method as if the If-Match header field was not present. … … 987 994 for the target resource. 988 995 </p> 989 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g. 7"></span> <a href="#header.if-none-match" class="smpl">If-None-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a>996 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.8"></span> <a href="#header.if-none-match" class="smpl">If-None-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a> 990 997 </pre><p id="rfc.section.3.2.p.4">If any of the entity-tags listed in the If-None-Match field-value match (as per <a href="#entity.tag.comparison" title="Comparison">Section 2.3.2</a>) the entity-tag of the selected representation, or if "*" is given and any current representation exists for that resource, 991 998 then the server <em class="bcp14">MUST NOT</em> perform the requested method. Instead, if the request method was GET or HEAD, the server <em class="bcp14">SHOULD</em> respond with a 304 (Not Modified) status code, including the cache-related header fields (particularly ETag) of the selected … … 1012 1019 the time specified in this field, then do not perform the request method; instead, respond as detailed below. 1013 1020 </p> 1014 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g. 8"></span> <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a>1021 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span> <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a> 1015 1022 </pre><p id="rfc.section.3.3.p.3">An example of the field is:</p> 1016 1023 <div id="rfc.figure.u.14"></div><pre class="text"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT … … 1060 1067 the time specified in this field, the server <em class="bcp14">SHOULD</em> perform the request method as if the If-Unmodified-Since header field were not present. 1061 1068 </p> 1062 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g. 9"></span> <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a>1069 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.10"></span> <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a> 1063 1070 </pre><p id="rfc.section.3.4.p.3">An example of the field is:</p> 1064 1071 <div id="rfc.figure.u.16"></div><pre class="text"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT … … 1076 1083 </p> 1077 1084 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="status.code.definitions" href="#status.code.definitions">Status Code Definitions</a></h1> 1078 <div id="rfc.iref.2 6"></div>1085 <div id="rfc.iref.27"></div> 1079 1086 <div id="rfc.iref.s.2"></div> 1080 1087 <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="status.304" href="#status.304">304 Not Modified</a></h2> … … 1099 1106 <p id="rfc.section.4.1.p.5">If a cache uses a received 304 response to update a cache entry, the cache <em class="bcp14">MUST</em> update the entry to reflect any new field values given in the response. 1100 1107 </p> 1101 <div id="rfc.iref.2 7"></div>1108 <div id="rfc.iref.28"></div> 1102 1109 <div id="rfc.iref.s.3"></div> 1103 1110 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="status.412" href="#status.412">412 Precondition Failed</a></h2> … … 1284 1291 <p id="rfc.section.A.p.1">Allow weak entity-tags in all requests except range requests (Sections <a href="#weak.and.strong.validators" title="Weak versus Strong">2.1</a> and <a href="#header.if-none-match" id="rfc.xref.header.if-none-match.2" title="If-None-Match">3.2</a>). 1285 1292 </p> 1286 <p id="rfc.section.A.p.2">Change ABNF productions for header fields to only define the field value. (<a href="#header.field.definitions" title="Precondition Header Fields">Section 3</a>) 1293 <p id="rfc.section.A.p.2">Change ETag header field ABNF not to use quoted-string, thus avoiding escaping issues. (<a href="#header.etag" id="rfc.xref.header.etag.2" title="ETag">Section 2.3</a>) 1294 </p> 1295 <p id="rfc.section.A.p.3">Change ABNF productions for header fields to only define the field value. (<a href="#header.field.definitions" title="Precondition Header Fields">Section 3</a>) 1287 1296 </p> 1288 1297 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> … … 1303 1312 1304 1313 <a href="#header.etag" class="smpl">entity-tag</a> = [ weak ] opaque-tag 1305 1306 <a href="#header.etag" class="smpl">opaque-tag</a> = quoted-string 1307 1308 <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in [Part1], Section 3.2.3> 1314 <a href="#header.etag" class="smpl">etagc</a> = "!" / %x23-7E ; '#'-'~' 1315 / obs-text 1316 1317 <a href="#notation" class="smpl">obs-text</a> = <obs-text, defined in [Part1], Section 3.2.3> 1318 <a href="#header.etag" class="smpl">opaque-tag</a> = DQUOTE *etagc DQUOTE 1309 1319 1310 1320 <a href="#header.etag" class="smpl">weak</a> = %x57.2F ; W/ … … 1319 1329 <h2 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a> Since RFC 2616 1320 1330 </h2> 1321 <p id="rfc.section.C.1.p.1">Extracted relevant partitions from <a href="#RFC2616" id="rfc.xref.RFC2616. 1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>.1331 <p id="rfc.section.C.1.p.1">Extracted relevant partitions from <a href="#RFC2616" id="rfc.xref.RFC2616.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>. 1322 1332 </p> 1323 1333 <h2 id="rfc.section.C.2"><a href="#rfc.section.C.2">C.2</a> Since draft-ietf-httpbis-p4-conditional-00 … … 1437 1447 </ul> 1438 1448 <h2 id="rfc.section.C.19"><a href="#rfc.section.C.19">C.19</a> <a id="changes.since.17" href="#changes.since.17">Since draft-ietf-httpbis-p4-conditional-17</a></h2> 1439 <p id="rfc.section.C.19.p.1">No changes yet.</p> 1449 <p id="rfc.section.C.19.p.1">Closed issues: </p> 1450 <ul> 1451 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/306">http://tools.ietf.org/wg/httpbis/trac/ticket/306</a>>: "does etag value really use quoted-string" 1452 </li> 1453 </ul> 1440 1454 <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1> 1441 1455 <p class="noprint"><a href="#rfc.index.3">3</a> <a href="#rfc.index.4">4</a> <a href="#rfc.index.E">E</a> <a href="#rfc.index.G">G</a> <a href="#rfc.index.H">H</a> <a href="#rfc.index.I">I</a> <a href="#rfc.index.L">L</a> <a href="#rfc.index.M">M</a> <a href="#rfc.index.P">P</a> <a href="#rfc.index.R">R</a> <a href="#rfc.index.S">S</a> <a href="#rfc.index.V">V</a> … … 1444 1458 <ul class="ind"> 1445 1459 <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul> 1446 <li>304 Not Modified (status code) <a href="#rfc.iref.2 6"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">5.1</a></li>1460 <li>304 Not Modified (status code) <a href="#rfc.iref.27"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">5.1</a></li> 1447 1461 </ul> 1448 1462 </li> 1449 1463 <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul> 1450 <li>412 Precondition Failed (status code) <a href="#rfc.iref.2 7"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li>1464 <li>412 Precondition Failed (status code) <a href="#rfc.iref.28"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li> 1451 1465 </ul> 1452 1466 </li> 1453 1467 <li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul> 1454 <li>ETag header field <a href="#rfc.iref.e.1"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.1">5.2</a> </li>1468 <li>ETag header field <a href="#rfc.iref.e.1"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.1">5.2</a>, <a href="#rfc.xref.header.etag.2">A</a></li> 1455 1469 </ul> 1456 1470 </li> … … 1460 1474 <li><tt>entity-tag</tt> <a href="#rfc.iref.g.3"><b>2.3</b></a></li> 1461 1475 <li><tt>ETag</tt> <a href="#rfc.iref.g.2"><b>2.3</b></a></li> 1462 <li><tt>If-Match</tt> <a href="#rfc.iref.g.6"><b>3.1</b></a></li> 1463 <li><tt>If-Modified-Since</tt> <a href="#rfc.iref.g.8"><b>3.3</b></a></li> 1464 <li><tt>If-None-Match</tt> <a href="#rfc.iref.g.7"><b>3.2</b></a></li> 1465 <li><tt>If-Unmodified-Since</tt> <a href="#rfc.iref.g.9"><b>3.4</b></a></li> 1476 <li><tt>etagc</tt> <a href="#rfc.iref.g.6"><b>2.3</b></a></li> 1477 <li><tt>If-Match</tt> <a href="#rfc.iref.g.7"><b>3.1</b></a></li> 1478 <li><tt>If-Modified-Since</tt> <a href="#rfc.iref.g.9"><b>3.3</b></a></li> 1479 <li><tt>If-None-Match</tt> <a href="#rfc.iref.g.8"><b>3.2</b></a></li> 1480 <li><tt>If-Unmodified-Since</tt> <a href="#rfc.iref.g.10"><b>3.4</b></a></li> 1466 1481 <li><tt>Last-Modified</tt> <a href="#rfc.iref.g.1"><b>2.2</b></a></li> 1467 1482 <li><tt>opaque-tag</tt> <a href="#rfc.iref.g.5"><b>2.3</b></a></li> … … 1474 1489 <li>Header Fields 1475 1490 <ul> 1476 <li>ETag <a href="#rfc.iref.h.2"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.1">5.2</a> </li>1491 <li>ETag <a href="#rfc.iref.h.2"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.1">5.2</a>, <a href="#rfc.xref.header.etag.2">A</a></li> 1477 1492 <li>If-Match <a href="#rfc.iref.h.3"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1">5.2</a></li> 1478 1493 <li>If-Modified-Since <a href="#rfc.iref.h.5"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1">5.2</a></li> … … 1529 1544 <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul> 1530 1545 <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>8.1</b></a></li> 1531 <li><em>RFC2616</em> <a href="#RFC2616"><b>8.2</b></a>, <a href="#rfc.xref.RFC2616.1">C.1</a></li> 1546 <li><em>RFC2616</em> <a href="#rfc.xref.RFC2616.1">2.3</a>, <a href="#RFC2616"><b>8.2</b></a>, <a href="#rfc.xref.RFC2616.2">C.1</a><ul> 1547 <li><em>Section 3.11</em> <a href="#rfc.xref.RFC2616.1">2.3</a></li> 1548 </ul> 1549 </li> 1532 1550 <li><em>RFC3864</em> <a href="#rfc.xref.RFC3864.1">5.2</a>, <a href="#RFC3864"><b>8.2</b></a></li> 1533 1551 <li><em>RFC4918</em> <a href="#rfc.xref.RFC4918.1">2</a>, <a href="#RFC4918"><b>8.2</b></a></li>
Note: See TracChangeset
for help on using the changeset viewer.