* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Changeset 245


Ignore:
Timestamp:
2008-05-15 04:38:23 (7 years ago)
Author:
julian.reschke@gmx.de
Message:

Resolve #116: allow weak entity tags in all requests except range requests (closes #116).

Location:
draft-ietf-httpbis/latest
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p4-conditional.html

    r244 r245  
    444444         <tr> 
    445445            <td class="header left"></td> 
    446             <td class="header right">May 1, 2008</td> 
     446            <td class="header right">May 15, 2008</td> 
    447447         </tr> 
    448448      </table> 
     
    634634         is usable for a sub-range retrieval, since otherwise the client might end up with an internally inconsistent entity. 
    635635      </p> 
    636       <p id="rfc.section.5.p.6">Clients <em class="bcp14">MAY</em> issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients <em class="bcp14">MUST NOT</em> use weak validators in other forms of request. 
     636      <p id="rfc.section.5.p.6">Clients <em class="bcp14">MUST NOT</em> use weak validators in range requests (<a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>). 
    637637      </p> 
    638638      <p id="rfc.section.5.p.7">The only function that HTTP/1.1 defines on validators is comparison. There are two validator comparison functions, depending 
     
    678678         it <em class="bcp14">MAY</em> do this only if the Last-Modified time is strong in the sense described here. 
    679679      </p> 
    680       <p id="rfc.section.5.p.14">A cache or origin server receiving a conditional request, other than a full-body GET request, <em class="bcp14">MUST</em> use the strong comparison function to evaluate the condition. 
     680      <p id="rfc.section.5.p.14">A cache or origin server receiving a conditional range request (<a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>) <em class="bcp14">MUST</em> use the strong comparison function to evaluate the condition. 
    681681      </p> 
    682682      <p id="rfc.section.5.p.15">These rules allow HTTP/1.1 caches and clients to safely perform sub-range retrievals on values that have been obtained from 
     
    750750      <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a>&nbsp;<a id="header.etag" href="#header.etag">ETag</a></h2> 
    751751      <p id="rfc.section.7.1.p.1">The ETag response-header field provides the current value of the entity tag for the requested variant. The headers used with 
    752          entity tags are described in Sections <a href="#header.if-match" id="rfc.xref.header.if-match.2" title="If-Match">7.2</a> and <a href="#header.if-none-match" id="rfc.xref.header.if-none-match.2" title="If-None-Match">7.4</a> of this document, and in <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>. The entity tag <em class="bcp14">MAY</em> be used for comparison with other entities from the same resource (see <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section&nbsp;5</a>). 
     752         entity tags are described in Sections <a href="#header.if-match" id="rfc.xref.header.if-match.2" title="If-Match">7.2</a> and <a href="#header.if-none-match" id="rfc.xref.header.if-none-match.2" title="If-None-Match">7.4</a> of this document, and in <a href="p5-range.html#header.if-range" title="If-Range">Section 6.3</a> of <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>. The entity tag <em class="bcp14">MAY</em> be used for comparison with other entities from the same resource (see <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section&nbsp;5</a>). 
    753753      </p> 
    754754      <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.4"></span>  <a href="#header.etag" class="smpl">ETag</a> = "ETag" ":" <a href="#entity.tags" class="smpl">entity-tag</a> 
     
    825825      <p id="rfc.section.7.3.p.6">The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction overhead. </p> 
    826826      <dl class="empty"> 
    827          <dd> <b>Note:</b> The Range request-header field modifies the meaning of If-Modified-Since; see <a href="p5-range.html#header.range" title="Range">Section 6.4</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> for full details. 
     827         <dd> <b>Note:</b> The Range request-header field modifies the meaning of If-Modified-Since; see <a href="p5-range.html#header.range" title="Range">Section 6.4</a> of <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> for full details. 
    828828         </dd> 
    829829         <dd> <b>Note:</b> If-Modified-Since times are interpreted by the server, whose clock might not be synchronized with the client. 
     
    863863         that matched. For all other request methods, the server <em class="bcp14">MUST</em> respond with a status of 412 (Precondition Failed). 
    864864      </p> 
    865       <p id="rfc.section.7.4.p.5">See <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section&nbsp;5</a> for rules on how to determine if two entities tags match. The weak comparison function can only be used with GET or HEAD requests. 
     865      <p id="rfc.section.7.4.p.5">See <a href="#weak.and.strong.validators" title="Weak and Strong Validators">Section&nbsp;5</a> for rules on how to determine if two entity tags match. 
    866866      </p> 
    867867      <p id="rfc.section.7.4.p.6">If none of the entity tags match, then the server <em class="bcp14">MAY</em> perform the requested method as if the If-None-Match header field did not exist, but <em class="bcp14">MUST</em> also ignore any If-Modified-Since header field(s) in the request. That is, if no entity tags match, then the server <em class="bcp14">MUST NOT</em> return a 304 (Not Modified) response. 
     
    990990      <h1 id="rfc.section.A"><a href="#rfc.section.A">A.</a>&nbsp;<a id="compatibility" href="#compatibility">Compatibility with Previous Versions</a></h1> 
    991991      <h2 id="rfc.section.A.1"><a href="#rfc.section.A.1">A.1</a>&nbsp;<a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> 
     992      <p id="rfc.section.A.1.p.1">Allow weak entity tags in all requests except range requests (Sections <a href="#weak.and.strong.validators" title="Weak and Strong Validators">5</a> and <a href="#header.if-none-match" id="rfc.xref.header.if-none-match.3" title="If-None-Match">7.4</a>). 
     993      </p> 
    992994      <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;Change Log (to be removed by RFC Editor before publication) 
    993995      </h1> 
     
    10161018      <h2 id="rfc.section.B.4"><a href="#rfc.section.B.4">B.4</a>&nbsp;Since draft-ietf-httpbis-p4-conditional-02 
    10171019      </h2> 
     1020      <p id="rfc.section.B.4.p.1">Closed issues: </p> 
     1021      <ul> 
     1022         <li> &lt;<a href="http://www3.tools.ietf.org/wg/httpbis/trac/ticket/116">http://www3.tools.ietf.org/wg/httpbis/trac/ticket/116</a>&gt;: "Weak ETags on non-GET requests" 
     1023         </li> 
     1024      </ul> 
    10181025      <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1> 
    10191026      <p>This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the 
     
    10791086                        <li class="indline1">If-Match&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-match.2">7.1</a>, <a class="iref" href="#rfc.iref.h.2"><b>7.2</b></a></li> 
    10801087                        <li class="indline1">If-Modified-Since&nbsp;&nbsp;<a class="iref" href="#rfc.iref.h.3"><b>7.3</b></a></li> 
    1081                         <li class="indline1">If-None-Match&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-none-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-none-match.2">7.1</a>, <a class="iref" href="#rfc.iref.h.4"><b>7.4</b></a></li> 
     1088                        <li class="indline1">If-None-Match&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-none-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-none-match.2">7.1</a>, <a class="iref" href="#rfc.iref.h.4"><b>7.4</b></a>, <a class="iref" href="#rfc.xref.header.if-none-match.3">A.1</a></li> 
    10821089                        <li class="indline1">If-Unmodified-Since&nbsp;&nbsp;<a class="iref" href="#rfc.iref.h.5"><b>7.5</b></a></li> 
    10831090                        <li class="indline1">Last-Modified&nbsp;&nbsp;<a class="iref" href="#rfc.iref.h.6"><b>7.6</b></a></li> 
     
    10891096                  <li class="indline1">If-Match header&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-match.2">7.1</a>, <a class="iref" href="#rfc.iref.i.1"><b>7.2</b></a></li> 
    10901097                  <li class="indline1">If-Modified-Since header&nbsp;&nbsp;<a class="iref" href="#rfc.iref.i.2"><b>7.3</b></a></li> 
    1091                   <li class="indline1">If-None-Match header&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-none-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-none-match.2">7.1</a>, <a class="iref" href="#rfc.iref.i.3"><b>7.4</b></a></li> 
     1098                  <li class="indline1">If-None-Match header&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.if-none-match.1">3</a>, <a class="iref" href="#rfc.xref.header.if-none-match.2">7.1</a>, <a class="iref" href="#rfc.iref.i.3"><b>7.4</b></a>, <a class="iref" href="#rfc.xref.header.if-none-match.3">A.1</a></li> 
    10921099                  <li class="indline1">If-Unmodified-Since header&nbsp;&nbsp;<a class="iref" href="#rfc.iref.i.4"><b>7.5</b></a></li> 
    10931100               </ul> 
     
    11051112                     </ul> 
    11061113                  </li> 
    1107                   <li class="indline1"><em>Part5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.1">3</a>, <a class="iref" href="#rfc.xref.Part5.2">7.1</a>, <a class="iref" href="#rfc.xref.Part5.3">7.3</a>, <a class="iref" href="#Part5"><b>11.1</b></a><ul class="ind"> 
    1108                         <li class="indline1"><em>Section 6.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.1">3</a>, <a class="iref" href="#rfc.xref.Part5.2">7.1</a></li> 
    1109                         <li class="indline1"><em>Section 6.4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.3">7.3</a></li> 
     1114                  <li class="indline1"><em>Part5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.1">3</a>, <a class="iref" href="#rfc.xref.Part5.2">5</a>, <a class="iref" href="#rfc.xref.Part5.3">5</a>, <a class="iref" href="#rfc.xref.Part5.4">7.1</a>, <a class="iref" href="#rfc.xref.Part5.5">7.3</a>, <a class="iref" href="#Part5"><b>11.1</b></a><ul class="ind"> 
     1115                        <li class="indline1"><em>Section 6.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.1">3</a>, <a class="iref" href="#rfc.xref.Part5.4">7.1</a></li> 
     1116                        <li class="indline1"><em>Section 6.4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part5.5">7.3</a></li> 
    11101117                     </ul> 
    11111118                  </li> 
  • draft-ietf-httpbis/latest/p4-conditional.xml

    r244 r245  
    425425</t> 
    426426<t> 
    427    Clients &MAY; issue simple (non-subrange) GET requests with either weak 
    428    validators or strong validators. Clients &MUST-NOT; use weak validators 
    429    in other forms of request. 
     427   Clients &MUST-NOT; use weak validators in range requests (<xref target="Part5"/>).  
    430428</t> 
    431429<t> 
     
    501499</t> 
    502500<t> 
    503    A cache or origin server receiving a conditional request, other than 
    504    a full-body GET request, &MUST; use the strong comparison function to 
     501   A cache or origin server receiving a conditional range request 
     502   (<xref target="Part5"/>) &MUST; use the strong comparison function to 
    505503   evaluate the condition. 
    506504</t> 
     
    852850</t> 
    853851<t> 
    854    See <xref target="weak.and.strong.validators"/> for rules on how to determine if two entities tags 
    855    match. The weak comparison function can only be used with GET or HEAD 
    856    requests. 
     852   See <xref target="weak.and.strong.validators"/> for rules on how to 
     853   determine if two entity tags match. 
    857854</t> 
    858855<t> 
     
    12281225 
    12291226<section title="Changes from RFC 2616" anchor="changes.from.rfc.2616"> 
     1227<t> 
     1228  Allow weak entity tags in all requests except range requests (Sections 
     1229  <xref target="weak.and.strong.validators" format="counter"/> and 
     1230  <xref target="header.if-none-match" format="counter"/>). 
     1231</t> 
    12301232</section> 
    12311233 
     
    12731275<section title="Since draft-ietf-httpbis-p4-conditional-02"> 
    12741276<t> 
     1277  Closed issues: 
     1278  <list style="symbols">  
     1279    <t> 
     1280      <eref target="http://www3.tools.ietf.org/wg/httpbis/trac/ticket/116"/>: 
     1281      "Weak ETags on non-GET requests" 
     1282    </t> 
     1283  </list> 
    12751284</t> 
    12761285</section> 
Note: See TracChangeset for help on using the changeset viewer.