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

File:
1 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>
Note: See TracChangeset for help on using the changeset viewer.