Ignore:
Timestamp:
Aug 19, 2012, 6:04:36 PM (7 years ago)
Author:
fielding@…
Message:

remove nonsense about specific header fields being hop-by-hop; a field is only hop-by-hop if defined so by Connection

File:
1 edited

Legend:

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

    r1833 r1834  
    24692469</t>
    24702470<t>
     2471   Intermediaries that forward a message &MUST; implement the
     2472   <x:ref>Connection</x:ref> header field, as specified in
     2473   <xref target="header.connection"/>, to exclude fields that are only
     2474   intended for the incoming connection.
     2475</t>
     2476<t>
    24712477   In order to avoid request loops, a proxy that forwards requests to other
    24722478   proxies &MUST; be able to recognize and exclude all of its own server
    24732479   names, including any aliases, local variations, or literal IP addresses.
    24742480</t>
     2481</section>
     2482
     2483<section title="Message Transforming" anchor="message.transforming">
    24752484<t>
    24762485   If a proxy receives a request-target with a host name that is not a
     
    24852494</t>
    24862495<t>
    2487    Intermediaries that forward a message &MUST; implement the
    2488    <x:ref>Connection</x:ref> header field as specified in
    2489    <xref target="header.connection"/>.
    2490 </t>
    2491 
    2492 <section title="End-to-end and Hop-by-hop Header Fields" anchor="end-to-end.and.hop-by-hop.header-fields">
    2493 <!--<t>
    2494   <cref anchor="TODO-end-to-end" source="jre">
    2495     Restored from <eref target="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-05#section-7.1"/>.
    2496     See also <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/60"/>.
    2497   </cref>
    2498 </t>-->
    2499 <t>
    2500    For the purpose of defining the behavior of caches and non-caching
    2501    proxies, we divide HTTP header fields into two categories:
    2502   <list style="symbols">
    2503       <t>End-to-end header fields, which are  transmitted to the ultimate
    2504         recipient of a request or response. End-to-end header fields in
    2505         responses &MUST; be stored as part of a cache entry and &MUST; be
    2506         transmitted in any response formed from a cache entry.</t>
    2507 
    2508       <t>Hop-by-hop header fields, which are meaningful only for a single
    2509         transport-level connection, and are not stored by caches or
    2510         forwarded by proxies.</t>
    2511   </list>
    2512 </t>
    2513 <t>
    2514    The following HTTP/1.1 header fields are hop-by-hop header fields:
    2515   <list style="symbols">
    2516       <t><x:ref>Connection</x:ref></t>
    2517       <t>Keep-Alive (<xref target="RFC2068" x:fmt="of" x:sec="19.7.1.1"/>)</t>
    2518       <t><x:ref>Proxy-Authenticate</x:ref> (&header-proxy-authenticate;)</t>
    2519       <t><x:ref>Proxy-Authorization</x:ref> (&header-proxy-authorization;)</t>
    2520       <t><x:ref>TE</x:ref></t>
    2521       <t><x:ref>Trailer</x:ref></t>
    2522       <t><x:ref>Transfer-Encoding</x:ref></t>
    2523       <t><x:ref>Upgrade</x:ref></t>
    2524   </list>
    2525 </t>
    2526 <t>
    2527    All other header fields defined by HTTP/1.1 are end-to-end header fields.
    2528 </t>
    2529 <t>
    2530    Other hop-by-hop header fields &MUST; be listed in a
    2531    <x:ref>Connection</x:ref> header field (<xref target="header.connection"/>).
    2532 </t>
    2533 </section>
    2534 
    2535 <section title="Non-modifiable Header Fields" anchor="non-modifiable.header-fields">
    2536 <!--<t>
    2537   <cref anchor="TODO-non-mod-headers" source="jre">
    2538     Restored from <eref target="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-05#section-7.2"/>.
    2539     See also <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/60"/>.
    2540   </cref>
    2541 </t>-->
    2542 <t>
    2543    Some features of HTTP/1.1, such as Digest Authentication, depend on the
    2544    value of certain end-to-end header fields. A non-transforming proxy &SHOULD-NOT;
    2545    modify an end-to-end header field unless the definition of that header field requires
    2546    or specifically allows that.
     2496   A non-transforming proxy &MUST; preserve the message payload (&payload;),
     2497   though it &MAY; change the message body through application or removal
     2498   of a transfer-coding (<xref target="transfer.codings"/>).
     2499</t>
     2500<t>
     2501   A non-transforming proxy &SHOULD-NOT; modify header fields that provide
     2502   information about the end points of the communication chain, the resource
     2503   state, or the selected representation.
    25472504</t>
    25482505<t>
     
    25602517</t>
    25612518<t>
    2562    A non-transforming proxy &MUST-NOT; modify any of the following fields in a
    2563    response:
    2564   <list style="symbols">
    2565     <t><x:ref>Expires</x:ref> (&header-expires;)</t>
    2566   </list>
    2567 </t>
    2568 <t>
    2569    but it &MAY; add any of these fields if not already present. If an
    2570    <x:ref>Expires</x:ref> header field is added, it &MUST; be given a
    2571    field value identical to that of the <x:ref>Date</x:ref> header field in
    2572    that response.
     2519   A non-transforming proxy &MUST-NOT; modify an <x:ref>Expires</x:ref>
     2520   header field (&header-expires;) if already present in a response, but
     2521   it &MAY; add an <x:ref>Expires</x:ref> header field with a field-value
     2522   identical to that of the <x:ref>Date</x:ref> header field.
    25732523</t>
    25742524<t>
    25752525   A proxy &MUST-NOT; modify or add any of the following fields in a
    2576    message that contains the no-transform cache-control directive, or in
    2577    any request:
     2526   message that contains the no-transform cache-control directive:
    25782527  <list style="symbols">
    25792528    <t><x:ref>Content-Encoding</x:ref> (&header-content-encoding;)</t>
     
    25902539<x:note>
    25912540  <t>
    2592     <x:h>Warning:</x:h> Unnecessary modification of end-to-end header fields might
     2541    <x:h>Warning:</x:h> Unnecessary modification of header fields might
    25932542    cause authentication failures if stronger authentication
    25942543    mechanisms are introduced in later versions of HTTP. Such
     
    25972546  </t>
    25982547</x:note>
    2599 <t>
    2600    A non-transforming proxy &MUST; preserve the message payload (&payload;),
    2601    though it &MAY; change the message body through application or removal
    2602    of a transfer-coding (<xref target="transfer.codings"/>).
    2603 </t>
    2604 </section>
    2605 
    26062548</section>
    26072549
Note: See TracChangeset for help on using the changeset viewer.