Mar 4, 2010, 6:34:38 AM (10 years ago)

Restore sections "End-to-end and Hop-by-hop Headers" and ""Non-modifiable Headers" in Part 1 for now (relates to #60)

1 edited


  • draft-ietf-httpbis/latest/p1-messaging.xml

    r767 r769  
    2525  <!ENTITY entity-body            "<xref target='Part3' x:rel='#entity.body' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    2626  <!ENTITY entity-header-fields   "<xref target='Part3' x:rel='#entity.header.fields' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
     27  <!ENTITY entity-length          "<xref target='Part3' x:rel='#entity.length' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    2728  <!ENTITY header-cache-control   "<xref target='Part6' x:rel='#header.cache-control' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    2829  <!ENTITY header-expect          "<xref target='Part2' x:rel='#header.expect' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    22572258   implemented by many HTTP/1.0 clients).
     2261<section title="End-to-end and Hop-by-hop Headers" anchor="end-to-end.and.hop-by-hop.headers">
     2263  <cref anchor="TODO-end-to-end" source="jre">
     2264    Restored from <eref target="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-05#section-7.1"/>.
     2265    See also <eref target="http://trac.tools.ietf.org/wg/httpbis/trac/ticket/60"/>.
     2266  </cref>
     2269   For the purpose of defining the behavior of caches and non-caching
     2270   proxies, we divide HTTP headers into two categories:
     2271  <list style="symbols">
     2272      <t>End-to-end headers, which are  transmitted to the ultimate
     2273        recipient of a request or response. End-to-end headers in
     2274        responses MUST be stored as part of a cache entry and &MUST; be
     2275        transmitted in any response formed from a cache entry.</t>
     2277      <t>Hop-by-hop headers, which are meaningful only for a single
     2278        transport-level connection, and are not stored by caches or
     2279        forwarded by proxies.</t>
     2280  </list>
     2283   The following HTTP/1.1 headers are hop-by-hop headers:
     2284  <list style="symbols">
     2285      <t>Connection</t>
     2286      <t>Keep-Alive</t>
     2287      <t>Proxy-Authenticate</t>
     2288      <t>Proxy-Authorization</t>
     2289      <t>TE</t>
     2290      <t>Trailer</t>
     2291      <t>Transfer-Encoding</t>
     2292      <t>Upgrade</t>
     2293  </list>
     2296   All other headers defined by HTTP/1.1 are end-to-end headers.
     2299   Other hop-by-hop headers &MUST; be listed in a Connection header
     2300   (<xref target="header.connection"/>).
     2304<section title="Non-modifiable Headers" anchor="non-modifiable.headers">
     2306  <cref anchor="TODO-non-mod-headers" source="jre">
     2307    Restored from <eref target="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-05#section-7.2"/>.
     2308    See also <eref target="http://trac.tools.ietf.org/wg/httpbis/trac/ticket/60"/>.
     2309  </cref>
     2312   Some features of HTTP/1.1, such as Digest Authentication, depend on the
     2313   value of certain end-to-end headers. A transparent proxy &SHOULD-NOT;
     2314   modify an end-to-end header unless the definition of that header requires
     2315   or specifically allows that.
     2318   A transparent proxy &MUST-NOT; modify any of the following fields in a
     2319   request or response, and it &MUST-NOT; add any of these fields if not
     2320   already present:
     2321  <list style="symbols">
     2322      <t>Content-Location</t>
     2323      <t>Content-MD5</t>
     2324      <t>ETag</t>
     2325      <t>Last-Modified</t>
     2326  </list>
     2329   A transparent proxy &MUST-NOT; modify any of the following fields in a
     2330   response:
     2331  <list style="symbols">
     2332    <t>Expires</t>
     2333  </list>
     2336   but it &MAY; add any of these fields if not already present. If an
     2337   Expires header is added, it &MUST; be given a field-value identical to
     2338   that of the Date header in that response.
     2341   A proxy &MUST-NOT; modify or add any of the following fields in a
     2342   message that contains the no-transform cache-control directive, or in
     2343   any request:
     2344  <list style="symbols">
     2345    <t>Content-Encoding</t>
     2346    <t>Content-Range</t>
     2347    <t>Content-Type</t>
     2348  </list>
     2351   A non-transparent proxy &MAY; modify or add these fields to a message
     2352   that does not include no-transform, but if it does so, it &MUST; add a
     2353   Warning 214 (Transformation applied) if one does not already appear
     2354   in the message (see &header-warning;).
     2357  <t>
     2358    <x:h>Warning:</x:h> Unnecessary modification of end-to-end headers might
     2359    cause authentication failures if stronger authentication
     2360    mechanisms are introduced in later versions of HTTP. Such
     2361    authentication mechanisms &MAY; rely on the values of header fields
     2362    not listed here.
     2363  </t>
     2366   The Content-Length field of a request or response is added or deleted
     2367   according to the rules in <xref target="message.length"/>. A transparent proxy &MUST;
     2368   preserve the entity-length (&entity-length;) of the entity-body,
     2369   although it &MAY; change the transfer-length (<xref target="message.length"/>).
    46384752   interoperability problem that could have occurred due to interactions
    46394753   between authentication trailers, chunked encoding and HTTP/1.0
    4640    clients.(Section <xref target="transfer.codings" format="counter"/>, <xref target="chunked.encoding" format="counter"/>,
     4754   clients.(Section
     4755   <xref target="transfer.codings" format="counter"/>,
     4756   <xref target="chunked.encoding" format="counter"/>,
     4757   <xref target="non-modifiable.headers" format="counter"/>,
    46414758   and <xref target="header.te" format="counter"/>)
     4761  Proxies should be able to add Content-Length when appropriate.
     4762  (<xref target="non-modifiable.headers"/>)
    53625483  <list style="symbols">
    53635484    <t>
     5485      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/60"/>:
     5486      "Placement of 13.5.1 and 13.5.2"
     5487    </t>
     5488    <t>
    53645489      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/200"/>:
    53655490      "use of term "word" when talking about header structure"
Note: See TracChangeset for help on using the changeset viewer.