Changeset 2041


Ignore:
Timestamp:
Dec 8, 2012, 12:00:42 AM (7 years ago)
Author:
fielding@…
Message:

remove irrelevant details from transforming proxy requirements now obsolete due to introduction of payload terminology; addresses #418

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

Legend:

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

    r2040 r2041  
    25992599</section>
    26002600
    2601 <section title="Transformation" anchor="message.transformation">
     2601<section title="Transformations" anchor="message.transformations">
     2602<t>
     2603   Some intermediaries include features for transforming messages and their
     2604   payloads.  A transforming proxy might, for example, convert between image
     2605   formats in order to save cache space or to reduce the amount of traffic on
     2606   a slow link. However, operational problems might occur when these
     2607   transformations are applied to payloads intended for critical applications,
     2608   such as medical imaging or scientific data analysis, particularly when
     2609   integrity checks or digital signatures are used to ensure that the payload
     2610   received is identical to the original.
     2611</t>
    26022612<t>
    26032613   If a proxy receives a request-target with a host name that is not a
     
    26072617</t>
    26082618<t>
    2609    A non-transforming proxy &MUST-NOT; modify the "path-absolute" and "query"
    2610    parts of the received request-target when forwarding it to the next inbound
    2611    server, except as noted above to replace an empty path with "/" or "*".
    2612 </t>
    2613 <t>
    2614    A non-transforming proxy &MUST; preserve the message payload (&payload;),
    2615    though it &MAY; change the message body through application or removal
    2616    of a transfer coding (<xref target="transfer.codings"/>).
    2617 </t>
    2618 <t>
    2619    A non-transforming proxy &SHOULD-NOT; modify header fields that provide
    2620    information about the end points of the communication chain, the resource
    2621    state, or the selected representation.
    2622 </t>
    2623 <t>
    2624    A non-transforming proxy &MUST-NOT; modify any of the following fields in a
    2625    request or response, and it &MUST-NOT; add any of these fields if not
    2626    already present:
    2627   <list style="symbols">
    2628     <t><x:ref>Allow</x:ref> (&header-allow;)</t>
    2629     <t><x:ref>Content-Location</x:ref> (&header-content-location;)</t>
    2630     <t>Content-MD5 (<xref target="RFC2616" x:fmt="of" x:sec="14.15"/>)</t>
    2631     <t><x:ref>ETag</x:ref> (&header-etag;)</t>
    2632     <t><x:ref>Last-Modified</x:ref> (&header-last-modified;)</t>
    2633     <t><x:ref>Server</x:ref> (&header-server;)</t>
    2634   </list>
    2635 </t>
    2636 <t>
    2637    A non-transforming proxy &MUST-NOT; modify an <x:ref>Expires</x:ref>
    2638    header field (&header-expires;) if already present in a response, but
    2639    it &MAY; add an <x:ref>Expires</x:ref> header field with a field-value
    2640    identical to that of the <x:ref>Date</x:ref> header field.
    2641 </t>
    2642 <t>
    2643    A proxy &MUST-NOT; modify or add any of the following fields in a
    2644    message that contains the no-transform cache-control directive:
    2645   <list style="symbols">
    2646     <t><x:ref>Content-Encoding</x:ref> (&header-content-encoding;)</t>
    2647     <t><x:ref>Content-Range</x:ref> (&header-content-range;)</t>
    2648     <t><x:ref>Content-Type</x:ref> (&header-content-type;)</t>
    2649   </list>
    2650 </t>
    2651 <t>
    2652    A transforming proxy &MAY; modify or add these fields to a message
    2653    that does not include no-transform, but if it does so, it &MUST; add a
    2654    Warning 214 (Transformation applied) if one does not already appear
    2655    in the message (see &header-warning;).
    2656 </t>
    2657 <x:note>
    2658   <t>
    2659     <x:h>Warning:</x:h> Unnecessary modification of header fields might
    2660     cause authentication failures if stronger authentication
    2661     mechanisms are introduced in later versions of HTTP. Such
    2662     authentication mechanisms &MAY; rely on the values of header fields
    2663     not listed here.
    2664   </t>
    2665 </x:note>
     2619   A proxy &MUST-NOT; modify the "path-absolute" and "query" parts of the
     2620   received request-target when forwarding it to the next inbound server,
     2621   except as noted above to replace an empty path with "/" or "*".
     2622</t>
     2623<t>
     2624   A proxy &MUST-NOT; modify header fields that provide information about the
     2625   end points of the communication chain, the resource state, or the selected
     2626   representation. A proxy &MAY; change the message body through application
     2627   or removal of a transfer coding (<xref target="transfer.codings"/>).
     2628</t>
     2629<t>
     2630   A non-transforming proxy &MUST; preserve the message payload (&payload;).
     2631   A transforming proxy &MUST; preserve the payload of a message that
     2632   contains the no-transform cache-control directive.
     2633</t>
     2634<t>
     2635   A transforming proxy &MAY; transform the payload of a message
     2636   that does not contain the no-transform cache-control directive;
     2637   if the payload is transformed, the transforming proxy &MUST; add a
     2638   Warning 214 (Transformation applied) header field if one does not
     2639   already appear in the message (see &header-warning;).
     2640</t>
    26662641</section>
    26672642</section>
  • draft-ietf-httpbis/latest/p2-semantics.xml

    r2031 r2041  
    3434  <!ENTITY effective-request-uri      "<xref target='Part1' x:rel='#effective.request.uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    3535  <!ENTITY intermediaries             "<xref target='Part1' x:rel='#intermediaries' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
     36  <!ENTITY transformations            "<xref target='Part1' x:rel='#message.transformations' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    3637  <!ENTITY chunked-encoding           "<xref target='Part1' x:rel='#chunked.encoding' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    3738  <!ENTITY http-url                   "<xref target='Part1' x:rel='#http-url' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
     
    582583</t>
    583584<t>
    584    A transforming proxy &MAY; modify the content coding if the
    585    new coding is known to be acceptable to the recipient, unless the
    586    "no-transform" cache-control directive is present in the message.
    587 </t>
    588 <t>
    589585   If the media type includes an inherent encoding, such as a data format
    590586   that is always compressed, then that encoding would not be restated as
     
    27842780  <x:anchor-alias value="203 (Non-Authoritative Information)"/>
    27852781<t>
    2786    The representation in the response has been transformed or otherwise
    2787    modified by a transforming proxy (&intermediaries;).  Note that the
    2788    behavior of transforming intermediaries is controlled by the no-transform
    2789    Cache-Control directive (&header-cache-control;).
    2790 </t>
    2791 <t>
    2792    This status code is only appropriate when the response status code would
    2793    have been <x:ref>200 (OK)</x:ref> otherwise. When the status code before
    2794    transformation would have been different, the 214 Transformation Applied
    2795    warn-code (&header-warning;) is appropriate.
    2796 </t>
    2797 <t>
    2798    Caches &MAY; use a heuristic (see &p6-heuristic;) to determine
    2799    freshness for 203 responses.
     2782   The request was successful but the enclosed payload has been modified
     2783   from that of the origin server's <x:ref>200 (OK)</x:ref> response by a
     2784   transforming proxy (&transformations;). This status code allows the proxy
     2785   to notify recipients when a transformation has been applied, since that
     2786   knowledge might impact later decisions regarding the content.
     2787   For example, future cache validation requests for the content might only
     2788   be applicable along the same request path (through the same proxies).
     2789</t>
     2790<t>
     2791   The 203 response is similar to the Warning code of 214 Transformation
     2792   Applied (&header-warning;), which has the advantage of being applicable
     2793   to responses with any status code.
    28002794</t>
    28012795</section>
  • draft-ietf-httpbis/latest/p6-cache.xml

    r2030 r2041  
    4444  <!ENTITY status-codes                "<xref target='Part2' x:rel='#status.codes' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    4545  <!ENTITY status.2xx                  "<xref target='Part2' x:rel='#status.2xx' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
     46  <!ENTITY transformations             "<xref target='Part1' x:rel='#message.transformations' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
    4647]>
    4748<?rfc toc="yes" ?>
     
    12731274<t>
    12741275   The "no-transform" request directive indicates that an intermediary
    1275    (whether or not it implements a cache) &MUST-NOT; change the
    1276    <x:ref>Content-Encoding</x:ref>, <x:ref>Content-Range</x:ref> or
    1277    <x:ref>Content-Type</x:ref> request header fields, nor the request
    1278    representation.
     1276   (whether or not it implements a cache) &MUST-NOT; transform the payload,
     1277   as defined in &transformations;.
    12791278</t>
    12801279</section>
     
    14931492<t>
    14941493   The "no-transform" response directive indicates that an intermediary
    1495    (regardless of whether it implements a cache) &MUST-NOT; change the
    1496    <x:ref>Content-Encoding</x:ref>, <x:ref>Content-Range</x:ref> or
    1497    <x:ref>Content-Type</x:ref> response header fields, nor the response
    1498    representation.
     1494   (regardless of whether it implements a cache) &MUST-NOT; transform the
     1495   payload, as defined in &transformations;.
    14991496</t>
    15001497</section>
Note: See TracChangeset for help on using the changeset viewer.