Ignore:
Timestamp:
07/01/13 09:02:41 (10 years ago)
Author:
fielding@…
Message:

(editorial) move notes on 406 to 300 and include a reference to Link; miscellaneous proofreading edits

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

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p2-semantics.html

    r2097 r2098  
    449449  }
    450450  @bottom-center {
    451        content: "Expires July 10, 2013";
     451       content: "Expires July 11, 2013";
    452452  }
    453453  @bottom-right {
     
    494494      <meta name="dct.creator" content="Reschke, J. F.">
    495495      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest">
    496       <meta name="dct.issued" scheme="ISO8601" content="2013-01-06">
     496      <meta name="dct.issued" scheme="ISO8601" content="2013-01-07">
    497497      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    498498      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.">
     
    522522            <tr>
    523523               <td class="left">Intended status: Standards Track</td>
    524                <td class="right">January 6, 2013</td>
     524               <td class="right">January 7, 2013</td>
    525525            </tr>
    526526            <tr>
    527                <td class="left">Expires: July 10, 2013</td>
     527               <td class="left">Expires: July 11, 2013</td>
    528528               <td class="right"></td>
    529529            </tr>
     
    553553         in progress”.
    554554      </p>
    555       <p>This Internet-Draft will expire on July 10, 2013.</p>
     555      <p>This Internet-Draft will expire on July 11, 2013.</p>
    556556      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    557557      <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
     
    15801580      <p id="rfc.section.4.3.7.p.6">A server generating a successful response to OPTIONS <em class="bcp14">SHOULD</em> send any header fields that might indicate optional features implemented by the server and applicable to the target resource
    15811581         (e.g., <a href="#header.allow" class="smpl">Allow</a>), including potential extensions not defined by this specification. The response payload, if any, might also describe the
    1582          communication options in a machine or human-readable representation. A standard format for such a payload is not defined by
    1583          this specification, but might be defined by future extensions to HTTP. A server <em class="bcp14">MUST</em> generate a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> field with a value of "0" if no payload body is to be sent in the response.
     1582         communication options in a machine or human-readable representation. A standard format for such a representation is not defined
     1583         by this specification, but might be defined by future extensions to HTTP. A server <em class="bcp14">MUST</em> generate a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> field with a value of "0" if no payload body is to be sent in the response.
    15841584      </p>
    15851585      <p id="rfc.section.4.3.7.p.7">A client <em class="bcp14">MAY</em> send a <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field in an OPTIONS request to target a specific recipient in the request chain (see <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section&nbsp;5.1.2</a>). A proxy <em class="bcp14">MUST NOT</em> generate a Max-Forwards header field while forwarding a request unless that request was received with a Max-Forwards field.
     
    21312131      </p>
    21322132      <p id="rfc.section.6.p.3">For example, if an unrecognized status code of 471 is received by a client, the client can assume that there was something
    2133          wrong with its request and treat the response as if it had received a 400 status code. If the response includes a message
    2134          body, it will usually include a representation that explains the response status.
     2133         wrong with its request and treat the response as if it had received a 400 status code. The response message will usually contain
     2134         a representation that explains the status.
    21352135      </p>
    21362136      <p id="rfc.section.6.p.4">The first digit of the status-code defines the class of response. The last two digits do not have any categorization role.
     
    24102410      <div id="rfc.iref.72"></div>
    24112411      <h3 id="rfc.section.6.3.1"><a href="#rfc.section.6.3.1">6.3.1</a>&nbsp;<a id="status.200" href="#status.200">200 OK</a></h3>
    2412       <p id="rfc.section.6.3.1.p.1">The <dfn>200 (OK)</dfn> status code indicates that the request has succeeded. The payload sent in the response is dependent on the method used in
    2413          the request, for example:
     2412      <p id="rfc.section.6.3.1.p.1">The <dfn>200 (OK)</dfn> status code indicates that the request has succeeded. The meaning of a payload sent in the response depends on the request
     2413         method, as follows:
    24142414      </p>
    24152415      <dl>
     
    24182418         </dd>
    24192419         <dt>HEAD</dt>
    2420          <dd>the same representation as GET, except without the message body;</dd>
     2420         <dd>the same representation as GET, but without the representation data;</dd>
    24212421         <dt>POST</dt>
    24222422         <dd>a representation describing or containing the result of the action;</dd>
     
    24402440      <p id="rfc.section.6.3.3.p.1">The <dfn>202 (Accepted)</dfn> status code indicates that the request has been accepted for processing, but the processing has not been completed. The request
    24412441         might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. There is no facility
    2442          for re-sending a status code from an asynchronous operation such as this.
     2442         in HTTP for re-sending a status code from an asynchronous operation.
    24432443      </p>
    24442444      <p id="rfc.section.6.3.3.p.2">The 202 response is intentionally non-committal. Its purpose is to allow a server to accept a request for some other process
    24452445         (perhaps a batch-oriented process that is only run once per day) without requiring that the user agent's connection to the
    24462446         server persist until the process is completed. The representation sent with this response ought to describe the request's
    2447          current status and either a pointer to a status monitor or some estimate of when the user can expect the request to be fulfilled.
     2447         current status and point to (or embed) a status monitor that can provide the user with an estimate of when the request will
     2448         be fulfilled.
    24482449      </p>
    24492450      <div id="rfc.iref.72"></div>
     
    24582459      <h3 id="rfc.section.6.3.5"><a href="#rfc.section.6.3.5">6.3.5</a>&nbsp;<a id="status.204" href="#status.204">204 No Content</a></h3>
    24592460      <p id="rfc.section.6.3.5.p.1">The <dfn>204 (No Content)</dfn> status code indicates that the server has successfully fulfilled the request and that there is no additional content to send
    2460          in the response payload body. Metadata in the response header fields refer to the <a href="#resources" class="smpl">target resource</a> and its current representation after the requested action.
     2461         in the response payload body. Metadata in the response header fields refer to the <a href="#resources" class="smpl">target resource</a> and its selected representation after the requested action was applied.
    24612462      </p>
    24622463      <p id="rfc.section.6.3.5.p.2">For example, if a 204 status code is received in response to a PUT request and the response contains an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> header field, then the PUT was successful and the ETag field-value contains the entity-tag for the new representation of that
     
    24722473         automated data transfers to be prevalent, such as within distributed version control systems.
    24732474      </p>
    2474       <p id="rfc.section.6.3.5.p.5">A 204 response does not include a message body, and thus is always terminated by the first empty line after the header fields.</p>
     2475      <p id="rfc.section.6.3.5.p.5">A 204 response is terminated by the first empty line after the header fields because it cannot contain a message body.</p>
    24752476      <div id="rfc.iref.72"></div>
    24762477      <h3 id="rfc.section.6.3.6"><a href="#rfc.section.6.3.6">6.3.6</a>&nbsp;<a id="status.205" href="#status.205">205 Reset Content</a></h3>
     
    25302531         most appropriate representation(s) for its needs (<a href="#content.negotiation" title="Content Negotiation">Section&nbsp;3.4</a>).
    25312532      </p>
    2532       <p id="rfc.section.6.4.1.p.2">For request methods other than HEAD, the server <em class="bcp14">SHOULD</em> generate a payload in the 300 response containing a list of representation metadata and URI reference(s) from which the user
     2533      <p id="rfc.section.6.4.1.p.2">If the server has a preferred choice, the server <em class="bcp14">SHOULD</em> generate a <a href="#header.location" class="smpl">Location</a> header field containing a preferred choice's URI reference. The user agent <em class="bcp14">MAY</em> use the Location field value for automatic redirection.
     2534      </p>
     2535      <p id="rfc.section.6.4.1.p.3">For request methods other than HEAD, the server <em class="bcp14">SHOULD</em> generate a payload in the 300 response containing a list of representation metadata and URI reference(s) from which the user
    25332536         or user agent can choose the one most preferred. The user agent <em class="bcp14">MAY</em> make a selection from that list automatically, depending upon the list format, but this specification does not define a standard
    25342537         for such automatic selection.
    25352538      </p>
    2536       <p id="rfc.section.6.4.1.p.3">If the server has a preferred choice, the server <em class="bcp14">SHOULD</em> generate a <a href="#header.location" class="smpl">Location</a> header field containing a preferred choice's URI reference. The user agent <em class="bcp14">MAY</em> use the Location field value for automatic redirection.
    2537       </p>
    25382539      <p id="rfc.section.6.4.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 300 responses.
    25392540      </p>
     2541      <div class="note" id="rfc.section.6.4.1.p.5">
     2542         <p> <b>Note:</b> The original proposal for 300 defined the URI header field as providing a list of alternative representations, such that it
     2543            would be usable for 200, 300, and 406 responses and be transferred in responses to the HEAD method. However, lack of deployment
     2544            and disagreement over syntax led to both URI and Alternates (a subsequent proposal) being dropped from this specification.
     2545            It is possible to communicate the list using a set of Link header fields <a href="#RFC5988" id="rfc.xref.RFC5988.1"><cite title="Web Linking">[RFC5988]</cite></a>, each with a relationship of "alternate", though deployment is a chicken-and-egg problem.
     2546         </p>
     2547      </div>
    25402548      <div id="rfc.iref.73"></div>
    25412549      <h3 id="rfc.section.6.4.2"><a href="#rfc.section.6.4.2">6.4.2</a>&nbsp;<a id="status.301" href="#status.301">301 Moved Permanently</a></h3>
     
    26452653      <p id="rfc.section.6.5.6.p.2">The server <em class="bcp14">SHOULD</em> generate a payload containing a list of available representation characteristics and corresponding resource identifiers from
    26462654         which the user or user agent can choose the one most appropriate. A user agent <em class="bcp14">MAY</em> automatically select the most appropriate choice from that list. However, this specification does not define any standard
    2647          for such automatic selection. [The original proposal for 406 defined the Alternates header field as providing a list of alternative
    2648          representations, such that it would be available for responses to the HEAD method, but lack of deployment led to Alternates
    2649          being dropped from the specification.]
     2655         for such automatic selection, as described in <a href="#status.300" id="rfc.xref.status.300.2" title="300 Multiple Choices">Section&nbsp;6.4.1</a>.
    26502656      </p>
    26512657      <div id="rfc.iref.74"></div>
     
    33283334                  <td class="left">300</td>
    33293335                  <td class="left">Multiple Choices</td>
    3330                   <td class="left"> <a href="#status.300" id="rfc.xref.status.300.2" title="300 Multiple Choices">Section&nbsp;6.4.1</a>
     3336                  <td class="left"> <a href="#status.300" id="rfc.xref.status.300.3" title="300 Multiple Choices">Section&nbsp;6.4.1</a>
    33313337                  </td>
    33323338               </tr>
     
    39553961      <h2 id="rfc.references.2"><a href="#rfc.section.11.2" id="rfc.section.11.2">11.2</a> Informative References
    39563962      </h2>
    3957       <table>                                       
     3963      <table>                                         
    39583964         <tr>
    39593965            <td class="reference"><b id="BCP13">[BCP13]</b></td>
     
    40424048         </tr>
    40434049         <tr>
     4050            <td class="reference"><b id="RFC5988">[RFC5988]</b></td>
     4051            <td class="top">Nottingham, M., “<a href="http://tools.ietf.org/html/rfc5988">Web Linking</a>”, RFC&nbsp;5988, October&nbsp;2010.
     4052            </td>
     4053         </tr>
     4054         <tr>
    40444055            <td class="reference"><b id="RFC6265">[RFC6265]</b></td>
    40454056            <td class="top"><a href="mailto:abarth@eecs.berkeley.edu" title="&#xA;        University of California, Berkeley&#xA;      ">Barth, A.</a>, “<a href="http://tools.ietf.org/html/rfc6265">HTTP State Management Mechanism</a>”, RFC&nbsp;6265, April&nbsp;2011.
     
    43814392            </li>
    43824393            <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul>
    4383                   <li>300 Multiple Choices (status code)&nbsp;&nbsp;<a href="#rfc.xref.status.300.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.1</b></a>, <a href="#rfc.xref.status.300.2">8.2.3</a></li>
     4394                  <li>300 Multiple Choices (status code)&nbsp;&nbsp;<a href="#rfc.xref.status.300.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.1</b></a>, <a href="#rfc.xref.status.300.2">6.5.6</a>, <a href="#rfc.xref.status.300.3">8.2.3</a></li>
    43844395                  <li>301 Moved Permanently (status code)&nbsp;&nbsp;<a href="#rfc.xref.status.301.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.2</b></a>, <a href="#rfc.xref.status.301.2">8.2.3</a>, <a href="#rfc.xref.status.301.3">B</a></li>
    43854396                  <li>302 Found (status code)&nbsp;&nbsp;<a href="#rfc.xref.status.302.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.3</b></a>, <a href="#rfc.xref.status.302.2">8.2.3</a>, <a href="#rfc.xref.status.302.3">B</a></li>
     
    47114722                  <li><em>RFC5789</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5789.1">4.3.4</a>, <a href="#RFC5789"><b>11.2</b></a></li>
    47124723                  <li><em>RFC5987</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5987.1">8.3.1</a>, <a href="#RFC5987"><b>11.2</b></a></li>
     4724                  <li><em>RFC5988</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5988.1">6.4.1</a>, <a href="#RFC5988"><b>11.2</b></a></li>
    47134725                  <li><em>RFC6265</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC6265.1">4.3.8</a>, <a href="#RFC6265"><b>11.2</b></a></li>
    47144726                  <li><em>RFC6266</em>&nbsp;&nbsp;<a href="#RFC6266"><b>11.2</b></a>, <a href="#rfc.xref.RFC6266.1">B</a></li>
  • draft-ietf-httpbis/latest/p2-semantics.xml

    r2097 r2098  
    16541654   The response payload, if any, might also describe the communication options
    16551655   in a machine or human-readable representation. A standard format for such a
    1656    payload is not defined by this specification, but might be defined by
     1656   representation is not defined by this specification, but might be defined by
    16571657   future extensions to HTTP.
    16581658   A server &MUST; generate a <x:ref>Content-Length</x:ref> field with a value
     
    25162516   For example, if an unrecognized status code of 471 is received by a client,
    25172517   the client can assume that there was something wrong with its request and
    2518    treat the response as if it had received a 400 status code. If the response
    2519    includes a message body, it will usually include a representation that
    2520    explains the response status.
     2518   treat the response as if it had received a 400 status code. The response
     2519   message will usually contain a representation that explains the status.
    25212520</t>
    25222521<t>
     
    27002699<t>
    27012700   The <x:dfn>200 (OK)</x:dfn> status code indicates that the request has
    2702    succeeded. The payload sent in the response
    2703    is dependent on the method used in the request, for example:
     2701   succeeded. The meaning of a payload sent in the response depends on the
     2702   request method, as follows:
    27042703  <list style="hanging">
    27052704    <t hangText="GET">
     
    27072706    </t>
    27082707    <t hangText="HEAD">
    2709       the same representation as GET, except without the message body;
     2708      the same representation as GET, but without the representation data;
    27102709    </t>
    27112710    <t hangText="POST">
     
    27542753   completed. The request might or might not eventually be acted upon, as it
    27552754   might be disallowed when processing actually takes place. There is no
    2756    facility for re-sending a status code from an asynchronous operation such
    2757    as this.
     2755   facility in HTTP for re-sending a status code from an asynchronous
     2756   operation.
    27582757</t>
    27592758<t>
     
    27632762   requiring that the user agent's connection to the server persist
    27642763   until the process is completed. The representation sent with this
    2765    response ought to describe the request's current status
    2766    and either a pointer to a status monitor or some estimate of when the
    2767    user can expect the request to be fulfilled.
     2764   response ought to describe the request's current status and point to
     2765   (or embed) a status monitor that can provide the user with an estimate of
     2766   when the request will be fulfilled.
    27682767</t>
    27692768</section>
     
    27962795   has successfully fulfilled the request and that there is no additional
    27972796   content to send in the response payload body. Metadata in the response
    2798    header fields refer to the <x:ref>target resource</x:ref> and its current representation
    2799    after the requested action.
     2797   header fields refer to the <x:ref>target resource</x:ref> and its
     2798   selected representation after the requested action was applied.
    28002799</t>
    28012800<t>
     
    28222821</t>
    28232822<t>
    2824    A 204 response does not include a message body, and thus is always
    2825    terminated by the first empty line after the header fields.
     2823   A 204 response is terminated by the first empty line after the header
     2824   fields because it cannot contain a message body.
    28262825</t>
    28272826</section>
     
    29412940<t>
    29422941   The <x:dfn>300 (Multiple Choices)</x:dfn> status code indicates that the
    2943    <x:ref>target resource</x:ref> has more than one representation, each with its own more
    2944    specific identifier, and information about the alternatives is being
    2945    provided so that the user (or user agent) can select a preferred
     2942   <x:ref>target resource</x:ref> has more than one representation, each with
     2943   its own more specific identifier, and information about the alternatives is
     2944   being provided so that the user (or user agent) can select a preferred
    29462945   representation by redirecting its request to one or more of those
    29472946   identifiers. In other words, the server desires that the user agent engage
    29482947   in reactive negotiation to select the most appropriate representation(s)
    29492948   for its needs (&content-negotiation;).
     2949</t>
     2950<t>
     2951   If the server has a preferred choice, the server &SHOULD; generate a
     2952   <x:ref>Location</x:ref> header field containing a preferred choice's URI
     2953   reference. The user agent &MAY; use the Location field value for automatic
     2954   redirection.
    29502955</t>
    29512956<t>
     
    29582963</t>
    29592964<t>
    2960    If the server has a preferred choice, the server &SHOULD; generate a
    2961    <x:ref>Location</x:ref> header field containing a preferred choice's URI
    2962    reference. The user agent &MAY; use the Location field value for automatic
    2963    redirection.
    2964 </t>
    2965 <t>
    29662965   Caches &MAY; use a heuristic (see &p6-heuristic;) to determine
    29672966   freshness for 300 responses.
    29682967</t>
    2969 
     2968<x:note>
     2969  <t>
     2970   &Note; The original proposal for 300 defined the URI header field as
     2971   providing a list of alternative representations, such that it would be
     2972   usable for 200, 300, and 406 responses and be transferred in responses to
     2973   the HEAD method. However, lack of deployment and disagreement over syntax
     2974   led to both URI and Alternates (a subsequent proposal) being dropped from
     2975   this specification. It is possible to communicate the list using a set of
     2976   Link header fields <xref target="RFC5988"/>, each with a relationship of
     2977   "alternate", though deployment is a chicken-and-egg problem.
     2978  </t>
     2979</x:note>
    29702980</section>
    29712981
     
    32213231   A user agent &MAY; automatically select the most appropriate choice from
    32223232   that list. However, this specification does not define any standard for
    3223    such automatic selection. [The original proposal for 406 defined the
    3224    Alternates header field as providing a list of alternative representations,
    3225    such that it would be available for responses to the HEAD method, but lack
    3226    of deployment led to Alternates being dropped from the specification.]
     3233   such automatic selection, as described in <xref target="status.300"/>.
    32273234</t>
    32283235</section>
     
    55165523</reference>
    55175524
     5525<reference anchor='RFC5988'>
     5526  <front>
     5527    <title>Web Linking</title>
     5528    <author initials='M.' surname='Nottingham' fullname='M. Nottingham'>
     5529    <organization /></author>
     5530    <date year='2010' month='October' />
     5531  </front>
     5532  <seriesInfo name='RFC' value='5988' />
     5533</reference>
     5534
    55185535<reference anchor="RFC6265">
    55195536  <front>
Note: See TracChangeset for help on using the changeset viewer.