HTTP/1.1 Upgradeヘッダー
Upgradeヘッダーは、HTTP/1.1で導入されたHTTPヘッダーフィールドの1つである。通信の交換時に、クライアントはクリアテキストの要求を行うことから始まり、後で新しいHTTPプロトコルバージョンにアップグレードされるか、別のプロトコルに切り替えられる。コネクションのアップグレードはクライアントからリクエストされなければならない。サーバーがアップグレードを強制したい場合には、 TLSでの利用1つの用途としては、リクエストを通常のHTTPポートで開始し、Transport Layer Security(TLS)に切り替える場合が挙げられる[1]。実用的にはそのような使い方は稀であり、暗号化HTTPの通信の開始時にHTTPSを利用するほうが非常に一般的である。 サーバーは セキュアな接続を確立するためのこの方法は、次のような理由で有利である。
同一のリソースが暗号化されたセキュアな方法と暗号化されていない方法の両方でサーバーから取得できる場合、サーバーとの暗号化されたコネクションを保持しながらも、中間者がクライアントとの接続が暗号化と認証が行われていない状態を保持できてしまう可能性がある。 この手法の欠点には次のような点が挙げられる。
WebSocketでの利用WebSocketもこの仕組を使用してHTTPサーバーと互換性のある方法で接続を確立する[2]。WebSocket Protocolは2つのパートに分かれる。ハンドシェイクはupgradeされた接続を確立し、その後、実際のデータを転送する。最初に、クライアントはWebSocket接続を HTTP/2での利用かつて、HTTP Upgradeを利用して平文のHTTP/1.1接続からHTTP/2を確立する方法が規定されていた[4]。クライアントはHTTP/1.1接続を開始し、 関連項目出典
外部リンク |