426

状態符号 426 (HTTP)

[2] 426 (Upgrade Required) は、プロトコルの切り替えが必要なことを表す状態符号です。

仕様書

意味

[429] 426 は、要求を現在のプロトコルで処理することは拒みつつ、 他のプロトコルに切り替えた後なら処理する意志があることを示します >>428

構文

[5] 426 応答Upgrade: ヘッダーを含めてプロトコル(群)を指定しなければなりません >>4, >>428

[10] WebSocket接続の確立時に要求Sec-WebSocket-Version: 13 以外が指定された場合には、 426 応答Sec-WebSocket-Version: ヘッダーに対応する版(群)を指定しなければなりません >>9

歴史

[427] >>3426 「Abort」を提案していましたが、支持を集められなかったようです。

[6] 現在の 426 は、 RFC 2817 (Upgrade: TLS/1.0) により導入されました。

[7] その後 RFC 7231 により RFC 2817更新され、本状態符号の規定は改訂されました。

関連

[430] プロトコルの切り替えに使う 101 とは違って、 426 は切り替えが必要なことを表しているだけです。 426 は元々の要求の処理も、プロトコルの切り替えも、どちらも行っていません。

メモ

[11] HTTP 1.1 426 Upgrade Required () https://community.atlassian.com/t5/Trello-discussions/HTTP-1-1-426-Upgrade-Required/td-p/1461934

[12] 2020年8月末頃から Trello API 経由のデータ取得が失敗する | Qrunch(クランチ) () https://qrunch.net/@armband/entries/opOrB1EoTmxEayqj?ref=qrunch

[14]

$ telnet trello.com 80
Trying 18.136.214.18...
Connected to trello.com.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 426 Upgrade Required
date: Wed, 09 Sep 2020 06:02:08 GMT
server: envoy
connection: close
content-length: 0

Connection closed by foreign host.
[16] Upgrade: が指定されていないので違反。
$ telnet trello.com 80
Trying 18.136.214.19...
Connected to trello.com.
Escape character is '^]'.
GET /

HTTP/1.1 426 Upgrade Required
date: Wed, 09 Sep 2020 06:03:15 GMT
server: envoy
connection: close
content-length: 0

Connection closed by foreign host.
[15] 本来 GET / 改行、 でHTTP/0.9応答を返さないといけないが、 改行が2回ないと応答が返ってこなかった。