Ignore:
Timestamp:
15/11/13 09:06:45 (9 years ago)
Author:
fielding@…
Message:

Explain the value 2147483648 in delta-seconds, reduce the MUST implement as 31 bits to an ought (not valid use of 2119 terms), and remove unimplemented requirement that sender MUST NOT generate a value greater than 2147483648; see #512

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

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p6-cache.html

    r2492 r2494  
    448448  }
    449449  @bottom-center {
    450        content: "Expires May 16, 2014";
     450       content: "Expires May 19, 2014";
    451451  }
    452452  @bottom-right {
     
    492492      <meta name="dct.creator" content="Reschke, J. F.">
    493493      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p6-cache-latest">
    494       <meta name="dct.issued" scheme="ISO8601" content="2013-11-12">
     494      <meta name="dct.issued" scheme="ISO8601" content="2013-11-15">
    495495      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    496496      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">
     
    518518            </tr>
    519519            <tr>
    520                <td class="left">Expires: May 16, 2014</td>
     520               <td class="left">Expires: May 19, 2014</td>
    521521               <td class="right">J. Reschke, Editor</td>
    522522            </tr>
     
    527527            <tr>
    528528               <td class="left"></td>
    529                <td class="right">November 12, 2013</td>
     529               <td class="right">November 15, 2013</td>
    530530            </tr>
    531531         </tbody>
     
    554554            in progress”.
    555555         </p>
    556          <p>This Internet-Draft will expire on May 16, 2014.</p>
     556         <p>This Internet-Draft will expire on May 19, 2014.</p>
    557557      </div>
    558558      <div id="rfc.copyrightnotice">
     
    723723               <p id="rfc.section.1.2.1.p.1">The delta-seconds rule specifies a non-negative integer, representing time in seconds.</p>
    724724               <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span>  <a href="#delta-seconds" class="smpl">delta-seconds</a>  = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>
    725 </pre><p id="rfc.section.1.2.1.p.3">If a cache receives a delta-seconds value larger than the largest positive integer it can represent, or if any of its subsequent
    726                   calculations overflows, the cache <em class="bcp14">MUST</em> consider the value to be 2147483648 (2<sup>31</sup>). A recipient parsing a delta-seconds value <em class="bcp14">MUST</em> use an arithmetic type of at least 31 bits of range, and a sender <em class="bcp14">MUST NOT</em> generate delta-seconds with a value greater than 2147483648.
    727                </p>
    728                <p id="rfc.section.1.2.1.p.4">Note that this value (2147483648) might cause implementation issues on some platforms (in particular, those that represent
    729                   INT_MAX as 2<sup>31</sup>-1), and therefore ought to be handled carefully.
    730                </p>
     725</pre><p id="rfc.section.1.2.1.p.3">A recipient parsing a delta-seconds value and converting it to binary form ought to use an arithmetic type of at least 31
     726                  bits of non-negative integer range. If a cache receives a delta-seconds value greater than the greatest integer it can represent,
     727                  or if any of its subsequent calculations overflows, the cache <em class="bcp14">MUST</em> consider the value to be either 2147483648 (2<sup>31</sup>) or the greatest positive integer it can conveniently represent.
     728               </p>
     729               <div class="note" id="rfc.section.1.2.1.p.4">
     730                  <p><b>Note:</b> The value 2147483648 is here for historical reasons, effectively represents infinity (over 68 years), and does not need to
     731                     be stored in binary form; an implementation could produce it as a canned string if any overflow occurs, even if the calculations
     732                     are performed with an arithmetic type incapable of directly representing that number. What matters here is that an overflow
     733                     be detected and not treated as a negative value in later calculations.
     734                  </p>
     735               </div>
    731736            </div>
    732737         </div>
  • draft-ietf-httpbis/latest/p6-cache.xml

    r2492 r2494  
    213213</artwork></figure>
    214214<t>
    215    If a cache receives a delta-seconds value larger than the largest
    216    positive integer it can represent, or if any of its subsequent calculations
    217    overflows, the cache &MUST; consider the value to be 2147483648
    218    (2<x:sup>31</x:sup>). A recipient parsing a delta-seconds value &MUST; use
    219    an arithmetic type of at least 31 bits of range, and a sender &MUST-NOT;
    220    generate delta-seconds with a value greater than 2147483648.
    221 </t>
    222 <t>
    223    Note that this value (2147483648) might cause implementation issues on some
    224    platforms (in particular, those that represent INT_MAX as
    225    2<x:sup>31</x:sup>-1), and therefore ought to be handled carefully.
    226 </t>
     215   A recipient parsing a delta-seconds value and converting it to binary form
     216   ought to use an arithmetic type of at least 31 bits of non-negative integer
     217   range.
     218   If a cache receives a delta-seconds value greater than the greatest integer
     219   it can represent, or if any of its subsequent calculations overflows,
     220   the cache &MUST; consider the value to be either 2147483648
     221   (2<x:sup>31</x:sup>) or the greatest positive integer it can conveniently
     222   represent.
     223</t>
     224<x:note>
     225   <t>
     226       &Note; The value 2147483648 is here for historical reasons, effectively
     227       represents infinity (over 68 years), and does not need to be stored in
     228       binary form; an implementation could produce it as a canned string if
     229       any overflow occurs, even if the calculations are performed with an
     230       arithmetic type incapable of directly representing that number.
     231       What matters here is that an overflow be detected and not treated as a
     232       negative value in later calculations.
     233   </t>
     234</x:note>
    227235</section>
    228236
Note: See TracChangeset for help on using the changeset viewer.