Changeset 1034


Ignore:
Timestamp:
Oct 18, 2010, 11:02:09 PM (9 years ago)
Author:
mnot@…
Message:

Explain requirements for new method registrations; addresses #230.

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

Legend:

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

    r1033 r1034  
    542542         </li>
    543543         <li class="tocline0">2.&nbsp;&nbsp;&nbsp;<a href="#method">Method</a><ul class="toc">
    544                <li class="tocline1">2.1&nbsp;&nbsp;&nbsp;<a href="#method.registry">Method Registry</a></li>
     544               <li class="tocline1">2.1&nbsp;&nbsp;&nbsp;<a href="#method.registry">Method Registry</a><ul class="toc">
     545                     <li class="tocline1">2.1.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1.1">Considerations for New Methods</a></li>
     546                  </ul>
     547               </li>
    545548            </ul>
    546549         </li>
     
    786789      <p id="rfc.section.2.1.p.4">The registry itself is maintained at &lt;<a href="http://www.iana.org/assignments/http-methods">http://www.iana.org/assignments/http-methods</a>&gt;.
    787790      </p>
     791      <h3 id="rfc.section.2.1.1"><a href="#rfc.section.2.1.1">2.1.1</a>&nbsp;Considerations for New Methods
     792      </h3>
     793      <p id="rfc.section.2.1.1.p.1">When it is necessary to express new semantics for a HTTP request that aren't specific to a single application or media type,
     794         and currently defined methods are inadequate, it may be appropriate to register a new method.
     795      </p>
     796      <p id="rfc.section.2.1.1.p.2">New methods <em class="bcp14">SHOULD</em> be potentially applicable to any resource. I.e., they should not be specific to any particular media type, "type" of resource,
     797         or application.
     798      </p>
     799      <p id="rfc.section.2.1.1.p.3">New methods <em class="bcp14">MUST NOT</em> prohibit a message-body on either the request or the response message; however they <em class="bcp14">MAY</em> specify that only a zero-length body is allowed.
     800      </p>
     801      <p id="rfc.section.2.1.1.p.4">New methods <em class="bcp14">MUST</em> define whether they are safe (<a href="#safe.methods" title="Safe Methods">Section&nbsp;7.1.1</a>) and whether they are idempotent (<a href="#idempotent.methods" title="Idempotent Methods">Section&nbsp;7.1.2</a>). They <em class="bcp14">MUST</em> also state whether they can be cached (<a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>); in particular what conditions a cache may store the response, and under what conditions such a stored response may be used
     802         to satisfy a subsequent request.
     803      </p>
     804      <p id="rfc.section.2.1.1.p.5">New methods <em class="bcp14">SHOULD</em> explain how conditional request headers (<a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>) affect the response (if there is any effect).
     805      </p>
     806      <p id="rfc.section.2.1.1.p.6">HTTP methods <em class="bcp14">SHOULD</em> be registered in a document that isn't specific to an application or other use of HTTP, so that it's clear that they are not
     807         specific to that application or extension.
     808      </p>
    788809      <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="request.header.fields" href="#request.header.fields">Request Header Fields</a></h1>
    789810      <p id="rfc.section.3.p.1">The request-header fields allow the client to pass additional information about the request, and about the client itself,
     
    799820                 / <a href="#header.from" class="smpl">From</a>                     ; <a href="#header.from" id="rfc.xref.header.from.1" title="From">Section&nbsp;9.3</a>
    800821                 / <a href="#abnf.dependencies" class="smpl">Host</a>                     ; <a href="#Part1" id="rfc.xref.Part1.18"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.host" title="Host">Section 9.4</a>
    801                  / <a href="#abnf.dependencies" class="smpl">If-Match</a>                 ; <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 6.2</a>
    802                  / <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a>        ; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 6.3</a>
    803                  / <a href="#abnf.dependencies" class="smpl">If-None-Match</a>            ; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 6.4</a>
     822                 / <a href="#abnf.dependencies" class="smpl">If-Match</a>                 ; <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-match" title="If-Match">Section 6.2</a>
     823                 / <a href="#abnf.dependencies" class="smpl">If-Modified-Since</a>        ; <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 6.3</a>
     824                 / <a href="#abnf.dependencies" class="smpl">If-None-Match</a>            ; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 6.4</a>
    804825                 / <a href="#abnf.dependencies" class="smpl">If-Range</a>                 ; <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a>
    805                  / <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a>      ; <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 6.5</a>
     826                 / <a href="#abnf.dependencies" class="smpl">If-Unmodified-Since</a>      ; <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 6.5</a>
    806827                 / <a href="#header.max-forwards" class="smpl">Max-Forwards</a>             ; <a href="#header.max-forwards" id="rfc.xref.header.max-forwards.1" title="Max-Forwards">Section&nbsp;9.5</a>
    807828                 / <a href="#abnf.dependencies" class="smpl">Proxy-Authorization</a>      ; <a href="#Part7" id="rfc.xref.Part7.6"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authorization" title="Proxy-Authorization">Section 4.3</a>
     
    815836      <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;<a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h1>
    816837      <p id="rfc.section.4.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. The status
    817          codes listed below are defined in <a href="#status.codes" title="Status Code Definitions">Section&nbsp;8</a>, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>.
     838         codes listed below are defined in <a href="#status.codes" title="Status Code Definitions">Section&nbsp;8</a>, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part4" id="rfc.xref.Part4.11"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.7"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>.
    818839      </p>
    819840      <p id="rfc.section.4.p.2">The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use
     
    837858     / "302"  ; <a href="#status.302" id="rfc.xref.status.302.1" title="302 Found">Section&nbsp;8.3.3</a>: Found
    838859     / "303"  ; <a href="#status.303" id="rfc.xref.status.303.1" title="303 See Other">Section&nbsp;8.3.4</a>: See Other
    839      / "304"  ; <a href="#Part4" id="rfc.xref.Part4.11"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 3.1</a>: Not Modified
     860     / "304"  ; <a href="#Part4" id="rfc.xref.Part4.12"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 3.1</a>: Not Modified
    840861     / "305"  ; <a href="#status.305" id="rfc.xref.status.305.1" title="305 Use Proxy">Section&nbsp;8.3.6</a>: Use Proxy
    841862     / "307"  ; <a href="#status.307" id="rfc.xref.status.307.1" title="307 Temporary Redirect">Section&nbsp;8.3.8</a>: Temporary Redirect
     
    852873     / "410"  ; <a href="#status.410" id="rfc.xref.status.410.1" title="410 Gone">Section&nbsp;8.4.11</a>: Gone
    853874     / "411"  ; <a href="#status.411" id="rfc.xref.status.411.1" title="411 Length Required">Section&nbsp;8.4.12</a>: Length Required
    854      / "412"  ; <a href="#Part4" id="rfc.xref.Part4.12"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 3.2</a>: Precondition Failed
     875     / "412"  ; <a href="#Part4" id="rfc.xref.Part4.13"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 3.2</a>: Precondition Failed
    855876     / "413"  ; <a href="#status.413" id="rfc.xref.status.413.1" title="413 Request Entity Too Large">Section&nbsp;8.4.14</a>: Request Entity Too Large
    856877     / "414"  ; <a href="#status.414" id="rfc.xref.status.414.1" title="414 URI Too Long">Section&nbsp;8.4.15</a>: URI Too Long
     
    885906      </p>
    886907      <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.7"></span>  <a href="#response.header.fields" class="smpl">response-header</a> = <a href="#abnf.dependencies" class="smpl">Accept-Ranges</a>           ; <a href="#Part5" id="rfc.xref.Part5.9"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, <a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a>
    887                   / <a href="#abnf.dependencies" class="smpl">Age</a>                     ; <a href="#Part6" id="rfc.xref.Part6.3"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 3.1</a>
     908                  / <a href="#abnf.dependencies" class="smpl">Age</a>                     ; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.age" title="Age">Section 3.1</a>
    888909                  / <a href="#header.allow" class="smpl">Allow</a>                   ; <a href="#header.allow" id="rfc.xref.header.allow.2" title="Allow">Section&nbsp;9.1</a>
    889                   / <a href="#abnf.dependencies" class="smpl">ETag</a>                    ; <a href="#Part4" id="rfc.xref.Part4.13"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a>
     910                  / <a href="#abnf.dependencies" class="smpl">ETag</a>                    ; <a href="#Part4" id="rfc.xref.Part4.14"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a>
    890911                  / <a href="#header.location" class="smpl">Location</a>                ; <a href="#header.location" id="rfc.xref.header.location.1" title="Location">Section&nbsp;9.4</a>
    891912                  / <a href="#abnf.dependencies" class="smpl">Proxy-Authenticate</a>      ; <a href="#Part7" id="rfc.xref.Part7.10"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.proxy-authenticate" title="Proxy-Authenticate">Section 4.2</a>
    892913                  / <a href="#header.retry-after" class="smpl">Retry-After</a>             ; <a href="#header.retry-after" id="rfc.xref.header.retry-after.1" title="Retry-After">Section&nbsp;9.7</a>
    893914                  / <a href="#header.server" class="smpl">Server</a>                  ; <a href="#header.server" id="rfc.xref.header.server.1" title="Server">Section&nbsp;9.8</a>
    894                   / <a href="#abnf.dependencies" class="smpl">Vary</a>                    ; <a href="#Part6" id="rfc.xref.Part6.4"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 3.5</a>
     915                  / <a href="#abnf.dependencies" class="smpl">Vary</a>                    ; <a href="#Part6" id="rfc.xref.Part6.5"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.vary" title="Vary">Section 3.5</a>
    895916                  / <a href="#abnf.dependencies" class="smpl">WWW-Authenticate</a>        ; <a href="#Part7" id="rfc.xref.Part7.11"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, <a href="p7-auth.html#header.www-authenticate" title="WWW-Authenticate">Section 4.4</a>
    896917</pre><p id="rfc.section.5.p.3">Response-header field names can be extended reliably only in combination with a change in the protocol version. However, new
     
    917938         </li>
    918939         <li>If the response status code is 204, 206, or 304 and the request method was GET or HEAD, the response payload is a partial
    919             representation of the target (see <a href="p6-cache.html#combining.responses" title="Combining Responses">Section 2.8</a> of <a href="#Part6" id="rfc.xref.Part6.5"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>).
     940            representation of the target (see <a href="p6-cache.html#combining.responses" title="Combining Responses">Section 2.8</a> of <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>).
    920941         </li>
    921942         <li>If the response has a Content-Location header field, and that URI is the same as the effective request URI, the response payload
     
    9981019         be completed without transferring data already held by the client.
    9991020      </p>
    1000       <p id="rfc.section.7.3.p.5">The response to a GET request is cacheable and <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests (see <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>).
     1021      <p id="rfc.section.7.3.p.5">The response to a GET request is cacheable and <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests (see <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>).
    10011022      </p>
    10021023      <p id="rfc.section.7.3.p.6">See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section&nbsp;11.2</a> for security considerations when used for forms.
     
    10091030         hypertext links for validity, accessibility, and recent modification.
    10101031      </p>
    1011       <p id="rfc.section.7.4.p.2">The response to a HEAD request is cacheable and <em class="bcp14">MAY</em> be used to satisfy a subsequent HEAD request; see <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. It also <em class="bcp14">MAY</em> be used to update a previously cached representation from that resource; if the new field values indicate that the cached
     1032      <p id="rfc.section.7.4.p.2">The response to a HEAD request is cacheable and <em class="bcp14">MAY</em> be used to satisfy a subsequent HEAD request; see <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>. It also <em class="bcp14">MAY</em> be used to update a previously cached representation from that resource; if the new field values indicate that the cached
    10121033         representation differs from the current representation (as would be indicated by a change in Content-Length, Content-MD5,
    10131034         ETag or Last-Modified), then the cache <em class="bcp14">MUST</em> treat the cache entry as stale.
     
    10351056         a Location header field (see <a href="#header.location" id="rfc.xref.header.location.2" title="Location">Section&nbsp;9.4</a>).
    10361057      </p>
    1037       <p id="rfc.section.7.5.p.5">Responses to POST requests are only cacheable when they include explicit freshness information (see <a href="p6-cache.html#calculating.freshness.lifetime" title="Calculating Freshness Lifetime">Section 2.3.1</a> of <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>). A cached POST response with a Content-Location header field (see <a href="p3-payload.html#header.content-location" title="Content-Location">Section 6.7</a> of <a href="#Part3" id="rfc.xref.Part3.10"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) whose value is the effective Request URI <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests.
     1058      <p id="rfc.section.7.5.p.5">Responses to POST requests are only cacheable when they include explicit freshness information (see <a href="p6-cache.html#calculating.freshness.lifetime" title="Calculating Freshness Lifetime">Section 2.3.1</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>). A cached POST response with a Content-Location header field (see <a href="p3-payload.html#header.content-location" title="Content-Location">Section 6.7</a> of <a href="#Part3" id="rfc.xref.Part3.10"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) whose value is the effective Request URI <em class="bcp14">MAY</em> be used to satisfy subsequent GET and HEAD requests.
    10381059      </p>
    10391060      <p id="rfc.section.7.5.p.6">Note that POST caching is not widely implemented. However, the 303 (See Other) response can be used to direct the user agent
     
    11511172         <dd>a representation containing the request message as received by the end server.</dd>
    11521173      </dl>
    1153       <p id="rfc.section.8.2.1.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.9"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 200 responses.
     1174      <p id="rfc.section.8.2.1.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.10"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 200 responses.
    11541175      </p>
    11551176      <div id="rfc.iref.28"></div>
     
    11631184      </p>
    11641185      <p id="rfc.section.8.2.2.p.2">A 201 response <em class="bcp14">MAY</em> contain an ETag response header field indicating the current value of the entity-tag for the representation of the resource
    1165          just created (see <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a> of <a href="#Part4" id="rfc.xref.Part4.14"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
     1186         just created (see <a href="p4-conditional.html#header.etag" title="ETag">Section 6.1</a> of <a href="#Part4" id="rfc.xref.Part4.15"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
    11661187      </p>
    11671188      <div id="rfc.iref.29"></div>
     
    11851206         when the response would otherwise be 200 (OK).
    11861207      </p>
    1187       <p id="rfc.section.8.2.4.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.10"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 203 responses.
     1208      <p id="rfc.section.8.2.4.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 203 responses.
    11881209      </p>
    11891210      <div id="rfc.iref.31"></div>
     
    12141235         defined in <a href="p5-range.html#status.206" title="206 Partial Content">Section 3.1</a> of <a href="#Part5" id="rfc.xref.Part5.11"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>.
    12151236      </p>
    1216       <p id="rfc.section.8.2.7.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 206 responses.
     1237      <p id="rfc.section.8.2.7.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 206 responses.
    12171238      </p>
    12181239      <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a>&nbsp;<a id="status.3xx" href="#status.3xx">Redirection 3xx</a></h2>
     
    12381259      <p id="rfc.section.8.3.1.p.3">If the server has a preferred choice of representation, it <em class="bcp14">SHOULD</em> include the specific URI for that representation in the Location field; user agents <em class="bcp14">MAY</em> use the Location field value for automatic redirection.
    12391260      </p>
    1240       <p id="rfc.section.8.3.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 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 300 responses.
     1261      <p id="rfc.section.8.3.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 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 300 responses.
    12411262      </p>
    12421263      <div id="rfc.iref.35"></div>
     
    12461267         request URI to one or more of the new references returned by the server, where possible.
    12471268      </p>
    1248       <p id="rfc.section.8.3.2.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 301 responses.
     1269      <p id="rfc.section.8.3.2.p.2">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 301 responses.
    12491270      </p>
    12501271      <p id="rfc.section.8.3.2.p.3">The new permanent URI <em class="bcp14">SHOULD</em> be given by the Location field in the response. Unless the request method was HEAD, the representation of the response <em class="bcp14">SHOULD</em> contain a short hypertext note with a hyperlink to the new URI(s).
     
    12981319      <h3 id="rfc.section.8.3.5"><a href="#rfc.section.8.3.5">8.3.5</a>&nbsp;<a id="status.304" href="#status.304">304 Not Modified</a></h3>
    12991320      <p id="rfc.section.8.3.5.p.1">The response to the request has not been modified since the conditions indicated by the client's conditional GET request,
    1300          as defined in <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4.15"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>.
     1321         as defined in <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4.16"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>.
    13011322      </p>
    13021323      <div id="rfc.iref.39"></div>
     
    14181439         -- that is left to the discretion of the server owner.
    14191440      </p>
    1420       <p id="rfc.section.8.4.11.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 410 responses.
     1441      <p id="rfc.section.8.4.11.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.15"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 410 responses.
    14211442      </p>
    14221443      <div id="rfc.iref.53"></div>
     
    14301451      <h3 id="rfc.section.8.4.13"><a href="#rfc.section.8.4.13">8.4.13</a>&nbsp;<a id="status.412" href="#status.412">412 Precondition Failed</a></h3>
    14311452      <p id="rfc.section.8.4.13.p.1">The precondition given in one or more of the request-header fields evaluated to false when it was tested on the server, as
    1432          defined in <a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.16"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>.
     1453         defined in <a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.17"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>.
    14331454      </p>
    14341455      <div id="rfc.iref.55"></div>
     
    24212442      <p id="rfc.section.C.2.p.2">Other changes: </p>
    24222443      <ul>
    2423          <li>Move definitions of 304 and 412 condition codes to <a href="#Part4" id="rfc.xref.Part4.17"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>
     2444         <li>Move definitions of 304 and 412 condition codes to <a href="#Part4" id="rfc.xref.Part4.18"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>
    24242445         </li>
    24252446      </ul>
     
    27722793                     </ul>
    27732794                  </li>
    2774                   <li class="indline1"><em>Part4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.3">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.4">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.5">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.6">3</a>, <a class="iref" href="#rfc.xref.Part4.7">3</a>, <a class="iref" href="#rfc.xref.Part4.8">3</a>, <a class="iref" href="#rfc.xref.Part4.9">3</a>, <a class="iref" href="#rfc.xref.Part4.10">4</a>, <a class="iref" href="#rfc.xref.Part4.11">4</a>, <a class="iref" href="#rfc.xref.Part4.12">4</a>, <a class="iref" href="#rfc.xref.Part4.13">5</a>, <a class="iref" href="#rfc.xref.Part4.14">8.2.2</a>, <a class="iref" href="#rfc.xref.Part4.15">8.3.5</a>, <a class="iref" href="#rfc.xref.Part4.16">8.4.13</a>, <a class="iref" href="#Part4"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.Part4.17">C.2</a><ul class="ind">
    2775                         <li class="indline1"><em>Section 3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.10">4</a></li>
    2776                         <li class="indline1"><em>Section 3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.11">4</a>, <a class="iref" href="#rfc.xref.Part4.15">8.3.5</a></li>
    2777                         <li class="indline1"><em>Section 3.2</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.12">4</a>, <a class="iref" href="#rfc.xref.Part4.16">8.4.13</a></li>
    2778                         <li class="indline1"><em>Section 6.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.13">5</a>, <a class="iref" href="#rfc.xref.Part4.14">8.2.2</a></li>
    2779                         <li class="indline1"><em>Section 6.2</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.6">3</a></li>
    2780                         <li class="indline1"><em>Section 6.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.3">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.7">3</a></li>
    2781                         <li class="indline1"><em>Section 6.4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.4">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.8">3</a></li>
    2782                         <li class="indline1"><em>Section 6.5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.5">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.9">3</a></li>
     2795                  <li class="indline1"><em>Part4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.3">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.4">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.5">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.6">2.1.1</a>, <a class="iref" href="#rfc.xref.Part4.7">3</a>, <a class="iref" href="#rfc.xref.Part4.8">3</a>, <a class="iref" href="#rfc.xref.Part4.9">3</a>, <a class="iref" href="#rfc.xref.Part4.10">3</a>, <a class="iref" href="#rfc.xref.Part4.11">4</a>, <a class="iref" href="#rfc.xref.Part4.12">4</a>, <a class="iref" href="#rfc.xref.Part4.13">4</a>, <a class="iref" href="#rfc.xref.Part4.14">5</a>, <a class="iref" href="#rfc.xref.Part4.15">8.2.2</a>, <a class="iref" href="#rfc.xref.Part4.16">8.3.5</a>, <a class="iref" href="#rfc.xref.Part4.17">8.4.13</a>, <a class="iref" href="#Part4"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.Part4.18">C.2</a><ul class="ind">
     2796                        <li class="indline1"><em>Section 3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.11">4</a></li>
     2797                        <li class="indline1"><em>Section 3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.12">4</a>, <a class="iref" href="#rfc.xref.Part4.16">8.3.5</a></li>
     2798                        <li class="indline1"><em>Section 3.2</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.13">4</a>, <a class="iref" href="#rfc.xref.Part4.17">8.4.13</a></li>
     2799                        <li class="indline1"><em>Section 6.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.14">5</a>, <a class="iref" href="#rfc.xref.Part4.15">8.2.2</a></li>
     2800                        <li class="indline1"><em>Section 6.2</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.7">3</a></li>
     2801                        <li class="indline1"><em>Section 6.3</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.3">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.8">3</a></li>
     2802                        <li class="indline1"><em>Section 6.4</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.4">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.9">3</a></li>
     2803                        <li class="indline1"><em>Section 6.5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part4.5">1.2.2</a>, <a class="iref" href="#rfc.xref.Part4.10">3</a></li>
    27832804                     </ul>
    27842805                  </li>
     
    27922813                     </ul>
    27932814                  </li>
    2794                   <li class="indline1"><em>Part6</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.3">5</a>, <a class="iref" href="#rfc.xref.Part6.4">5</a>, <a class="iref" href="#rfc.xref.Part6.5">6.1</a>, <a class="iref" href="#rfc.xref.Part6.6">7.3</a>, <a class="iref" href="#rfc.xref.Part6.7">7.4</a>, <a class="iref" href="#rfc.xref.Part6.8">7.5</a>, <a class="iref" href="#rfc.xref.Part6.9">8.2.1</a>, <a class="iref" href="#rfc.xref.Part6.10">8.2.4</a>, <a class="iref" href="#rfc.xref.Part6.11">8.2.7</a>, <a class="iref" href="#rfc.xref.Part6.12">8.3.1</a>, <a class="iref" href="#rfc.xref.Part6.13">8.3.2</a>, <a class="iref" href="#rfc.xref.Part6.14">8.4.11</a>, <a class="iref" href="#Part6"><b>13.1</b></a><ul class="ind">
    2795                         <li class="indline1"><em>Section 2.3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.8">7.5</a></li>
    2796                         <li class="indline1"><em>Section 2.3.1.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.9">8.2.1</a>, <a class="iref" href="#rfc.xref.Part6.10">8.2.4</a>, <a class="iref" href="#rfc.xref.Part6.11">8.2.7</a>, <a class="iref" href="#rfc.xref.Part6.12">8.3.1</a>, <a class="iref" href="#rfc.xref.Part6.13">8.3.2</a>, <a class="iref" href="#rfc.xref.Part6.14">8.4.11</a></li>
    2797                         <li class="indline1"><em>Section 2.8</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.5">6.1</a></li>
    2798                         <li class="indline1"><em>Section 3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.3">5</a></li>
    2799                         <li class="indline1"><em>Section 3.5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.4">5</a></li>
     2815                  <li class="indline1"><em>Part6</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.3">2.1.1</a>, <a class="iref" href="#rfc.xref.Part6.4">5</a>, <a class="iref" href="#rfc.xref.Part6.5">5</a>, <a class="iref" href="#rfc.xref.Part6.6">6.1</a>, <a class="iref" href="#rfc.xref.Part6.7">7.3</a>, <a class="iref" href="#rfc.xref.Part6.8">7.4</a>, <a class="iref" href="#rfc.xref.Part6.9">7.5</a>, <a class="iref" href="#rfc.xref.Part6.10">8.2.1</a>, <a class="iref" href="#rfc.xref.Part6.11">8.2.4</a>, <a class="iref" href="#rfc.xref.Part6.12">8.2.7</a>, <a class="iref" href="#rfc.xref.Part6.13">8.3.1</a>, <a class="iref" href="#rfc.xref.Part6.14">8.3.2</a>, <a class="iref" href="#rfc.xref.Part6.15">8.4.11</a>, <a class="iref" href="#Part6"><b>13.1</b></a><ul class="ind">
     2816                        <li class="indline1"><em>Section 2.3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.9">7.5</a></li>
     2817                        <li class="indline1"><em>Section 2.3.1.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.10">8.2.1</a>, <a class="iref" href="#rfc.xref.Part6.11">8.2.4</a>, <a class="iref" href="#rfc.xref.Part6.12">8.2.7</a>, <a class="iref" href="#rfc.xref.Part6.13">8.3.1</a>, <a class="iref" href="#rfc.xref.Part6.14">8.3.2</a>, <a class="iref" href="#rfc.xref.Part6.15">8.4.11</a></li>
     2818                        <li class="indline1"><em>Section 2.8</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.6">6.1</a></li>
     2819                        <li class="indline1"><em>Section 3.1</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.1">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.4">5</a></li>
     2820                        <li class="indline1"><em>Section 3.5</em>&nbsp;&nbsp;<a class="iref" href="#rfc.xref.Part6.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part6.5">5</a></li>
    28002821                     </ul>
    28012822                  </li>
  • draft-ietf-httpbis/latest/p2-semantics.xml

    r1032 r1034  
    481481  The registry itself is maintained at <eref target="http://www.iana.org/assignments/http-methods"/>.
    482482</t>
     483
     484<section title="Considerations for New Methods">
     485
     486  <t>When it is necessary to express new semantics for a HTTP request that
     487  aren't specific to a single application or media type, and currently defined
     488  methods are inadequate, it may be appropriate to register a new method.</t>
     489
     490  <t>New methods &SHOULD; be potentially applicable to any resource. I.e.,
     491  they should not be specific to any particular media type, "type" of
     492  resource, or application.</t>
     493
     494  <t>New methods &MUST-NOT; prohibit a message-body on either the request or
     495  the response message; however they &MAY; specify that only a zero-length
     496  body is allowed.</t>
     497
     498  <t>New methods &MUST; define whether they are safe (<xref
     499  target="safe.methods"/>) and whether they are idempotent (<xref
     500  target="idempotent.methods"/>). They &MUST; also state whether they can be
     501  cached (&caching;); in particular what conditions a cache may store the
     502  response, and under what conditions such a stored response may be used to
     503  satisfy a subsequent request.</t>
     504
     505  <t>New methods &SHOULD; explain how conditional request headers
     506  (&conditional;) affect the response (if there is any effect).</t>
     507
     508  <t>HTTP methods &SHOULD; be registered in a document that isn't specific to
     509  an application or other use of HTTP, so that it's clear that they are not
     510  specific to that application or extension.</t>
     511
     512</section>
     513
    483514</section>
    484515</section>
Note: See TracChangeset for help on using the changeset viewer.