Ignore:
Timestamp:
Jul 21, 2009, 4:28:41 AM (10 years ago)
Author:
julian.reschke@…
Message:

Resolve #140: rephrase note so that it becomes clear that the described change already happened in RFC2616, also add 303/307 to the "changes from RFC2068" section (closes #140)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p2-semantics.html

    r609 r614  
    471471         <tr>
    472472            <td class="header left"></td>
    473             <td class="header right">July 13, 2009</td>
     473            <td class="header right">July 21, 2009</td>
    474474         </tr>
    475475      </table>
     
    12151215      </p>
    12161216      <div class="note">
    1217          <p> <b>Note:</b>  <a href="#RFC1945" id="rfc.xref.RFC1945.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.0">[RFC1945]</cite></a> and <a href="#RFC2068" id="rfc.xref.RFC2068.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a> specify that the client is not allowed to change the method on the redirected request. However, most existing user agent implementations
    1218             treat 302 as if it were a 303 response, performing a GET on the Location field-value regardless of the original request method.
    1219             The status codes 303 and 307 have been added for servers that wish to make unambiguously clear which kind of reaction is expected
    1220             of the client.
     1217         <p> <b>Note:</b> HTTP/1.0 (<a href="#RFC1945" id="rfc.xref.RFC1945.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.0">[RFC1945]</cite></a>, <a href="http://tools.ietf.org/html/rfc1945#section-9.3">Section 9.3</a>) and the first version of HTTP/1.1 (<a href="#RFC2068" id="rfc.xref.RFC2068.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, <a href="http://tools.ietf.org/html/rfc2068#section-10.3.3">Section 10.3.3</a>) specify that the client is not allowed to change the method on the redirected request. However, most existing user agent
     1218            implementations treat 302 as if it were a 303 response, performing a GET on the Location field-value regardless of the original
     1219            request method. Therefore, a previous version of this specification (<a href="#RFC2616" id="rfc.xref.RFC2616.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-10.3.3">Section 10.3.3</a>) has added the status codes 303 (<a href="#status.303" id="rfc.xref.status.303.2" title="303 See Other">Section&nbsp;8.3.4</a>) and 307 (<a href="#status.307" id="rfc.xref.status.307.2" title="307 Temporary Redirect">Section&nbsp;8.3.8</a>) for servers that wish to make unambiguously clear which kind of reaction is expected of the client.
    12211220         </p>
    12221221      </div>
     
    18001799                  <td>303</td>
    18011800                  <td>See Other</td>
    1802                   <td> <a href="#status.303" id="rfc.xref.status.303.2" title="303 See Other">Section&nbsp;8.3.4</a>
     1801                  <td> <a href="#status.303" id="rfc.xref.status.303.3" title="303 See Other">Section&nbsp;8.3.4</a>
    18031802                  </td>
    18041803               </tr>
     
    18241823                  <td>307</td>
    18251824                  <td>Temporary Redirect</td>
    1826                   <td> <a href="#status.307" id="rfc.xref.status.307.2" title="307 Temporary Redirect">Section&nbsp;8.3.8</a>
     1825                  <td> <a href="#status.307" id="rfc.xref.status.307.3" title="307 Temporary Redirect">Section&nbsp;8.3.8</a>
    18271826                  </td>
    18281827               </tr>
     
    22112210      <p id="rfc.section.A.1.p.2">201 (Created) had a race that required an Etag be sent when a resource is first created. (<a href="#status.201" id="rfc.xref.status.201.3" title="201 Created">Section&nbsp;8.2.2</a>).
    22122211      </p>
    2213       <p id="rfc.section.A.1.p.3">Rewrite of message transmission requirements to make it much harder for implementors to get it wrong, as the consequences
     2212      <p id="rfc.section.A.1.p.3">303 (See Also) and 307 (Temporary Redirect) added to address user agent failure to implement status code 302 properly. (Section <a href="#status.303" id="rfc.xref.status.303.4" title="303 See Other">8.3.4</a> and <a href="#status.307" id="rfc.xref.status.307.4" title="307 Temporary Redirect">8.3.8</a>)
     2213      </p>
     2214      <p id="rfc.section.A.1.p.4">Rewrite of message transmission requirements to make it much harder for implementors to get it wrong, as the consequences
    22142215         of errors here can have significant impact on the Internet, and to deal with the following problems:
    22152216      </p>
     
    22282229         <li>Allow servers to defend against denial-of-service attacks and broken clients.</li>
    22292230      </ol>
    2230       <p id="rfc.section.A.1.p.4">This change adds the Expect header and 417 status code.</p>
    2231       <p id="rfc.section.A.1.p.5">Clean up confusion between 403 and 404 responses. (Section <a href="#status.403" id="rfc.xref.status.403.3" title="403 Forbidden">8.4.4</a>, <a href="#status.404" id="rfc.xref.status.404.3" title="404 Not Found">8.4.5</a>, and <a href="#status.410" id="rfc.xref.status.410.3" title="410 Gone">8.4.11</a>)
    2232       </p>
    2233       <p id="rfc.section.A.1.p.6">The PATCH<span id="rfc.iref.p.3"></span><span id="rfc.iref.m.10"></span>, LINK<span id="rfc.iref.l.2"></span><span id="rfc.iref.m.11"></span>, UNLINK<span id="rfc.iref.u.2"></span><span id="rfc.iref.m.12"></span> methods were defined but not commonly implemented in previous versions of this specification. See <a href="http://tools.ietf.org/html/rfc2068#section-19.6.1">Section 19.6.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>.
     2231      <p id="rfc.section.A.1.p.5">This change adds the Expect header and 417 status code.</p>
     2232      <p id="rfc.section.A.1.p.6">Clean up confusion between 403 and 404 responses. (Section <a href="#status.403" id="rfc.xref.status.403.3" title="403 Forbidden">8.4.4</a>, <a href="#status.404" id="rfc.xref.status.404.3" title="404 Not Found">8.4.5</a>, and <a href="#status.410" id="rfc.xref.status.410.3" title="410 Gone">8.4.11</a>)
     2233      </p>
     2234      <p id="rfc.section.A.1.p.7">The PATCH<span id="rfc.iref.p.3"></span><span id="rfc.iref.m.10"></span>, LINK<span id="rfc.iref.l.2"></span><span id="rfc.iref.m.11"></span>, UNLINK<span id="rfc.iref.u.2"></span><span id="rfc.iref.m.12"></span> methods were defined but not commonly implemented in previous versions of this specification. See <a href="http://tools.ietf.org/html/rfc2068#section-19.6.1">Section 19.6.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>.
    22342235      </p>
    22352236      <h2 id="rfc.section.A.2"><a href="#rfc.section.A.2">A.2</a>&nbsp;<a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2>
     
    22392240      </p>
    22402241      <p id="rfc.section.A.2.p.3">Failed to consider that there are many other request methods that are safe to automatically redirect, and further that the
    2241          user agent is able to make that determination based on the request method semantics. (Sections <a href="#status.301" id="rfc.xref.status.301.3" title="301 Moved Permanently">8.3.2</a>, <a href="#status.302" id="rfc.xref.status.302.3" title="302 Found">8.3.3</a> and <a href="#status.307" id="rfc.xref.status.307.3" title="307 Temporary Redirect">8.3.8</a>)
     2242         user agent is able to make that determination based on the request method semantics. (Sections <a href="#status.301" id="rfc.xref.status.301.3" title="301 Moved Permanently">8.3.2</a>, <a href="#status.302" id="rfc.xref.status.302.3" title="302 Found">8.3.3</a> and <a href="#status.307" id="rfc.xref.status.307.5" title="307 Temporary Redirect">8.3.8</a>)
    22422243      </p>
    22432244      <p id="rfc.section.A.2.p.4">Deprecate 305 Use Proxy status code, because user agents did not implement it. It used to indicate that the requested resource
     
    23752376      <h2 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a>&nbsp;Since RFC2616
    23762377      </h2>
    2377       <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>.
     2378      <p id="rfc.section.C.1.p.1">Extracted relevant partitions from <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>.
    23782379      </p>
    23792380      <h2 id="rfc.section.C.2"><a href="#rfc.section.C.2">C.2</a>&nbsp;Since draft-ietf-httpbis-p2-semantics-00
     
    24992500      </ul>
    25002501      <h2 id="rfc.section.C.9"><a href="#rfc.section.C.9">C.9</a>&nbsp;<a id="changes.since.07" href="#changes.since.07">Since draft-ietf-httpbis-p2-semantics-07</a></h2>
    2501       <p id="rfc.section.C.9.p.1">None.</p>
     2502      <p id="rfc.section.C.9.p.1">Closed issues: </p>
     2503      <ul>
     2504         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/140">http://tools.ietf.org/wg/httpbis/trac/ticket/140</a>&gt;: "update note citing RFC 1945 and 2068"
     2505         </li>
     2506      </ul>
    25022507      <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1>
    25032508      <p class="noprint"><a href="#rfc.index.1">1</a> <a href="#rfc.index.2">2</a> <a href="#rfc.index.3">3</a> <a href="#rfc.index.4">4</a> <a href="#rfc.index.5">5</a> <a href="#rfc.index.A">A</a> <a href="#rfc.index.C">C</a> <a href="#rfc.index.D">D</a> <a href="#rfc.index.E">E</a> <a href="#rfc.index.F">F</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.O">O</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.T">T</a> <a href="#rfc.index.U">U</a>
     
    25242529                  <li class="indline1">301 Moved Permanently (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.301.1">4</a>, <a class="iref" href="#rfc.iref.35"><b>8.3.2</b></a>, <a class="iref" href="#rfc.xref.status.301.2">10.2</a>, <a class="iref" href="#rfc.xref.status.301.3">A.2</a></li>
    25252530                  <li class="indline1">302 Found (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.302.1">4</a>, <a class="iref" href="#rfc.iref.36"><b>8.3.3</b></a>, <a class="iref" href="#rfc.xref.status.302.2">10.2</a>, <a class="iref" href="#rfc.xref.status.302.3">A.2</a></li>
    2526                   <li class="indline1">303 See Other (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.303.1">4</a>, <a class="iref" href="#rfc.iref.37"><b>8.3.4</b></a>, <a class="iref" href="#rfc.xref.status.303.2">10.2</a></li>
     2531                  <li class="indline1">303 See Other (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.303.1">4</a>, <a class="iref" href="#rfc.xref.status.303.2">8.3.3</a>, <a class="iref" href="#rfc.iref.37"><b>8.3.4</b></a>, <a class="iref" href="#rfc.xref.status.303.3">10.2</a>, <a class="iref" href="#rfc.xref.status.303.4">A.1</a></li>
    25272532                  <li class="indline1">304 Not Modified (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.304.1">4</a>, <a class="iref" href="#rfc.iref.38"><b>8.3.5</b></a>, <a class="iref" href="#rfc.xref.status.304.2">10.2</a></li>
    25282533                  <li class="indline1">305 Use Proxy (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.305.1">4</a>, <a class="iref" href="#rfc.iref.39"><b>8.3.6</b></a>, <a class="iref" href="#rfc.xref.status.305.2">10.2</a>, <a class="iref" href="#rfc.xref.status.305.3">A.2</a></li>
    25292534                  <li class="indline1">306 (Unused) (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.iref.40"><b>8.3.7</b></a>, <a class="iref" href="#rfc.xref.status.306.1">10.2</a></li>
    2530                   <li class="indline1">307 Temporary Redirect (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.307.1">4</a>, <a class="iref" href="#rfc.iref.41"><b>8.3.8</b></a>, <a class="iref" href="#rfc.xref.status.307.2">10.2</a>, <a class="iref" href="#rfc.xref.status.307.3">A.2</a></li>
     2535                  <li class="indline1">307 Temporary Redirect (status code)&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.307.1">4</a>, <a class="iref" href="#rfc.xref.status.307.2">8.3.3</a>, <a class="iref" href="#rfc.iref.41"><b>8.3.8</b></a>, <a class="iref" href="#rfc.xref.status.307.3">10.2</a>, <a class="iref" href="#rfc.xref.status.307.4">A.1</a>, <a class="iref" href="#rfc.xref.status.307.5">A.2</a></li>
    25312536               </ul>
    25322537            </li>
     
    27262731                  <li class="indline1">Referer header&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.referer.1">3</a>, <a class="iref" href="#rfc.iref.r.1"><b>9.6</b></a>, <a class="iref" href="#rfc.xref.header.referer.2">10.3</a>, <a class="iref" href="#rfc.xref.header.referer.3">A.2</a></li>
    27272732                  <li class="indline1">Retry-After header&nbsp;&nbsp;<a class="iref" href="#rfc.xref.header.retry-after.1">5</a>, <a class="iref" href="#rfc.iref.r.2"><b>9.7</b></a>, <a class="iref" href="#rfc.xref.header.retry-after.2">10.3</a></li>
    2728                   <li class="indline1"><em>RFC1945</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC1945.1">8.3.3</a>, <a class="iref" href="#RFC1945"><b>13.2</b></a></li>
     2733                  <li class="indline1"><em>RFC1945</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC1945.1">8.3.3</a>, <a class="iref" href="#RFC1945"><b>13.2</b></a><ul class="ind">
     2734                        <li class="indline1"><em>Section 9.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC1945.1">8.3.3</a></li>
     2735                     </ul>
     2736                  </li>
    27292737                  <li class="indline1"><em>RFC2068</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2068.1">8.3.3</a>, <a class="iref" href="#RFC2068"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.2">A.1</a><ul class="ind">
     2738                        <li class="indline1"><em>Section 10.3.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2068.1">8.3.3</a></li>
    27302739                        <li class="indline1"><em>Section 19.6.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2068.2">A.1</a></li>
    27312740                     </ul>
    27322741                  </li>
    27332742                  <li class="indline1"><em>RFC2119</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b>13.1</b></a></li>
    2734                   <li class="indline1"><em>RFC2616</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#RFC2616"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.2">C.1</a></li>
     2743                  <li class="indline1"><em>RFC2616</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2">8.3.3</a>, <a class="iref" href="#RFC2616"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3">C.1</a><ul class="ind">
     2744                        <li class="indline1"><em>Section 10.3.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2616.2">8.3.3</a></li>
     2745                     </ul>
     2746                  </li>
    27352747                  <li class="indline1"><em>RFC2817</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2817.1">7.9</a>, <a class="iref" href="#rfc.xref.RFC2817.2">10.2</a>, <a class="iref" href="#RFC2817"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2817.3">A.2</a><ul class="ind">
    27362748                        <li class="indline1"><em>Section 7.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.RFC2817.2">10.2</a>, <a class="iref" href="#rfc.xref.RFC2817.3">A.2</a></li>
     
    27692781                        <li class="indline1">301 Moved Permanently&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.301.1">4</a>, <a class="iref" href="#rfc.iref.s.12"><b>8.3.2</b></a>, <a class="iref" href="#rfc.xref.status.301.2">10.2</a>, <a class="iref" href="#rfc.xref.status.301.3">A.2</a></li>
    27702782                        <li class="indline1">302 Found&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.302.1">4</a>, <a class="iref" href="#rfc.iref.s.13"><b>8.3.3</b></a>, <a class="iref" href="#rfc.xref.status.302.2">10.2</a>, <a class="iref" href="#rfc.xref.status.302.3">A.2</a></li>
    2771                         <li class="indline1">303 See Other&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.303.1">4</a>, <a class="iref" href="#rfc.iref.s.14"><b>8.3.4</b></a>, <a class="iref" href="#rfc.xref.status.303.2">10.2</a></li>
     2783                        <li class="indline1">303 See Other&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.303.1">4</a>, <a class="iref" href="#rfc.xref.status.303.2">8.3.3</a>, <a class="iref" href="#rfc.iref.s.14"><b>8.3.4</b></a>, <a class="iref" href="#rfc.xref.status.303.3">10.2</a>, <a class="iref" href="#rfc.xref.status.303.4">A.1</a></li>
    27722784                        <li class="indline1">304 Not Modified&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.304.1">4</a>, <a class="iref" href="#rfc.iref.s.15"><b>8.3.5</b></a>, <a class="iref" href="#rfc.xref.status.304.2">10.2</a></li>
    27732785                        <li class="indline1">305 Use Proxy&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.305.1">4</a>, <a class="iref" href="#rfc.iref.s.16"><b>8.3.6</b></a>, <a class="iref" href="#rfc.xref.status.305.2">10.2</a>, <a class="iref" href="#rfc.xref.status.305.3">A.2</a></li>
    27742786                        <li class="indline1">306 (Unused)&nbsp;&nbsp;<a class="iref" href="#rfc.iref.s.17"><b>8.3.7</b></a>, <a class="iref" href="#rfc.xref.status.306.1">10.2</a></li>
    2775                         <li class="indline1">307 Temporary Redirect&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.307.1">4</a>, <a class="iref" href="#rfc.iref.s.18"><b>8.3.8</b></a>, <a class="iref" href="#rfc.xref.status.307.2">10.2</a>, <a class="iref" href="#rfc.xref.status.307.3">A.2</a></li>
     2787                        <li class="indline1">307 Temporary Redirect&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.307.1">4</a>, <a class="iref" href="#rfc.xref.status.307.2">8.3.3</a>, <a class="iref" href="#rfc.iref.s.18"><b>8.3.8</b></a>, <a class="iref" href="#rfc.xref.status.307.3">10.2</a>, <a class="iref" href="#rfc.xref.status.307.4">A.1</a>, <a class="iref" href="#rfc.xref.status.307.5">A.2</a></li>
    27762788                        <li class="indline1">400 Bad Request&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.400.1">4</a>, <a class="iref" href="#rfc.iref.s.19"><b>8.4.1</b></a>, <a class="iref" href="#rfc.xref.status.400.2">10.2</a></li>
    27772789                        <li class="indline1">401 Unauthorized&nbsp;&nbsp;<a class="iref" href="#rfc.xref.status.401.1">4</a>, <a class="iref" href="#rfc.iref.s.20"><b>8.4.2</b></a>, <a class="iref" href="#rfc.xref.status.401.2">10.2</a></li>
Note: See TracChangeset for help on using the changeset viewer.