Changeset 1390


Ignore:
Timestamp:
Aug 8, 2011, 12:37:45 PM (8 years ago)
Author:
fielding@…
Message:

Be intolerant. Move cache date requirements hiding in appendix to p6.

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

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p1-messaging.xml

    r1384 r1390  
    430430
    431431<section title="Basic Rules" anchor="basic.rules">
    432 <t anchor="rule.CRLF">
    433   <x:anchor-alias value="CRLF"/>
    434    HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
    435    protocol elements other than the message-body
    436    (see <xref target="tolerant.applications"/> for tolerant applications).
    437 </t>
    438432<t anchor="rule.LWS">
    439433   This specification uses three rules to denote the use of linear
     
    12301224   the server is reading the protocol stream at the beginning of a
    12311225   message and receives a CRLF first, it &SHOULD; ignore the CRLF.
     1226   Likewise, although the line terminator for the start-line and header
     1227   fields is the sequence CRLF, we recommend that recipients recognize a
     1228   single LF as a line terminator and ignore any CR.
    12321229</t>
    12331230<t>
     
    15841581   as incomplete.  A response that terminates in the middle of the header
    15851582   block (before the empty line is received) cannot be assumed to convey the
    1586    full semantics of the response and &MUST-NOT; be stored by a cache.
     1583   full semantics of the response and &MUST; be treated as an error.
    15871584</t>
    15881585<t>
     
    20352032   all three formats (for compatibility with HTTP/1.0), though they &MUST;
    20362033   only generate the RFC 1123 format for representing HTTP-date values
    2037    in header fields. See <xref target="tolerant.applications"/> for further information.
     2034   in header fields.
    20382035</t>
    20392036<t>
     
    29342931        respond with a 417 (Expectation Failed) status code.
    29352932    </t>
    2936     <t> Proxies &SHOULD; maintain a cache recording the HTTP version
     2933    <t> Proxies &SHOULD; maintain a record of the HTTP version
    29372934        numbers received from recently-referenced next-hop servers.
    29382935    </t>
     
    48864883
    48874884
    4888 <section title="Tolerant Applications" anchor="tolerant.applications">
    4889 <t>
    4890    Although this document specifies the requirements for the generation
    4891    of HTTP/1.1 messages, not all applications will be correct in their
    4892    implementation. We therefore recommend that operational applications
    4893    be tolerant of deviations whenever those deviations can be
    4894    interpreted unambiguously.
    4895 </t>
    4896 <t>
    4897    The line terminator for header fields is the sequence CRLF.
    4898    However, we recommend that applications, when parsing such headers fields,
    4899    recognize a single LF as a line terminator and ignore the leading CR.
    4900 </t>
    4901 <t>
    4902    The character encoding of a representation &SHOULD; be labeled as the lowest
    4903    common denominator of the character codes used within that representation, with
    4904    the exception that not labeling the representation is preferred over labeling
    4905    the representation with the labels US-ASCII or ISO-8859-1. See &payload;.
    4906 </t>
    4907 <t>
    4908    Additional rules for requirements on parsing and encoding of dates
    4909    and other potential problems with date encodings include:
    4910 </t>
    4911 <t>
    4912   <list style="symbols">
    4913      <t>HTTP/1.1 clients and caches &SHOULD; assume that an RFC-850 date
    4914         which appears to be more than 50 years in the future is in fact
    4915         in the past (this helps solve the "year 2000" problem).</t>
    4916 
    4917      <t>Although all date formats are specified to be case-sensitive,
    4918         recipients &SHOULD; match day, week and timezone names
    4919         case-insensitively.</t>
    4920              
    4921      <t>An HTTP/1.1 implementation &MAY; internally represent a parsed
    4922         Expires date as earlier than the proper value, but &MUST-NOT;
    4923         internally represent a parsed Expires date as later than the
    4924         proper value.</t>
    4925 
    4926      <t>All expiration-related calculations &MUST; be done in GMT. The
    4927         local time zone &MUST-NOT; influence the calculation or comparison
    4928         of an age or expiration time.</t>
    4929 
    4930      <t>If an HTTP header field incorrectly carries a date value with a time
    4931         zone other than GMT, it &MUST; be converted into GMT using the
    4932         most conservative possible conversion.</t>
    4933   </list>
    4934 </t>
    4935 </section>
    4936 
    49374885<section title="HTTP Version History" anchor="compatibility">
    49384886<t>
  • draft-ietf-httpbis/latest/p6-cache.xml

    r1376 r1390  
    869869  current_age = corrected_initial_age + resident_time;
    870870</artwork></figure>
     871<t>
     872   Additional rules for requirements on parsing and encoding of dates
     873   and other potential problems with date encodings include:
     874</t>
     875<t>
     876  <list style="symbols">
     877     <t>HTTP/1.1 clients and caches &SHOULD; assume that an RFC-850 date
     878        which appears to be more than 50 years in the future is in fact
     879        in the past (this helps solve the "year 2000" problem).</t>
     880
     881     <t>Although all date formats are specified to be case-sensitive,
     882        recipients &SHOULD; match day, week and timezone names
     883        case-insensitively.</t>
     884             
     885     <t>An HTTP/1.1 implementation &MAY; internally represent a parsed
     886        Expires date as earlier than the proper value, but &MUST-NOT;
     887        internally represent a parsed Expires date as later than the
     888        proper value.</t>
     889
     890     <t>All expiration-related calculations &MUST; be done in GMT. The
     891        local time zone &MUST-NOT; influence the calculation or comparison
     892        of an age or expiration time.</t>
     893
     894     <t>If an HTTP header field incorrectly carries a date value with a time
     895        zone other than GMT, it &MUST; be converted into GMT using the
     896        most conservative possible conversion.</t>
     897  </list>
     898</t>
    871899</section>
    872900
Note: See TracChangeset for help on using the changeset viewer.