Upgrade
「Upgrade」ヘッダの概要
HTTPの「Upgrade」ヘッダは、クライアントがサーバに対して現在の接続を別のプロトコルにアップグレードする意思を示すために使用される。
例えば、クライアントがHTTP/1.1の接続をHTTP/2やWebSocketにアップグレードしたい場合、リクエストヘッダにフィールドを追加してサーバにその意思を伝える。
そして、サーバーがアップグレードに対応している場合、適切なレスポンスヘッダを返すことでアップグレードが実行される。
「Upgrade」ヘッダの使用例
「Upgrade」ヘッダを使用してHTTP/1.1の接続をHTTP/2にアップグレードする例を示す。
リクエスト
このリクエストでは、ConnectionヘッダにUpgradeとHTTP2-Settingsが指定されており、Upgradeヘッダにはh2c(HTTP/2 over cleartext TCP)が指定されている。
また、HTTP2-Settingsヘッダには、HTTP/2の設定情報がエンコードされた形で含まれている。
レスポンス
サーバがアップグレードに対応している場合、以下のようなレスポンスヘッダをクライアントに返す。
ステータスコード「101 Switching Protocols」が使用されており、ConnectionヘッダとUpgradeヘッダには、クライアントのリクエストと同じ値が設定される。これにより、クライアントとサーバーの間の接続がHTTP/2にアップグレードされる。