[10] [DFN[[CODE(HTTP)[[[421]]]]]] ([DFN@en[[[Misdirected Request]]]]) は、
[[要求]]が[[応答]]を生成できない[[サーバー]]へと送信されたことを示す[[状態符号]]です
[SRC[>>8]]。

* 仕様書

[REFS[
- [8] '''[CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-9.1.2>'''
- [17] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-11.7>
- [18] [CITE@en[RFC 7838 - HTTP Alternative Services]] ([TIME[2016-04-17 23:25:39 +09:00]] 版) <https://tools.ietf.org/html/rfc7838#section-6>
]REFS]

* 文脈

[11] [CODE(HTTP)[[[421]]]] [[応答]]は、[[対象URL]]の [[URL scheme]] と
[[authority]] の組み合わせについて[[応答]]を生成するよう設定されていない[[サーバー]]が送ることができます [SRC[>>8]]。

;; [12] [[HTTP接続]]の再利用の項を参照。

[13] [[プロキシ]]は、 [CODE(HTTP)[[[421]]]] [[応答]]を[[生成]]しては[['''なりません''']]
[SRC[>>8]]。

;; [15] [[プロキシ]]が指定された [[URL]] への接続を禁止されている場合に何を返すべきなのかは不明です。
[CODE(HTTP)[[[403]]]] では通常のエラー[[応答]]と区別できないため不適切そうです。
[CODE(HTTP)[[[504]]]] でしょうか。

[19] [[代替サービス]]として使われた[[サーバー]]が実際には
[[authoritative]] でないときに使うことができます [SRC[>>18]]。

* 処理

[20] [[代替サービス]]から [CODE(HTTP)@en[421]] [[応答]]を受信した[[クライアント]]は、
[[代替サービス]]の[[キャッシ]]から当該[[代替サービス]]の情報を削除しなければ[MUST[なりません]]
[SRC[>>18]]。

[9] [CODE(HTTP)[[[421]]]] [[応答]]を受信した[[クライアント]]は、
[[要求メソッド]]が[[冪等]]か否かに関わらず、
異なる[[接続]]
([[代替サービス]]の場合は、他の[[代替サービス]]または[[起源サーバー]]への[[接続]] [SRC[>>18]])
で[[要求]]を再試行できます。 [SRC[>>8]]

[21] [CODE(HTTP)[421]] [[応答]]の [CODE(HTTP)@en[Alt-Svc:]]
[[ヘッダー]]は、無視しなければ[MUST[なりません]] [SRC[>>18]]。

[14] [CODE(HTTP)[[[421]]]] [[応答]]は[[キャッシュ可能]]です [SRC[>>8]]。

;; [16] [[キャッシュ]]しなくていい気がしますが...

* 歴史

** PEP (HTTP)

[REFS[
- [1] [CITE[PEP - an Extension Mechanism for HTTP]] ([TIME[1998-04-07 21:31:46 +09:00]] 版) <http://www.w3.org/TR/WD-http-pep#_Toc404743961>
]REFS]

> 421 Bad Mapping

** SIP

[REFS[
- [2] [CITE@en[RFC 3261 - SIP: Session Initiation Protocol]] ([TIME[2012-01-09 20:48:30 +09:00]] 版) <http://tools.ietf.org/html/rfc3261#section-21.4.16>
]REFS]

> 421 Extension Required


[3] [CITE@en[RFC 2660 - The Secure HyperText Transfer Protocol]]
( ([TIME[2013-07-20 22:21:48 +09:00]] 版))
<http://tools.ietf.org/html/rfc2660#section-5.2.3>

[4] [CITE@en[RFC 2660 - The Secure HyperText Transfer Protocol]]
( ([TIME[2014-11-09 14:12:37 +09:00]] 版))
<http://tools.ietf.org/html/rfc2660#section-5.2.3>

[5] [CITE[PEP - an Extension Mechanism for HTTP]]
( ([TIME[1998-04-08 06:31:46 +09:00]] 版))
<http://www.w3.org/TR/WD-http-pep#_Toc404743961>

[6] [CITE@en-US[nsHttpTransaction.cpp - DXR]]
([TIME[2015-04-01 22:49:55 +09:00]] 版)
<https://dxr.mozilla.org/mozilla-central/source/netwerk/protocol/http/nsHttpTransaction.cpp#1500>

[7] [CITE@en[draft-ietf-httpbis-alt-svc-05 - HTTP Alternative Services]]
([TIME[2015-02-06 09:19:16 +09:00]] 版)
<http://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-05#section-6>