6月 172019
参照 RFC7230 6.7
- Upgrade ヘッダーは、1つの HTTP/1.1 コネクション上で他のプロトコルへ移行するのに用いられる
- HTTP/2 にはこの仕組みはなく、CONNECT メソッド拡張の protocol 擬似ヘッダーにて実現される [RFC8441 4]
- クライアントは、Upgrade ヘッダーに優先度の高い順にプロトコル名のリストを設定し、送信する
- サーバーは、リストから移行するプロトコルを選択して Upgrade ヘッダーに設定し、101 Switching Protocols レスポンスを返す
-
サーバー側からプロトコルの移行を指示する場合、426 Upgrade Required レスポンスを用いる
-
Upgrade ヘッダーは hop-by-hop ヘッダーであり、指定されたプロトコルに対応していない中継者による回送を防ぐために、Connection ヘッダーに
upgrade
を指定しなければならない - サーバーが Upgrade と Expect を同時に受信した場合、101 Switching Protocols より先に 100 Continue を送信しなければならない
- 利用できるプロトコルのリストは、IANA に登録されなければならない
- Hypertext Transfer Protocol (HTTP) Upgrade Token Registry
- 事実上 WebSocket にしか用いられていないのでは