Ignore:
Timestamp:
Mar 28, 2012, 10:34:31 AM (8 years ago)
Author:
julian.reschke@…
Message:

sort header fields

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/experiment/p2-semantics.xml

    r1631 r1633  
    29112911</t>
    29122912
     2913
     2914<section title="Accept" anchor="header.accept">
     2915  <iref primary="true" item="Accept header field" x:for-anchor=""/>
     2916  <iref primary="true" item="Header Fields" subitem="Accept" x:for-anchor=""/>
     2917  <x:anchor-alias value="Accept"/>
     2918  <x:anchor-alias value="accept-ext"/>
     2919  <x:anchor-alias value="accept-params"/>
     2920  <x:anchor-alias value="media-range"/>
     2921<t>
     2922   The "Accept" header field can be used by user agents to specify
     2923   response media types that are acceptable. Accept header fields can be used to
     2924   indicate that the request is specifically limited to a small set of desired
     2925   types, as in the case of a request for an in-line image.
     2926</t>
     2927<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-ext"/>
     2928  <x:ref>Accept</x:ref> = #( <x:ref>media-range</x:ref> [ <x:ref>accept-params</x:ref> ] )
     2929 
     2930  <x:ref>media-range</x:ref>    = ( "*/*"
     2931                   / ( <x:ref>type</x:ref> "/" "*" )
     2932                   / ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> )
     2933                   ) *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>parameter</x:ref> )
     2934  <x:ref>accept-params</x:ref>  = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> *( <x:ref>accept-ext</x:ref> )
     2935  <x:ref>accept-ext</x:ref>     = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>token</x:ref> [ "=" <x:ref>word</x:ref> ]
     2936</artwork></figure>
     2937<t>
     2938   The asterisk "*" character is used to group media types into ranges,
     2939   with "*/*" indicating all media types and "type/*" indicating all
     2940   subtypes of that type. The media-range &MAY; include media type
     2941   parameters that are applicable to that range.
     2942</t>
     2943<t>
     2944   Each media-range &MAY; be followed by one or more accept-params,
     2945   beginning with the "q" parameter for indicating a relative quality
     2946   factor. The first "q" parameter (if any) separates the media-range
     2947   parameter(s) from the accept-params. Quality factors allow the user
     2948   or user agent to indicate the relative degree of preference for that
     2949   media-range, using the qvalue scale from 0 to 1 (qvalue;). The
     2950   default value is q=1.
     2951</t>
     2952<x:note>
     2953  <t>
     2954    <x:h>Note:</x:h> Use of the "q" parameter name to separate media type
     2955    parameters from Accept extension parameters is due to historical
     2956    practice. Although this prevents any media type parameter named
     2957    "q" from being used with a media range, such an event is believed
     2958    to be unlikely given the lack of any "q" parameters in the IANA
     2959    media type registry and the rare usage of any media type
     2960    parameters in Accept. Future media types are discouraged from
     2961    registering any parameter named "q".
     2962  </t>
     2963</x:note>
     2964<t>
     2965   The example
     2966</t>
     2967<figure><artwork type="example">
     2968  Accept: audio/*; q=0.2, audio/basic
     2969</artwork></figure>
     2970<t>
     2971   &SHOULD; be interpreted as "I prefer audio/basic, but send me any audio
     2972   type if it is the best available after an 80% mark-down in quality".
     2973</t>
     2974<t>
     2975   A request without any Accept header field implies that the user agent
     2976   will accept any media type in response.
     2977   If an Accept header field is present in a request and none of the
     2978   available representations for the response have a media type that is
     2979   listed as acceptable, the origin server &MAY; either
     2980   honor the Accept header field by sending a 406 (Not Acceptable) response
     2981   or disregard the Accept header field by treating the response as if
     2982   it is not subject to content negotiation.
     2983</t>
     2984<t>
     2985   A more elaborate example is
     2986</t>
     2987<figure><artwork type="example">
     2988  Accept: text/plain; q=0.5, text/html,
     2989          text/x-dvi; q=0.8, text/x-c
     2990</artwork></figure>
     2991<t>
     2992   Verbally, this would be interpreted as "text/html and text/x-c are
     2993   the preferred media types, but if they do not exist, then send the
     2994   text/x-dvi representation, and if that does not exist, send the text/plain
     2995   representation".
     2996</t>
     2997<t>
     2998   Media ranges can be overridden by more specific media ranges or
     2999   specific media types. If more than one media range applies to a given
     3000   type, the most specific reference has precedence. For example,
     3001</t>
     3002<figure><artwork type="example">
     3003  Accept: text/*, text/plain, text/plain;format=flowed, */*
     3004</artwork></figure>
     3005<t>
     3006   have the following precedence:
     3007   <list style="numbers">
     3008    <t>text/plain;format=flowed</t>
     3009    <t>text/plain</t>
     3010    <t>text/*</t>
     3011    <t>*/*</t>
     3012   </list>
     3013</t>
     3014<t>
     3015   The media type quality factor associated with a given type is
     3016   determined by finding the media range with the highest precedence
     3017   which matches that type. For example,
     3018</t>
     3019<figure><artwork type="example">
     3020  Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1,
     3021          text/html;level=2;q=0.4, */*;q=0.5
     3022</artwork></figure>
     3023<t>
     3024   would cause the following values to be associated:
     3025</t>
     3026<texttable align="left">
     3027  <ttcol>Media Type</ttcol><ttcol>Quality Value</ttcol>
     3028  <c>text/html;level=1</c>    <c>1</c>
     3029  <c>text/html</c>            <c>0.7</c>
     3030  <c>text/plain</c>           <c>0.3</c>
     3031  <c>image/jpeg</c>           <c>0.5</c>
     3032  <c>text/html;level=2</c>    <c>0.4</c>
     3033  <c>text/html;level=3</c>    <c>0.7</c>
     3034</texttable>
     3035<t>
     3036      <x:h>Note:</x:h> A user agent might be provided with a default set of quality
     3037      values for certain media ranges. However, unless the user agent is
     3038      a closed system which cannot interact with other rendering agents,
     3039      this default set ought to be configurable by the user.
     3040</t>
     3041</section>
     3042
     3043<section title="Accept-Charset" anchor="header.accept-charset">
     3044  <iref primary="true" item="Accept-Charset header field" x:for-anchor=""/>
     3045  <iref primary="true" item="Header Fields" subitem="Accept-Charset" x:for-anchor=""/>
     3046  <x:anchor-alias value="Accept-Charset"/>
     3047<t>
     3048   The "Accept-Charset" header field can be used by user agents to
     3049   indicate what character encodings are acceptable in a response
     3050   payload. This field allows
     3051   clients capable of understanding more comprehensive or special-purpose
     3052   character encodings to signal that capability to a server which is capable of
     3053   representing documents in those character encodings.
     3054</t>
     3055<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/>
     3056  <x:ref>Accept-Charset</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" )
     3057                         [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
     3058</artwork></figure>
     3059<t>
     3060   Character encoding values (a.k.a., charsets) are described in
     3061   <xref target="character.sets"/>. Each charset &MAY; be given an
     3062   associated quality value which represents the user's preference
     3063   for that charset. The default value is q=1. An example is
     3064</t>
     3065<figure><artwork type="example">
     3066  Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
     3067</artwork></figure>
     3068<t>
     3069   The special value "*", if present in the Accept-Charset field,
     3070   matches every character encoding which is not mentioned elsewhere in the
     3071   Accept-Charset field. If no "*" is present in an Accept-Charset field, then
     3072   all character encodings not explicitly mentioned get a quality value of 0.
     3073</t>
     3074<t>
     3075   A request without any Accept-Charset header field implies that the user
     3076   agent will accept any character encoding in response.
     3077   If an Accept-Charset header field is present in a request and none of the
     3078   available representations for the response have a character encoding that
     3079   is listed as acceptable, the origin server &MAY; either honor the
     3080   Accept-Charset header field by sending a 406 (Not Acceptable) response or
     3081   disregard the Accept-Charset header field by treating the response as if
     3082   it is not subject to content negotiation.
     3083</t>
     3084</section>
     3085
     3086<section title="Accept-Encoding" anchor="header.accept-encoding">
     3087  <iref primary="true" item="Accept-Encoding header field" x:for-anchor=""/>
     3088  <iref primary="true" item="Header Fields" subitem="Accept-Encoding" x:for-anchor=""/>
     3089  <x:anchor-alias value="Accept-Encoding"/>
     3090  <x:anchor-alias value="codings"/>
     3091<t>
     3092   The "Accept-Encoding" header field can be used by user agents to
     3093   indicate what response content-codings (<xref target="content.codings"/>)
     3094   are acceptable in the response.  An "identity" token is used as a synonym
     3095   for "no encoding" in order to communicate when no encoding is preferred.
     3096</t>
     3097<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/>
     3098  <x:ref>Accept-Encoding</x:ref>  = #( <x:ref>codings</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
     3099  <x:ref>codings</x:ref>          = <x:ref>content-coding</x:ref> / "identity" / "*"
     3100</artwork></figure>
     3101<t>
     3102   Each codings value &MAY; be given an associated quality value which
     3103   represents the preference for that encoding. The default value is q=1.
     3104</t>
     3105<t>
     3106   For example,
     3107</t>
     3108<figure><artwork type="example">
     3109  Accept-Encoding: compress, gzip
     3110  Accept-Encoding:
     3111  Accept-Encoding: *
     3112  Accept-Encoding: compress;q=0.5, gzip;q=1.0
     3113  Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
     3114</artwork></figure>
     3115<t>
     3116   A server tests whether a content-coding for a given representation is
     3117   acceptable, according to an Accept-Encoding field, using these rules:
     3118  <list style="numbers">
     3119      <t>The special "*" symbol in an Accept-Encoding field matches any
     3120         available content-coding not explicitly listed in the header
     3121         field.</t>
     3122
     3123      <t>If the representation has no content-coding, then it is acceptable
     3124         by default unless specifically excluded by the Accept-Encoding field
     3125         stating either "identity;q=0" or "*;q=0" without a more specific
     3126         entry for "identity".</t>
     3127
     3128      <t>If the representation's content-coding is one of the content-codings
     3129         listed in the Accept-Encoding field, then it is acceptable unless
     3130         it is accompanied by a qvalue of 0. (As defined in qvalue;, a
     3131         qvalue of 0 means "not acceptable".)</t>
     3132
     3133      <t>If multiple content-codings are acceptable, then the acceptable
     3134         content-coding with the highest non-zero qvalue is preferred.</t>
     3135  </list>
     3136</t>
     3137<t>
     3138   An Accept-Encoding header field with a combined field-value that is empty
     3139   implies that the user agent does not want any content-coding in response.
     3140   If an Accept-Encoding header field is present in a request and none of the
     3141   available representations for the response have a content-coding that
     3142   is listed as acceptable, the origin server &SHOULD; send a response
     3143   without any content-coding.
     3144</t>
     3145<t>
     3146   A request without an Accept-Encoding header field implies that the user
     3147   agent will accept any content-coding in response, but a representation
     3148   without content-coding is preferred for compatibility with the widest
     3149   variety of user agents.
     3150</t>
     3151<x:note>
     3152  <t>
     3153    <x:h>Note:</x:h> Most HTTP/1.0 applications do not recognize or obey qvalues
     3154    associated with content-codings. This means that qvalues will not
     3155    work and are not permitted with x-gzip or x-compress.
     3156  </t>
     3157</x:note>
     3158</section>
     3159
     3160<section title="Accept-Language" anchor="header.accept-language">
     3161  <iref primary="true" item="Accept-Language header field" x:for-anchor=""/>
     3162  <iref primary="true" item="Header Fields" subitem="Accept-Language" x:for-anchor=""/>
     3163  <x:anchor-alias value="Accept-Language"/>
     3164  <x:anchor-alias value="language-range"/>
     3165<t>
     3166   The "Accept-Language" header field can be used by user agents to
     3167   indicate the set of natural languages that are preferred in the response.
     3168   Language tags are defined in <xref target="language.tags"/>.
     3169</t>
     3170<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/>
     3171  <x:ref>Accept-Language</x:ref> =
     3172                    1#( <x:ref>language-range</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
     3173  <x:ref>language-range</x:ref>  =
     3174            &lt;language-range, defined in <xref target="RFC4647" x:fmt="," x:sec="2.1"/>&gt;
     3175</artwork></figure>
     3176<t>
     3177   Each language-range can be given an associated quality value which
     3178   represents an estimate of the user's preference for the languages
     3179   specified by that range. The quality value defaults to "q=1". For
     3180   example,
     3181</t>
     3182<figure><artwork type="example">
     3183  Accept-Language: da, en-gb;q=0.8, en;q=0.7
     3184</artwork></figure>
     3185<t>
     3186   would mean: "I prefer Danish, but will accept British English and
     3187   other types of English".
     3188   (see also <xref target="RFC4647" x:sec="2.3" x:fmt="of"/>)
     3189</t>
     3190<t>
     3191   For matching, <xref target="RFC4647" x:sec="3" x:fmt="of"/> defines
     3192   several matching schemes. Implementations can offer the most appropriate
     3193   matching scheme for their requirements.
     3194</t>
     3195<x:note>
     3196  <t>
     3197    <x:h>Note:</x:h> The "Basic Filtering" scheme (<xref target="RFC4647"
     3198    x:fmt="," x:sec="3.3.1"/>) is identical to the matching scheme that was
     3199    previously defined in <xref target="RFC2616" x:fmt="of" x:sec="14.4"/>.
     3200  </t>
     3201</x:note>
     3202<t>
     3203   It might be contrary to the privacy expectations of the user to send
     3204   an Accept-Language header field with the complete linguistic preferences of
     3205   the user in every request. For a discussion of this issue, see
     3206   <xref target="privacy.issues.connected.to.accept.header.fields"/>.
     3207</t>
     3208<t>
     3209   As intelligibility is highly dependent on the individual user, it is
     3210   recommended that client applications make the choice of linguistic
     3211   preference available to the user. If the choice is not made
     3212   available, then the Accept-Language header field &MUST-NOT; be given in
     3213   the request.
     3214</t>
     3215<x:note>
     3216  <t>
     3217    <x:h>Note:</x:h> When making the choice of linguistic preference available to
     3218    the user, we remind implementors of  the fact that users are not
     3219    familiar with the details of language matching as described above,
     3220    and ought to be provided appropriate guidance. As an example, users
     3221    might assume that on selecting "en-gb", they will be served any
     3222    kind of English document if British English is not available. A
     3223    user agent might suggest in such a case to add "en" to get the
     3224    best matching behavior.
     3225  </t>
     3226</x:note>
     3227</section>
     3228
    29133229<section title="Allow" anchor="header.allow">
    29143230  <iref primary="true" item="Allow header field" x:for-anchor=""/>
     
    29373253   understand all the methods specified in order to handle them according to
    29383254   the generic message handling rules.
     3255</t>
     3256</section>
     3257
     3258<section title="Content-Encoding" anchor="header.content-encoding">
     3259  <iref primary="true" item="Content-Encoding header field" x:for-anchor=""/>
     3260  <iref primary="true" item="Header Fields" subitem="Content-Encoding" x:for-anchor=""/>
     3261  <x:anchor-alias value="Content-Encoding"/>
     3262<t>
     3263   The "Content-Encoding" header field indicates what content-codings
     3264   have been applied to the representation beyond those inherent in the media
     3265   type, and thus what decoding mechanisms have to be applied in order to obtain
     3266   the media-type referenced by the Content-Type header field.
     3267   Content-Encoding is primarily used to allow a representation to be
     3268   compressed without losing the identity of its underlying media type.
     3269</t>
     3270<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/>
     3271  <x:ref>Content-Encoding</x:ref> = 1#<x:ref>content-coding</x:ref>
     3272</artwork></figure>
     3273<t>
     3274   Content codings are defined in <xref target="content.codings"/>. An example of its use is
     3275</t>
     3276<figure><artwork type="example">
     3277  Content-Encoding: gzip
     3278</artwork></figure>
     3279<t>
     3280   The content-coding is a characteristic of the representation.
     3281   Typically, the representation body is stored with this
     3282   encoding and is only decoded before rendering or analogous usage.
     3283   However, a transforming proxy &MAY; modify the content-coding if the
     3284   new coding is known to be acceptable to the recipient, unless the
     3285   "no-transform" cache-control directive is present in the message.
     3286</t>
     3287<t>
     3288   If the media type includes an inherent encoding, such as a data format
     3289   that is always compressed, then that encoding would not be restated as
     3290   a Content-Encoding even if it happens to be the same algorithm as one
     3291   of the content-codings.  Such a content-coding would only be listed if,
     3292   for some bizarre reason, it is applied a second time to form the
     3293   representation.  Likewise, an origin server might choose to publish the
     3294   same payload data as multiple representations that differ only in whether
     3295   the coding is defined as part of Content-Type or Content-Encoding, since
     3296   some user agents will behave differently in their handling of each
     3297   response (e.g., open a "Save as ..." dialog instead of automatic
     3298   decompression and rendering of content).
     3299</t>
     3300<t>
     3301   A representation that has a content-coding applied to it &MUST; include
     3302   a Content-Encoding header field (<xref target="header.content-encoding"/>)
     3303   that lists the content-coding(s) applied.
     3304</t>
     3305<t>
     3306   If multiple encodings have been applied to a representation, the content
     3307   codings &MUST; be listed in the order in which they were applied.
     3308   Additional information about the encoding parameters &MAY; be provided
     3309   by other header fields not defined by this specification.
     3310</t>
     3311<t>
     3312   If the content-coding of a representation in a request message is not
     3313   acceptable to the origin server, the server &SHOULD; respond with a
     3314   status code of 415 (Unsupported Media Type).
     3315</t>
     3316</section>
     3317
     3318<section title="Content-Language" anchor="header.content-language">
     3319  <iref primary="true" item="Content-Language header field" x:for-anchor=""/>
     3320  <iref primary="true" item="Header Fields" subitem="Content-Language" x:for-anchor=""/>
     3321  <x:anchor-alias value="Content-Language"/>
     3322<t>
     3323   The "Content-Language" header field describes the natural
     3324   language(s) of the intended audience for the representation. Note that this might
     3325   not be equivalent to all the languages used within the representation.
     3326</t>
     3327<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/>
     3328  <x:ref>Content-Language</x:ref> = 1#<x:ref>language-tag</x:ref>
     3329</artwork></figure>
     3330<t>
     3331   Language tags are defined in <xref target="language.tags"/>. The primary purpose of
     3332   Content-Language is to allow a user to identify and differentiate
     3333   representations according to the user's own preferred language. Thus, if the
     3334   body content is intended only for a Danish-literate audience, the
     3335   appropriate field is
     3336</t>
     3337<figure><artwork type="example">
     3338  Content-Language: da
     3339</artwork></figure>
     3340<t>
     3341   If no Content-Language is specified, the default is that the content
     3342   is intended for all language audiences. This might mean that the
     3343   sender does not consider it to be specific to any natural language,
     3344   or that the sender does not know for which language it is intended.
     3345</t>
     3346<t>
     3347   Multiple languages &MAY; be listed for content that is intended for
     3348   multiple audiences. For example, a rendition of the "Treaty of
     3349   Waitangi", presented simultaneously in the original Maori and English
     3350   versions, would call for
     3351</t>
     3352<figure><artwork type="example">
     3353  Content-Language: mi, en
     3354</artwork></figure>
     3355<t>
     3356   However, just because multiple languages are present within a representation
     3357   does not mean that it is intended for multiple linguistic audiences.
     3358   An example would be a beginner's language primer, such as "A First
     3359   Lesson in Latin", which is clearly intended to be used by an
     3360   English-literate audience. In this case, the Content-Language would
     3361   properly only include "en".
     3362</t>
     3363<t>
     3364   Content-Language &MAY; be applied to any media type &mdash; it is not
     3365   limited to textual documents.
     3366</t>
     3367</section>
     3368
     3369<section title="Content-Location" anchor="header.content-location">
     3370  <iref primary="true" item="Content-Location header field" x:for-anchor=""/>
     3371  <iref primary="true" item="Header Fields" subitem="Content-Location" x:for-anchor=""/>
     3372  <x:anchor-alias value="Content-Location"/>
     3373<t>
     3374   The "Content-Location" header field supplies a URI that can be used
     3375   as a specific identifier for the representation in this message.
     3376   In other words, if one were to perform a GET on this URI at the time
     3377   of this message's generation, then a 200 response would contain the
     3378   same representation that is enclosed as payload in this message.
     3379</t>
     3380<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Location"/>
     3381  <x:ref>Content-Location</x:ref> = <x:ref>absolute-URI</x:ref> / <x:ref>partial-URI</x:ref>
     3382</artwork></figure>
     3383<t>
     3384   The Content-Location value is not a replacement for the effective
     3385   Request URI (&effective-request-uri;).  It is representation metadata.
     3386   It has the same syntax and semantics as the header field of the same name
     3387   defined for MIME body parts in <xref target="RFC2557" x:fmt="of" x:sec="4"/>.
     3388   However, its appearance in an HTTP message has some special implications
     3389   for HTTP recipients.
     3390</t>
     3391<t>
     3392   If Content-Location is included in a response message and its value
     3393   is the same as the effective request URI, then the response payload
     3394   &SHOULD; be considered a current representation of that resource.
     3395   For a GET or HEAD request, this is the same as the default semantics
     3396   when no Content-Location is provided by the server.  For a state-changing
     3397   request like PUT or POST, it implies that the server's response contains
     3398   the new representation of that resource, thereby distinguishing it from
     3399   representations that might only report about the action (e.g., "It worked!").
     3400   This allows authoring applications to update their local copies without
     3401   the need for a subsequent GET request.
     3402</t>
     3403<t>
     3404   If Content-Location is included in a response message and its value
     3405   differs from the effective request URI, then the origin server is
     3406   informing recipients that this representation has its own, presumably
     3407   more specific, identifier.  For a GET or HEAD request, this is an
     3408   indication that the effective request URI identifies a resource that
     3409   is subject to content negotiation and the selected representation for
     3410   this response can also be found at the identified URI.  For other
     3411   methods, such a Content-Location indicates that this representation
     3412   contains a report on the action's status and the same report is
     3413   available (for future access with GET) at the given URI.  For
     3414   example, a purchase transaction made via a POST request might
     3415   include a receipt document as the payload of the 200 response;
     3416   the Content-Location value provides an identifier for retrieving
     3417   a copy of that same receipt in the future.
     3418</t>
     3419<t>
     3420   If Content-Location is included in a request message, then it &MAY;
     3421   be interpreted by the origin server as an indication of where the
     3422   user agent originally obtained the content of the enclosed
     3423   representation (prior to any subsequent modification of the content
     3424   by that user agent).  In other words, the user agent is providing
     3425   the same representation metadata that it received with the original
     3426   representation.  However, such interpretation &MUST-NOT; be used to
     3427   alter the semantics of the method requested by the client.  For
     3428   example, if a client makes a PUT request on a negotiated resource
     3429   and the origin server accepts that PUT (without redirection), then the
     3430   new set of values for that resource is expected to be consistent with
     3431   the one representation supplied in that PUT; the Content-Location
     3432   cannot be used as a form of reverse content selection that
     3433   identifies only one of the negotiated representations to be updated.
     3434   If the user agent had wanted the latter semantics, it would have applied
     3435   the PUT directly to the Content-Location URI.
     3436</t>
     3437<t>
     3438   A Content-Location field received in a request message is transitory
     3439   information that &SHOULD-NOT; be saved with other representation
     3440   metadata for use in later responses.  The Content-Location's value
     3441   might be saved for use in other contexts, such as within source links
     3442   or other metadata.
     3443</t>
     3444<t>
     3445   A cache cannot assume that a representation with a Content-Location
     3446   different from the URI used to retrieve it can be used to respond to
     3447   later requests on that Content-Location URI.
     3448</t>
     3449<t>
     3450   If the Content-Location value is a partial URI, the partial URI is
     3451   interpreted relative to the effective request URI.
     3452</t>
     3453</section>
     3454
     3455<section title="Content-Type" anchor="header.content-type">
     3456  <iref primary="true" item="Content-Type header field" x:for-anchor=""/>
     3457  <iref primary="true" item="Header Fields" subitem="Content-Type" x:for-anchor=""/>
     3458  <x:anchor-alias value="Content-Type"/>
     3459<t>
     3460   The "Content-Type" header field indicates the media type of the
     3461   representation. In the case of responses to the HEAD method, the media type is
     3462   that which would have been sent had the request been a GET.
     3463</t>
     3464<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/>
     3465  <x:ref>Content-Type</x:ref> = <x:ref>media-type</x:ref>
     3466</artwork></figure>
     3467<t>
     3468   Media types are defined in <xref target="media.types"/>. An example of the field is
     3469</t>
     3470<figure><artwork type="example">
     3471  Content-Type: text/html; charset=ISO-8859-4
     3472</artwork></figure>
     3473<t>
     3474   Further discussion of Content-Type is provided in <xref target="representation.data"/>.
    29393475</t>
    29403476</section>
     
    33633899  User-Agent: CERN-LineMode/2.15 libwww/2.17b3
    33643900</artwork></figure>
    3365 </section>
    3366 
    3367 
    3368 <section title="Accept" anchor="header.accept">
    3369   <iref primary="true" item="Accept header field" x:for-anchor=""/>
    3370   <iref primary="true" item="Header Fields" subitem="Accept" x:for-anchor=""/>
    3371   <x:anchor-alias value="Accept"/>
    3372   <x:anchor-alias value="accept-ext"/>
    3373   <x:anchor-alias value="accept-params"/>
    3374   <x:anchor-alias value="media-range"/>
    3375 <t>
    3376    The "Accept" header field can be used by user agents to specify
    3377    response media types that are acceptable. Accept header fields can be used to
    3378    indicate that the request is specifically limited to a small set of desired
    3379    types, as in the case of a request for an in-line image.
    3380 </t>
    3381 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-ext"/>
    3382   <x:ref>Accept</x:ref> = #( <x:ref>media-range</x:ref> [ <x:ref>accept-params</x:ref> ] )
    3383  
    3384   <x:ref>media-range</x:ref>    = ( "*/*"
    3385                    / ( <x:ref>type</x:ref> "/" "*" )
    3386                    / ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> )
    3387                    ) *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>parameter</x:ref> )
    3388   <x:ref>accept-params</x:ref>  = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> *( <x:ref>accept-ext</x:ref> )
    3389   <x:ref>accept-ext</x:ref>     = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>token</x:ref> [ "=" <x:ref>word</x:ref> ]
    3390 </artwork></figure>
    3391 <t>
    3392    The asterisk "*" character is used to group media types into ranges,
    3393    with "*/*" indicating all media types and "type/*" indicating all
    3394    subtypes of that type. The media-range &MAY; include media type
    3395    parameters that are applicable to that range.
    3396 </t>
    3397 <t>
    3398    Each media-range &MAY; be followed by one or more accept-params,
    3399    beginning with the "q" parameter for indicating a relative quality
    3400    factor. The first "q" parameter (if any) separates the media-range
    3401    parameter(s) from the accept-params. Quality factors allow the user
    3402    or user agent to indicate the relative degree of preference for that
    3403    media-range, using the qvalue scale from 0 to 1 (qvalue;). The
    3404    default value is q=1.
    3405 </t>
    3406 <x:note>
    3407   <t>
    3408     <x:h>Note:</x:h> Use of the "q" parameter name to separate media type
    3409     parameters from Accept extension parameters is due to historical
    3410     practice. Although this prevents any media type parameter named
    3411     "q" from being used with a media range, such an event is believed
    3412     to be unlikely given the lack of any "q" parameters in the IANA
    3413     media type registry and the rare usage of any media type
    3414     parameters in Accept. Future media types are discouraged from
    3415     registering any parameter named "q".
    3416   </t>
    3417 </x:note>
    3418 <t>
    3419    The example
    3420 </t>
    3421 <figure><artwork type="example">
    3422   Accept: audio/*; q=0.2, audio/basic
    3423 </artwork></figure>
    3424 <t>
    3425    &SHOULD; be interpreted as "I prefer audio/basic, but send me any audio
    3426    type if it is the best available after an 80% mark-down in quality".
    3427 </t>
    3428 <t>
    3429    A request without any Accept header field implies that the user agent
    3430    will accept any media type in response.
    3431    If an Accept header field is present in a request and none of the
    3432    available representations for the response have a media type that is
    3433    listed as acceptable, the origin server &MAY; either
    3434    honor the Accept header field by sending a 406 (Not Acceptable) response
    3435    or disregard the Accept header field by treating the response as if
    3436    it is not subject to content negotiation.
    3437 </t>
    3438 <t>
    3439    A more elaborate example is
    3440 </t>
    3441 <figure><artwork type="example">
    3442   Accept: text/plain; q=0.5, text/html,
    3443           text/x-dvi; q=0.8, text/x-c
    3444 </artwork></figure>
    3445 <t>
    3446    Verbally, this would be interpreted as "text/html and text/x-c are
    3447    the preferred media types, but if they do not exist, then send the
    3448    text/x-dvi representation, and if that does not exist, send the text/plain
    3449    representation".
    3450 </t>
    3451 <t>
    3452    Media ranges can be overridden by more specific media ranges or
    3453    specific media types. If more than one media range applies to a given
    3454    type, the most specific reference has precedence. For example,
    3455 </t>
    3456 <figure><artwork type="example">
    3457   Accept: text/*, text/plain, text/plain;format=flowed, */*
    3458 </artwork></figure>
    3459 <t>
    3460    have the following precedence:
    3461    <list style="numbers">
    3462     <t>text/plain;format=flowed</t>
    3463     <t>text/plain</t>
    3464     <t>text/*</t>
    3465     <t>*/*</t>
    3466    </list>
    3467 </t>
    3468 <t>
    3469    The media type quality factor associated with a given type is
    3470    determined by finding the media range with the highest precedence
    3471    which matches that type. For example,
    3472 </t>
    3473 <figure><artwork type="example">
    3474   Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1,
    3475           text/html;level=2;q=0.4, */*;q=0.5
    3476 </artwork></figure>
    3477 <t>
    3478    would cause the following values to be associated:
    3479 </t>
    3480 <texttable align="left">
    3481   <ttcol>Media Type</ttcol><ttcol>Quality Value</ttcol>
    3482   <c>text/html;level=1</c>    <c>1</c>
    3483   <c>text/html</c>            <c>0.7</c>
    3484   <c>text/plain</c>           <c>0.3</c>
    3485   <c>image/jpeg</c>           <c>0.5</c>
    3486   <c>text/html;level=2</c>    <c>0.4</c>
    3487   <c>text/html;level=3</c>    <c>0.7</c>
    3488 </texttable>
    3489 <t>
    3490       <x:h>Note:</x:h> A user agent might be provided with a default set of quality
    3491       values for certain media ranges. However, unless the user agent is
    3492       a closed system which cannot interact with other rendering agents,
    3493       this default set ought to be configurable by the user.
    3494 </t>
    3495 </section>
    3496 
    3497 <section title="Accept-Charset" anchor="header.accept-charset">
    3498   <iref primary="true" item="Accept-Charset header field" x:for-anchor=""/>
    3499   <iref primary="true" item="Header Fields" subitem="Accept-Charset" x:for-anchor=""/>
    3500   <x:anchor-alias value="Accept-Charset"/>
    3501 <t>
    3502    The "Accept-Charset" header field can be used by user agents to
    3503    indicate what character encodings are acceptable in a response
    3504    payload. This field allows
    3505    clients capable of understanding more comprehensive or special-purpose
    3506    character encodings to signal that capability to a server which is capable of
    3507    representing documents in those character encodings.
    3508 </t>
    3509 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/>
    3510   <x:ref>Accept-Charset</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" )
    3511                          [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    3512 </artwork></figure>
    3513 <t>
    3514    Character encoding values (a.k.a., charsets) are described in
    3515    <xref target="character.sets"/>. Each charset &MAY; be given an
    3516    associated quality value which represents the user's preference
    3517    for that charset. The default value is q=1. An example is
    3518 </t>
    3519 <figure><artwork type="example">
    3520   Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
    3521 </artwork></figure>
    3522 <t>
    3523    The special value "*", if present in the Accept-Charset field,
    3524    matches every character encoding which is not mentioned elsewhere in the
    3525    Accept-Charset field. If no "*" is present in an Accept-Charset field, then
    3526    all character encodings not explicitly mentioned get a quality value of 0.
    3527 </t>
    3528 <t>
    3529    A request without any Accept-Charset header field implies that the user
    3530    agent will accept any character encoding in response.
    3531    If an Accept-Charset header field is present in a request and none of the
    3532    available representations for the response have a character encoding that
    3533    is listed as acceptable, the origin server &MAY; either honor the
    3534    Accept-Charset header field by sending a 406 (Not Acceptable) response or
    3535    disregard the Accept-Charset header field by treating the response as if
    3536    it is not subject to content negotiation.
    3537 </t>
    3538 </section>
    3539 
    3540 <section title="Accept-Encoding" anchor="header.accept-encoding">
    3541   <iref primary="true" item="Accept-Encoding header field" x:for-anchor=""/>
    3542   <iref primary="true" item="Header Fields" subitem="Accept-Encoding" x:for-anchor=""/>
    3543   <x:anchor-alias value="Accept-Encoding"/>
    3544   <x:anchor-alias value="codings"/>
    3545 <t>
    3546    The "Accept-Encoding" header field can be used by user agents to
    3547    indicate what response content-codings (<xref target="content.codings"/>)
    3548    are acceptable in the response.  An "identity" token is used as a synonym
    3549    for "no encoding" in order to communicate when no encoding is preferred.
    3550 </t>
    3551 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/>
    3552   <x:ref>Accept-Encoding</x:ref>  = #( <x:ref>codings</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    3553   <x:ref>codings</x:ref>          = <x:ref>content-coding</x:ref> / "identity" / "*"
    3554 </artwork></figure>
    3555 <t>
    3556    Each codings value &MAY; be given an associated quality value which
    3557    represents the preference for that encoding. The default value is q=1.
    3558 </t>
    3559 <t>
    3560    For example,
    3561 </t>
    3562 <figure><artwork type="example">
    3563   Accept-Encoding: compress, gzip
    3564   Accept-Encoding:
    3565   Accept-Encoding: *
    3566   Accept-Encoding: compress;q=0.5, gzip;q=1.0
    3567   Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
    3568 </artwork></figure>
    3569 <t>
    3570    A server tests whether a content-coding for a given representation is
    3571    acceptable, according to an Accept-Encoding field, using these rules:
    3572   <list style="numbers">
    3573       <t>The special "*" symbol in an Accept-Encoding field matches any
    3574          available content-coding not explicitly listed in the header
    3575          field.</t>
    3576 
    3577       <t>If the representation has no content-coding, then it is acceptable
    3578          by default unless specifically excluded by the Accept-Encoding field
    3579          stating either "identity;q=0" or "*;q=0" without a more specific
    3580          entry for "identity".</t>
    3581 
    3582       <t>If the representation's content-coding is one of the content-codings
    3583          listed in the Accept-Encoding field, then it is acceptable unless
    3584          it is accompanied by a qvalue of 0. (As defined in qvalue;, a
    3585          qvalue of 0 means "not acceptable".)</t>
    3586 
    3587       <t>If multiple content-codings are acceptable, then the acceptable
    3588          content-coding with the highest non-zero qvalue is preferred.</t>
    3589   </list>
    3590 </t>
    3591 <t>
    3592    An Accept-Encoding header field with a combined field-value that is empty
    3593    implies that the user agent does not want any content-coding in response.
    3594    If an Accept-Encoding header field is present in a request and none of the
    3595    available representations for the response have a content-coding that
    3596    is listed as acceptable, the origin server &SHOULD; send a response
    3597    without any content-coding.
    3598 </t>
    3599 <t>
    3600    A request without an Accept-Encoding header field implies that the user
    3601    agent will accept any content-coding in response, but a representation
    3602    without content-coding is preferred for compatibility with the widest
    3603    variety of user agents.
    3604 </t>
    3605 <x:note>
    3606   <t>
    3607     <x:h>Note:</x:h> Most HTTP/1.0 applications do not recognize or obey qvalues
    3608     associated with content-codings. This means that qvalues will not
    3609     work and are not permitted with x-gzip or x-compress.
    3610   </t>
    3611 </x:note>
    3612 </section>
    3613 
    3614 <section title="Accept-Language" anchor="header.accept-language">
    3615   <iref primary="true" item="Accept-Language header field" x:for-anchor=""/>
    3616   <iref primary="true" item="Header Fields" subitem="Accept-Language" x:for-anchor=""/>
    3617   <x:anchor-alias value="Accept-Language"/>
    3618   <x:anchor-alias value="language-range"/>
    3619 <t>
    3620    The "Accept-Language" header field can be used by user agents to
    3621    indicate the set of natural languages that are preferred in the response.
    3622    Language tags are defined in <xref target="language.tags"/>.
    3623 </t>
    3624 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/>
    3625   <x:ref>Accept-Language</x:ref> =
    3626                     1#( <x:ref>language-range</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    3627   <x:ref>language-range</x:ref>  =
    3628             &lt;language-range, defined in <xref target="RFC4647" x:fmt="," x:sec="2.1"/>&gt;
    3629 </artwork></figure>
    3630 <t>
    3631    Each language-range can be given an associated quality value which
    3632    represents an estimate of the user's preference for the languages
    3633    specified by that range. The quality value defaults to "q=1". For
    3634    example,
    3635 </t>
    3636 <figure><artwork type="example">
    3637   Accept-Language: da, en-gb;q=0.8, en;q=0.7
    3638 </artwork></figure>
    3639 <t>
    3640    would mean: "I prefer Danish, but will accept British English and
    3641    other types of English".
    3642    (see also <xref target="RFC4647" x:sec="2.3" x:fmt="of"/>)
    3643 </t>
    3644 <t>
    3645    For matching, <xref target="RFC4647" x:sec="3" x:fmt="of"/> defines
    3646    several matching schemes. Implementations can offer the most appropriate
    3647    matching scheme for their requirements.
    3648 </t>
    3649 <x:note>
    3650   <t>
    3651     <x:h>Note:</x:h> The "Basic Filtering" scheme (<xref target="RFC4647"
    3652     x:fmt="," x:sec="3.3.1"/>) is identical to the matching scheme that was
    3653     previously defined in <xref target="RFC2616" x:fmt="of" x:sec="14.4"/>.
    3654   </t>
    3655 </x:note>
    3656 <t>
    3657    It might be contrary to the privacy expectations of the user to send
    3658    an Accept-Language header field with the complete linguistic preferences of
    3659    the user in every request. For a discussion of this issue, see
    3660    <xref target="privacy.issues.connected.to.accept.header.fields"/>.
    3661 </t>
    3662 <t>
    3663    As intelligibility is highly dependent on the individual user, it is
    3664    recommended that client applications make the choice of linguistic
    3665    preference available to the user. If the choice is not made
    3666    available, then the Accept-Language header field &MUST-NOT; be given in
    3667    the request.
    3668 </t>
    3669 <x:note>
    3670   <t>
    3671     <x:h>Note:</x:h> When making the choice of linguistic preference available to
    3672     the user, we remind implementors of  the fact that users are not
    3673     familiar with the details of language matching as described above,
    3674     and ought to be provided appropriate guidance. As an example, users
    3675     might assume that on selecting "en-gb", they will be served any
    3676     kind of English document if British English is not available. A
    3677     user agent might suggest in such a case to add "en" to get the
    3678     best matching behavior.
    3679   </t>
    3680 </x:note>
    3681 </section>
    3682 
    3683 <section title="Content-Encoding" anchor="header.content-encoding">
    3684   <iref primary="true" item="Content-Encoding header field" x:for-anchor=""/>
    3685   <iref primary="true" item="Header Fields" subitem="Content-Encoding" x:for-anchor=""/>
    3686   <x:anchor-alias value="Content-Encoding"/>
    3687 <t>
    3688    The "Content-Encoding" header field indicates what content-codings
    3689    have been applied to the representation beyond those inherent in the media
    3690    type, and thus what decoding mechanisms have to be applied in order to obtain
    3691    the media-type referenced by the Content-Type header field.
    3692    Content-Encoding is primarily used to allow a representation to be
    3693    compressed without losing the identity of its underlying media type.
    3694 </t>
    3695 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/>
    3696   <x:ref>Content-Encoding</x:ref> = 1#<x:ref>content-coding</x:ref>
    3697 </artwork></figure>
    3698 <t>
    3699    Content codings are defined in <xref target="content.codings"/>. An example of its use is
    3700 </t>
    3701 <figure><artwork type="example">
    3702   Content-Encoding: gzip
    3703 </artwork></figure>
    3704 <t>
    3705    The content-coding is a characteristic of the representation.
    3706    Typically, the representation body is stored with this
    3707    encoding and is only decoded before rendering or analogous usage.
    3708    However, a transforming proxy &MAY; modify the content-coding if the
    3709    new coding is known to be acceptable to the recipient, unless the
    3710    "no-transform" cache-control directive is present in the message.
    3711 </t>
    3712 <t>
    3713    If the media type includes an inherent encoding, such as a data format
    3714    that is always compressed, then that encoding would not be restated as
    3715    a Content-Encoding even if it happens to be the same algorithm as one
    3716    of the content-codings.  Such a content-coding would only be listed if,
    3717    for some bizarre reason, it is applied a second time to form the
    3718    representation.  Likewise, an origin server might choose to publish the
    3719    same payload data as multiple representations that differ only in whether
    3720    the coding is defined as part of Content-Type or Content-Encoding, since
    3721    some user agents will behave differently in their handling of each
    3722    response (e.g., open a "Save as ..." dialog instead of automatic
    3723    decompression and rendering of content).
    3724 </t>
    3725 <t>
    3726    A representation that has a content-coding applied to it &MUST; include
    3727    a Content-Encoding header field (<xref target="header.content-encoding"/>)
    3728    that lists the content-coding(s) applied.
    3729 </t>
    3730 <t>
    3731    If multiple encodings have been applied to a representation, the content
    3732    codings &MUST; be listed in the order in which they were applied.
    3733    Additional information about the encoding parameters &MAY; be provided
    3734    by other header fields not defined by this specification.
    3735 </t>
    3736 <t>
    3737    If the content-coding of a representation in a request message is not
    3738    acceptable to the origin server, the server &SHOULD; respond with a
    3739    status code of 415 (Unsupported Media Type).
    3740 </t>
    3741 </section>
    3742 
    3743 <section title="Content-Language" anchor="header.content-language">
    3744   <iref primary="true" item="Content-Language header field" x:for-anchor=""/>
    3745   <iref primary="true" item="Header Fields" subitem="Content-Language" x:for-anchor=""/>
    3746   <x:anchor-alias value="Content-Language"/>
    3747 <t>
    3748    The "Content-Language" header field describes the natural
    3749    language(s) of the intended audience for the representation. Note that this might
    3750    not be equivalent to all the languages used within the representation.
    3751 </t>
    3752 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/>
    3753   <x:ref>Content-Language</x:ref> = 1#<x:ref>language-tag</x:ref>
    3754 </artwork></figure>
    3755 <t>
    3756    Language tags are defined in <xref target="language.tags"/>. The primary purpose of
    3757    Content-Language is to allow a user to identify and differentiate
    3758    representations according to the user's own preferred language. Thus, if the
    3759    body content is intended only for a Danish-literate audience, the
    3760    appropriate field is
    3761 </t>
    3762 <figure><artwork type="example">
    3763   Content-Language: da
    3764 </artwork></figure>
    3765 <t>
    3766    If no Content-Language is specified, the default is that the content
    3767    is intended for all language audiences. This might mean that the
    3768    sender does not consider it to be specific to any natural language,
    3769    or that the sender does not know for which language it is intended.
    3770 </t>
    3771 <t>
    3772    Multiple languages &MAY; be listed for content that is intended for
    3773    multiple audiences. For example, a rendition of the "Treaty of
    3774    Waitangi", presented simultaneously in the original Maori and English
    3775    versions, would call for
    3776 </t>
    3777 <figure><artwork type="example">
    3778   Content-Language: mi, en
    3779 </artwork></figure>
    3780 <t>
    3781    However, just because multiple languages are present within a representation
    3782    does not mean that it is intended for multiple linguistic audiences.
    3783    An example would be a beginner's language primer, such as "A First
    3784    Lesson in Latin", which is clearly intended to be used by an
    3785    English-literate audience. In this case, the Content-Language would
    3786    properly only include "en".
    3787 </t>
    3788 <t>
    3789    Content-Language &MAY; be applied to any media type &mdash; it is not
    3790    limited to textual documents.
    3791 </t>
    3792 </section>
    3793 
    3794 <section title="Content-Location" anchor="header.content-location">
    3795   <iref primary="true" item="Content-Location header field" x:for-anchor=""/>
    3796   <iref primary="true" item="Header Fields" subitem="Content-Location" x:for-anchor=""/>
    3797   <x:anchor-alias value="Content-Location"/>
    3798 <t>
    3799    The "Content-Location" header field supplies a URI that can be used
    3800    as a specific identifier for the representation in this message.
    3801    In other words, if one were to perform a GET on this URI at the time
    3802    of this message's generation, then a 200 response would contain the
    3803    same representation that is enclosed as payload in this message.
    3804 </t>
    3805 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Location"/>
    3806   <x:ref>Content-Location</x:ref> = <x:ref>absolute-URI</x:ref> / <x:ref>partial-URI</x:ref>
    3807 </artwork></figure>
    3808 <t>
    3809    The Content-Location value is not a replacement for the effective
    3810    Request URI (&effective-request-uri;).  It is representation metadata.
    3811    It has the same syntax and semantics as the header field of the same name
    3812    defined for MIME body parts in <xref target="RFC2557" x:fmt="of" x:sec="4"/>.
    3813    However, its appearance in an HTTP message has some special implications
    3814    for HTTP recipients.
    3815 </t>
    3816 <t>
    3817    If Content-Location is included in a response message and its value
    3818    is the same as the effective request URI, then the response payload
    3819    &SHOULD; be considered a current representation of that resource.
    3820    For a GET or HEAD request, this is the same as the default semantics
    3821    when no Content-Location is provided by the server.  For a state-changing
    3822    request like PUT or POST, it implies that the server's response contains
    3823    the new representation of that resource, thereby distinguishing it from
    3824    representations that might only report about the action (e.g., "It worked!").
    3825    This allows authoring applications to update their local copies without
    3826    the need for a subsequent GET request.
    3827 </t>
    3828 <t>
    3829    If Content-Location is included in a response message and its value
    3830    differs from the effective request URI, then the origin server is
    3831    informing recipients that this representation has its own, presumably
    3832    more specific, identifier.  For a GET or HEAD request, this is an
    3833    indication that the effective request URI identifies a resource that
    3834    is subject to content negotiation and the selected representation for
    3835    this response can also be found at the identified URI.  For other
    3836    methods, such a Content-Location indicates that this representation
    3837    contains a report on the action's status and the same report is
    3838    available (for future access with GET) at the given URI.  For
    3839    example, a purchase transaction made via a POST request might
    3840    include a receipt document as the payload of the 200 response;
    3841    the Content-Location value provides an identifier for retrieving
    3842    a copy of that same receipt in the future.
    3843 </t>
    3844 <t>
    3845    If Content-Location is included in a request message, then it &MAY;
    3846    be interpreted by the origin server as an indication of where the
    3847    user agent originally obtained the content of the enclosed
    3848    representation (prior to any subsequent modification of the content
    3849    by that user agent).  In other words, the user agent is providing
    3850    the same representation metadata that it received with the original
    3851    representation.  However, such interpretation &MUST-NOT; be used to
    3852    alter the semantics of the method requested by the client.  For
    3853    example, if a client makes a PUT request on a negotiated resource
    3854    and the origin server accepts that PUT (without redirection), then the
    3855    new set of values for that resource is expected to be consistent with
    3856    the one representation supplied in that PUT; the Content-Location
    3857    cannot be used as a form of reverse content selection that
    3858    identifies only one of the negotiated representations to be updated.
    3859    If the user agent had wanted the latter semantics, it would have applied
    3860    the PUT directly to the Content-Location URI.
    3861 </t>
    3862 <t>
    3863    A Content-Location field received in a request message is transitory
    3864    information that &SHOULD-NOT; be saved with other representation
    3865    metadata for use in later responses.  The Content-Location's value
    3866    might be saved for use in other contexts, such as within source links
    3867    or other metadata.
    3868 </t>
    3869 <t>
    3870    A cache cannot assume that a representation with a Content-Location
    3871    different from the URI used to retrieve it can be used to respond to
    3872    later requests on that Content-Location URI.
    3873 </t>
    3874 <t>
    3875    If the Content-Location value is a partial URI, the partial URI is
    3876    interpreted relative to the effective request URI.
    3877 </t>
    3878 </section>
    3879 
    3880 <section title="Content-Type" anchor="header.content-type">
    3881   <iref primary="true" item="Content-Type header field" x:for-anchor=""/>
    3882   <iref primary="true" item="Header Fields" subitem="Content-Type" x:for-anchor=""/>
    3883   <x:anchor-alias value="Content-Type"/>
    3884 <t>
    3885    The "Content-Type" header field indicates the media type of the
    3886    representation. In the case of responses to the HEAD method, the media type is
    3887    that which would have been sent had the request been a GET.
    3888 </t>
    3889 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/>
    3890   <x:ref>Content-Type</x:ref> = <x:ref>media-type</x:ref>
    3891 </artwork></figure>
    3892 <t>
    3893    Media types are defined in <xref target="media.types"/>. An example of the field is
    3894 </t>
    3895 <figure><artwork type="example">
    3896   Content-Type: text/html; charset=ISO-8859-4
    3897 </artwork></figure>
    3898 <t>
    3899    Further discussion of Content-Type is provided in <xref target="representation.data"/>.
    3900 </t>
    39013901</section>
    39023902
Note: See TracChangeset for help on using the changeset viewer.