[502] [DFN[[CODE(HTTP)[[[405]]]]]] ([DFN[[[Method Not Allowed]]]]) は、
[[要求]]で指定された[[メソッド]]を[[鯖]]が受け付けていないことを表す[[状態符号]]です。

* 仕様書

[REFS[
- [538] '''[CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-6.5.5>'''
- [534] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-06-07 01:55:45 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-4>
- [2] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-9.3>
- [4] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-9.7>
- [6] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#appendix-D>
]REFS]

* 意味

[539] [CODE(HTTP)[[[405]]]] は、[[要求メソッド]]を[[起源鯖]]が知っているものの、
[[対象資源]]が対応していないことを示します [SRC[>>538]]。

* 構文

[503] [[起源鯖]]は、 [CODE(HTTP)[[[405]]]] [[応答]]で [CODE(HTTP)@en[[[Allow:]]]] 
[[ヘッダー]]を[[生成]]しなければ[['''なりません''']] [SRC[>>538]]。

;; [504] この規定は守られていないことも多いです。

* 文脈

[533] [[起源鯖]]は、[[要求メソッド]]を知っているものの、[[対象資源]]に対して認めていない時は、
[CODE(HTTP)[[[405]]]] [[応答]]を返す[['''べきです''']] [SRC[>>534]]。

;; [1] [[起源鯖]]は、[[要求メソッド]]を認識できないか、実装していない時は、
[CODE(HTTP)[[[501]]]] [[応答]]を返す[['''べきです''']] [SRC[>>534]]。

[3] [CODE(HTTP)@en[[[MKCOL]]]] [[要求]]で指定された [[URL]]
に既に[[資源]]が存在する時は、 [CODE(HTTP)[[[405]]]] [[応答]]を返します [SRC[>>2]]。

[5] [[WebDAV]] [[コレクション]]に対する [CODE(HTTP)@en[[[PUT]]]] [[要求]]には、
[CODE(HTTP)[[[405]]]] [[応答]]を返して構いません [SRC[>>4]]。

[7] [[LNR]] が[[対象資源]]である時、特定の[[要求メソッド]]以外では 
[CODE(HTTP)[[[405]]]] [[応答]]を返すことができます [SRC[>>6]]。

* 処理

[540] [CODE(HTTP)[[[405]]]] [[応答]]は[[キャッシュ可能]]です [SRC[>>538]]。

* 関連

[8] 
[[RTSP]]
には
[CODE[460]]
もあります。

* 歴史

[FIG(quote)[
[FIGCAPTION[
[535] RFC 2068 & 2616 (HTTP/1.1) 10.4.6 405 Method Not Allowed
]FIGCAPTION]

> The method specified in the Request-Line is not allowed for the
resource identified by the Request-URI. The response MUST include an
Allow header containing a list of valid methods for the requested resource.

[CODE(ABNF)[[[Request-Line]]]] に指定された method は
[CODE(ABNF)[[[Request-URI]]]] で識別される資源に対しては認めていません。
応答は、要求された資源に対して妥当な method の一覧を含んだ
[CODE(HTTP)[[[Allow]]]] 頭を含めなければ'''なりません'''。
]FIG]

[FIG(quote)[
[FIGCAPTION[
[536] RFC 2326 (RTSP) 11.3.1 405 Method Not Allowed
]FIGCAPTION]

> The method specified in the request is not allowed for the resource
identified by the request URI. The response MUST include an Allow
header containing a list of valid methods for the requested resource.
This status code is also to be used if a request attempts to use a
method not indicated during SETUP, e.g., if a RECORD request is
issued even though the mode parameter in the Transport header only
specified PLAY.

[[要求]]で指定された [[method]] が要求 [[URI]]
で識別される資源に対してみとめられていません。
この[[応答]]は、要求された資源に対する妥当な method
の並びを含んだ [CODE(RTSP)[[[Allow]]]]
頭を含めなければ'''なりません'''。
この状態符号は、要求が [CODE(RTSP)[[[SETUP]]]]
中に示していない method を使用しようとした時、
例えば [CODE(RTSP)[[[Transport]]]] 頭の [CODE(RTSP)[[[mode]]]]
引数で [CODE(RTSP)[[[PLAY]]]] だけを指定しているにも関わらず
[CODE(RTSP)[[[RECORD]]]] 要求が発行された時にも使用します。
]FIG]

[537] [CITE@en[RFC 7252 - The Constrained Application Protocol (CoAP)]]
( ([TIME[2014-06-27 00:59:37 +09:00]] 版))
<http://tools.ietf.org/html/rfc7252#section-5.9.2.6>

[541] [CITE@en[RFC 3507 - Internet Content Adaptation Protocol (ICAP)]]
( ([TIME[2014-06-08 07:17:07 +09:00]] 版))
<http://tools.ietf.org/html/rfc3507#section-4.3.3>