[506] [[HTTP]] および派生プロトコルにおける[[メソッド]]は、当該[[要求]]によって[[鯖]]に対して求めている操作の種類を表します。 [[メソッド]]は短い英数字列 (通常は[[大文字]]) によって表されます。 * 大文字・小文字の区別 [3] [[HTTP]] でも [[RTSP]] でも [[SIP]] でも、 大文字・小文字を区別します。 とはいえ実装は区別しないものも多いみたいです。 [REFS[ - [5] [CITE[HTTP methods, Web browsers and XMLHttpRequest - Anne’s Weblog]] ([TIME[2007-10-10 00:14:30 +09:00]] 版) ]REFS] [510] >>5 は各[[Webブラウザー]]の [[XHR]] における[[メソッド]]の[[大文字]]と[[小文字]]についての調査結果です。 * メソッドの特性 - [503] [[安全]] - [504] [[冪等]] - [505] [[キャッシュ可能性]] * IANA 登録簿 [507] HTTP[DEL[/RTSP]] では Method 名の [[IANA]] 登録簿はありません。 [508] SIP の登録簿は にあります。 [4] [[RTSP]] の [[IANA登録簿]]は [REFS[ - [509] [CITE[Real Time Streaming Protocol (RTSP)/1.0 Parameters]] ]REFS] ... にあります。 * メソッドの一覧 [1] ,[CODE(ABNF)[request-method]] ,プロトコル ,[[ACK]] ,"SIP ([RFC 2543], [IANAREG])" ,[CODE(HTTP)@en[[[ACL]]]],[[HTTP]] ,[[ANNOUNCE]] ,RTSP ([RFC 2326]) ,[CODE(HTTP)@en[[[BASELINE-CONTROL]]]],[[HTTP]] ,[CODE(HTTP)@en[[[BCOPY]]]],[[HTTP]] ,[CODE(HTTP)@en[[[BDELETE]]]],[[HTTP]] ,[CODE(HTTP)@en[[[BMOVE]]]],[[HTTP]] ,[CODE(HTTP)@en[[[BPROPFIND]]]],[[HTTP]] ,[CODE(HTTP)@en[[[BPROPPATCH]]]],[[HTTP]] ,[[BREW]] ,HTCPCP ([RFC 2324]) ,[[BROWSE]] ,HTTP ([Gripes]) ,[[BYE]] ,"SIP ([RFC 2543], [IANAREG])" ,[[CANCEL]] ,"SIP ([RFC 2543], [IANAREG])" ,[CODE(HTTP)@en[[[CHECKIN]]]],[[HTTP]] ,[CODE(HTTP)@en[[[CHECKOUT]]]],[[HTTP]] ,[[CONNECT]] ,HTTP ([RFC 2616] 予約) ,[CODE[[[COPY]]]] ,HTTP ([RFC 2518]) ,[CODE[[[DELETE]]]] ,"HTTP ([RFC 2068], [RFC 2616]; [RFC 2518])" ,[[DESCRIBE]] ,RTSP ([RFC 2326]) ,[CODE(HTTP)@en[[[X-MS-ENUMATTS]]]],[[HTTP]] ,[CODE[[[GET]]]] ,"HTTP ([HTTP/0.9], [RFC 1945], [RFC 2068], [RFC 2616]; [RFC 2518]), HTCPCP ([RFC 2324])" ,[[GET_PARAMETER]] ,RTSP ([RFC 2326]) ,[CODE[[[HEAD]]]] ,"HTTP ([RFC 2068], [RFC 2616]; [RFC 2518])" ,[[INFO]] ,"SIP ([RFC 2976], [IANAREG])" ,[[INVITE]] ,"SIP ([RFC 2543], [IANAREG])" ,[CODE(HTTP)@en[[[LABEL]]]],[[HTTP]] ,[[LINK]] ,[RFC 2068] 参考 ,[CODE[[[LOCK]]]] ,HTTP (RFC 2518) ,[[M-*]] ,[RFC 2774] ,[CODE(HTTP)[[[MDELETE]]]] ,[[URIQA]] ,[CODE(HTTP)@en[[[MERGE]]]],[[HTTP]] ,[[M-GET]] ,[RFC 2774] ,[CODE(HTTP)[[[MGET]]]] ,[[URIQA]] ,[CODE[[[M-POST]]]] ,[[M-PUT]] ,[RFC 2774] ,[CODE(HTTP)[[[MPUT]]]] ,[[URIQA]] ,[[MESSAGE]] ,"SIP ([RFC 3428], [IANAREG])" ,[CODE(HTTP)@en[[[MKACTIVITY]]]],[[HTTP]] ,[CODE(HTTP)@en[[[MKCALENDAR]]]] ,[[HTTP]] ([[RFC 4791]]) ,[CODE[[[MKCOL]]]] ,HTTP ([RFC 2518]) ,[CODE(HTTP)@en[[[MKWORKSPACE]]]],[[HTTP]] ,[CODE[[[MOVE]]]] ,HTTP ([RFC 2518]) ,[CODE(HTTP)@en[[[NOTIFY]]]],"[[HTTP]], [[SIP]]" ,[[OPTIONS]] ,"HTTP ([RFC 2068], [RFC 2616]), RTSP ([RFC 2326]), SIP ([RFC 2543], [IANAREG])" ,[CODE(HTTP)@en[[[ORDERPATCH]]]],[[HTTP]] ,[[PATCH]] ,[RFC 2068] 参考 ,[[PAUSE]] ,RTSP ([RFC 2326]) ,[CODE(HTTP)@en[[[PEP]]]],[[HTTP]] ,[CODE(HTTP)@en[[[PEP-[VAR[*]]]]]],[[HTTP]] ,[CODE(HTTP)@en[[[PEP-PUT]]]],[[HTTP]] ,[[PLAY]] ,RTSP ([RFC 2326]) ,[CODE(HTTP)@en[[[POLL]]]],[[HTTP]] ,[[POST]] ,"HTTP ([RFC 2068], [RFC 2616]), HTCPCP ([RFC 2324]))" ,[[PRACK]] ,"SIP ([RFC 3262], [IANAREG])" ,[CODE[[[PROPFIND]]]] ,"HTCPCP ([RFC 2324]), HTTP ([RFC 2518])" ,[CODE[[[PROPPATCH]]]] ,HTTP ([RFC 2518]) ,[CODE[[[PUT]]]] ,"HTTP ([RFC 2068], [RFC 2616]; [RFC 2518])" ,[[RECORD]] ,RTSP ([RFC 2326]) ,[[REDIRECT]] ,RTSP ([RFC 2326]) ,[[REFER]] ,"SIP ([RFC 3315], [IANAREG])" ,[[REGISTER]] ,"SIP ([RFC 2543], [IANAREG])" ,[CODE(HTTP)@en[[[REPORT]]]] ,[[HTTP]] ([[RFC 4791]]) ,[CODE(HTTP)@en[[[RPC_IN_DATA]]]],[[HTTP]] ,[CODE(HTTP)@en[[[RPC_OUT_DATA]]]],[[HTTP]] ,[CODE[[[SEARCH]]]] ,HTTP (ワーム) ,[[SETUP]] ,RTSP ([RFC 2326]) ,[[SET_PARAMETER]] ,RTSP ([RFC 2326]) ,[CODE(HTTP)@en[[[SUBSCRIBE]]]],"[[HTTP]], [[SIP]]" ,[[TEARDOWN]] ,RTSP ([RFC 2326]) ,[[TRACE]] ,"[RFC 2068], [RFC 2616]" ,[CODE(HTTP)@en[[[UNCHECKOUT]]]],[[HTTP]] ,[[UNLINK]] ,[RFC 2068] 参考 ,[CODE[[[UNLOCK]]]] ,HTTP ([RFC 2518]) ,[CODE(HTTP)@en[[[UNSUBSCRIBE]]]],[[HTTP]] ,[CODE(HTTP)@en[[[UPDATE]]]],"[[HTTP]], [[SIP]]" ,[CODE(HTTP)@en[[[VERSION-CONTROL]]]],[[HTTP]] ,[[WHEN]] ,HTCPCP ([RFC 2324]) ** 参考文献 [REFS[ - [511] [CITE[List of HTTP methods (verbs) — Anne’s Blog]] ([TIME[2012-02-19 14:31:55 +09:00]] 版) - [512] [CITE@en-us[WebDAV Methods]] ([TIME[2012-02-19 14:32:08 +09:00]] 版) ]REFS] * 歴史 [FIG[ [FIGCAPTION[ [502] RFC 1945 (HTTP/1.0); RFC 2068・2616 (HTTP/1.1) 5.1.1 Method ]FIGCAPTION] > The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive. [CODE(ABNF)[Method]] 字句は、 [CODE(ABNF)[[[Request-URI]]]] で識別される[[資源]]に施される方式を示します。方式は大文字・小文字を区別します。 [DEL[ [DEL[ > [INS[{1945}]] - [PRE[ Method = "GET" ; Section 8.1 | "HEAD" ; Section 8.2 | "POST" ; Section 8.3 | extension-method ]PRE] ]DEL] [INS[ > [INS[{2068}]] - [PRE[ Method = "OPTIONS" ; Section 9.2 | "GET" ; Section 9.3 | "HEAD" ; Section 9.4 | "POST" ; Section 9.5 | "PUT" ; Section 9.6 | "DELETE" ; Section 9.7 | "TRACE" ; Section 9.8 | extension-method ]PRE] ]INS] ]DEL] [INS[ > [INS[{2616}]] - [PRE[ Method = "OPTIONS" ; Section 9.2 | "GET" ; Section 9.3 | "HEAD" ; Section 9.4 | "POST" ; Section 9.5 | "PUT" ; Section 9.6 | "DELETE" ; Section 9.7 | "TRACE" ; Section 9.8 | "CONNECT" ; Section 9.9 | extension-method ]PRE] ]INS] > - extension-method = token > The list of methods [DEL[acceptable]] [INS[allowed]] by a [DEL[specific]] resource can [DEL[change dynamically; the client is notified through the return code of the response if a method is not allowed on a resource.]] [INS[be specified in an Allow header field (section 14.7). The return code of the response always notifies the client whether a method is currently allowed on a resource, since the set of allowed methods can change dynamically.]] [DEL[[INS[{1945,2068}]] Servers]] [INS[[INS[{2616}]] An origin server]] [DEL[should]] [INS[SHOULD]] return the status code [INS[405 (Method Not Allowed) if the method is known by the [INS[original]] server but not allowed for the requested resource, and]] 501 ([DEL[not implemented]] [INS[Not Implemented]]) if the method is unrecognized or not implemented [INS[by the [INS[original]] server]]. [DEL[[INS[[INS[{2068}]] The list of methods known by a server can be listed in a Public response-header field (section 14.35).]]]] ある資源に認められる方式の目録は [CODE(HTTP)[[[Allow]]]] 頭欄に指定されます。 応答の復帰符号は方式が現在資源について認められているかどうかを常にクライアントに通知します。 認められる方式の集合は動的に変わり得るからです。 [[起源サーバー]]は、方式を起源サーバーが知っているがその要求された資源には認めない場合には [CODE(HTTP)[[[405]]]] (方式不認可) [[状態符号]]を、起源サーバーが方式が認識できないか実装していない場合は [CODE(HTTP)[[[501]]]] (未実装) 状態符号を返す'''べきです'''。[DEL[サーバーが知っている方式の目録は [CODE(HTTP)[[[Public]]]] 応答頭欄で列挙できます。]] [DEL[ > [INS[{1945}]] The methods commonly used by HTTP/1.0 applications are fully defined in Section 8. HTTP/1.0 応用が広く使っている方式は8章で完全に定義しています。 ]DEL] [INS[ > The methods GET and HEAD MUST be supported by all general-purpose servers. All other methods are [DEL[optional]] [INS[OPTIONAL]]; however, if the above methods are implemented, they MUST be implemented with the same semantics as those specified in section 9. 方式 [CODE(HTTP)[[[GET]]]] および [CODE(HTTP)[[[HEAD]]]] にすべての一般目的サーバーは対応しなければなりません。 他のすべての方式は'''[[任意選択]]'''です。しかし、 上の方式を実装する場合は、9章で規定する意味と同じに実装しなければ'''なりません'''。 ]INS] [INS[ 注: 注記なき変更点は 1945 → 2068 の変更。 ]INS] * RFC 1945 (HTTP/1.0) 8.; RFC 2068・2616 (HTTP/1.1) 9 Method Definitions > The set of common methods for [DEL[HTTP/1.0]] [INS[HTTP/1.1]] is defined below. Although this set can be expanded, additional methods cannot be assumed to share the same semantics for separately extended clients and servers. HTTP の共通の方式 (method) の集合を次に定義します。 この集合は拡張可能ではありますが、追加の方式は別々の拡張されたクライアントやサーバーで同じ意味を共有しているとは仮定できません。 [INS[ > The Host request-header field (section 14.23) MUST accompany all HTTP/1.1 requests. [CODE(HTTP)[[[Host]]]] 要求頭欄はすべての HTTP/1.1 要求に伴わなければ'''なりません'''。 ]INS] ** RFC 2068・2616 (HTTP/1.1) 9.1 Safe and Idempotent Methods →[CODE(WikiPage)[[[安全]]]] ** RFC 1945 (HTTP/1.0) 9.1〜; RFC 2068・2616 (HTTP/1.1) 9.2〜 (各 method の定義 : 省略) * RFC 1945 (HTTP/1.0) D.1; RFC 2068 (HTTP/1.1) 19.6.1 Additional Request Methods (各 method の定義 : 省略) * RFC 2616 (HTTP/1.1) 19.6.3 (抜粋) > The PATCH, LINK, UNLINK methods were defined but not commonly implemented in previous versions of this specification. See RFC 2068 [33]. この仕様書の以前の版で [CODE(HTTP)[[[PATCH]]]], [CODE(HTTP)[[[LINK]]]], [CODE(HTTP)[[[UNLINK]]]] 方式が定義されていましたが、広くは実装されていません。 [[RFC 2068]] 参照。 * RFC の部分のライセンス [[RFCのライセンス]] ]FIG] * メモ