Changeset 2041
- Timestamp:
- 08/12/12 08:00:42 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.xml
r2040 r2041 2599 2599 </section> 2600 2600 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> 2602 2612 <t> 2603 2613 If a proxy receives a request-target with a host name that is not a … … 2607 2617 </t> 2608 2618 <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> 2666 2641 </section> 2667 2642 </section> -
draft-ietf-httpbis/latest/p2-semantics.xml
r2031 r2041 34 34 <!ENTITY effective-request-uri "<xref target='Part1' x:rel='#effective.request.uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 35 35 <!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'/>"> 36 37 <!ENTITY chunked-encoding "<xref target='Part1' x:rel='#chunked.encoding' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 37 38 <!ENTITY http-url "<xref target='Part1' x:rel='#http-url' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 582 583 </t> 583 584 <t> 584 A transforming proxy &MAY; modify the content coding if the585 new coding is known to be acceptable to the recipient, unless the586 "no-transform" cache-control directive is present in the message.587 </t>588 <t>589 585 If the media type includes an inherent encoding, such as a data format 590 586 that is always compressed, then that encoding would not be restated as … … 2784 2780 <x:anchor-alias value="203 (Non-Authoritative Information)"/> 2785 2781 <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. 2800 2794 </t> 2801 2795 </section> -
draft-ietf-httpbis/latest/p6-cache.xml
r2030 r2041 44 44 <!ENTITY status-codes "<xref target='Part2' x:rel='#status.codes' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 45 45 <!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'/>"> 46 47 ]> 47 48 <?rfc toc="yes" ?> … … 1273 1274 <t> 1274 1275 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;. 1279 1278 </t> 1280 1279 </section> … … 1493 1492 <t> 1494 1493 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;. 1499 1496 </t> 1500 1497 </section>
Note: See TracChangeset
for help on using the changeset viewer.