[507] [DFN[[CODE(HTTP)[[[502]]]]]] ([DFN[[[Bad Gateway]]]])
は、[[上流]]から返された[[応答]]が[[非妥当]]だったことを示す[[状態符号]]です。

* 仕様書

[REFS[
- [505] '''[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.6.3>'''
- [2] [CITE@en[RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]] ([TIME[2014-06-07 01:59:35 +09:00]] 版) <https://tools.ietf.org/html/rfc7230#page-26>
- [4] [CITE@en[RFC 2295 - Transparent Content Negotiation in HTTP]] ([TIME[2014-08-31 19:36:42 +09:00]] 版) <http://tools.ietf.org/html/rfc2295#section-11.1>
- [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#section-9.8>
- [8] [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.9>
]REFS]

* 意味

[506] [CODE(HTTP)[[[502]]]] は[[鯖]]が[[関門]]や[[串]]として動作している時に[[要求]]を処理しようとしてアクセスした[[内向き]]の[[鯖]]から[[非妥当]]な[[応答]]を受信したことを示します
[SRC[>>505]]。

* 文脈

[3] [[串]]や[[関門]]は、 [CODE(MIME)@en[[[message/http]]]] 以外の[[応答メッセージ]]で[[行折り畳み]]を見つけた時は、これを [[SP]]
に置き換えるか、または [CODE(HTTP)[[[502]]]] をかわりに返さなければ[['''なりません''']]。
その場合[[メッセージ本体]]は[[行折り畳み]]が含まれていることを示す[[表現]]が好ましいとされています。
[SRC[>>2]]

[503] [[応答メッセージ]]の [CODE(HTTP)[[[Content-Length:]]]]
が無視されない場合で、複数あったり[[非妥当]]だったりする場合は、
[[串]]は[[クライアント]]には [CODE(HTTP)[[[502]]]] [[応答]]を返し、
[[鯖]]との[[接続]]は閉じなければ[['''なりません''']] [SRC[>>2]]。

[7] [CODE(HTTP)@en[[[COPY]]]] [[要求]] [SRC[>>6]] や
[CODE(HTTP)@en[[[MOVE]]]] [[要求]] [SRC[>>8]]
の [CODE(HTTP)@en[[[Destination:]]]]
[[ヘッダー]]で指定された[[終点資源]]が異なるシステムにあるなどの理由で認められない場合、
[CODE(HTTP)[[[502]]]] [[応答]]を返すことができます。

[5] [[利用者エージェント]]は、[[選択応答]]に[[折衝可能資源]]の[[隣接異体資源]]でない[[異体]]が含まれていれば、 [CODE(HTTP)[[[502]]]] [[応答]]に置き換えてエラーを表示することができます [SRC[>>4]]。

* 関連

[9] [CITE[ブレイブウィッチーズ]]とは無関係です。

* 歴史

[FIG(quote)[
[FIGCAPTION[
[1] RFC 1945 (HTTP/1.0); RFC 2068・RFC 2616 (HTTP/1.1) 10.5.3 502 Bad Gateway
]FIGCAPTION]

> The server, while acting as a gateway or proxy, received an invalid
response from the upstream server it accessed in attempting to fulfill the request.

関門又は串として動作しているサーバーは、要求を満たそうとして接続した上流サーバーから不当な応答を受取りました。
]FIG]

[REFS[
- [504] [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.3.3>
]REFS]

[508] [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>

[509] [CITE[Status codes in HTTP]]
( ([TIME[1999-10-27 03:40:19 +09:00]] 版))
<http://www.w3.org/Protocols/HTTP/HTRESP.html#z12>

[FIG(quote)[
[FIGCAPTION[
[10] [CITE[RESTful HTTP API - Fedora 4.0 Documentation - DuraSpace Wiki]]
([TIME[2017-03-02 23:33:08 +09:00]])
<https://wiki.duraspace.org/display/FEDORA40/RESTful+HTTP+API>
]FIGCAPTION]

> 
> 502 Destination URI isn't a valid resource path

]FIG]


[FIG(quote)[
[FIGCAPTION[
[11] [CITE[CloudFront で SSL/TLS の証明書を使用するための要件 - Amazon CloudFront]]
([TIME[2017-10-10 15:15:18 +09:00]])
<http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html>
]FIGCAPTION]

> 証明書のドメイン名のうち 1 つは、オリジンドメイン名に指定したドメイン名と一致する必要があります。ドメイン名が一致しない場合、CloudFront は、ビューワーに HTTP ステータスコード 502 (Bad Gateway) を返します。

]FIG]
