このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Upgrade ヘッダー

HTTP の Upgrade リクエストレスポンスヘッダーは、すでに確立されたクライアントとサーバー間のプロトコルを、異なるプロトコルに(同じ転送プロトコルを通じて)アップグレードするために使用することができます。例えば、クライアントが HTTP 1.1 から HTTP 2.0 へ、または HTTP や HTTPS のコネクションを WebSocket へアップグレードすることができます。

警告: HTTP/2 は明確にこの仕組み/ヘッダーを使用することを禁止しています。これは HTTP/1.1 専用です。

ヘッダー種別 リクエストヘッダー, レスポンスヘッダー
禁止リクエストヘッダー はい

構文

http
Upgrade: <protocol>[/<protocol_version>]
Upgrade: <protocol>[/<protocol_version>], …, <protocolN>[/<protocol_versionN>]

ディレクティブ

<protocol>

プロトコルを推奨度の降順で、カンマ区切りで列挙します。

<protocol_version> 省略可

オプションでプロトコルのバージョンを、/ スラッシュの後に指定することができます。

解説

Upgrade ヘッダーフィールドは、クライアントがサーバーに対して、優先度の降順に列挙したプロトコルのうちの 1 つ(以上)に切り替えるよう促すために使用することができます。 例えば、クライアントが次のような GET リクエストを送信する際に、切り替えるべき推奨プロトコル(この場合は "example/1" および "foo/2")を列挙することができます。

http
GET /index.html HTTP/1.1
Host: www.example.com
Connection: upgrade
Upgrade: example/1, foo/2

メモ: Upgrade ヘッダーは、Connection ヘッダーを upgrade に指定して一緒に送る必要があります。

サーバーはどのような理由であろうと、無視することができます。その場合、サーバーは Upgrade ヘッダーが送信されていないかのように応答する必要があります(たとえば 200 OK)。 サーバーが接続をアップグレードすることを決めた場合、次のようにする必要があります。

  1. 101 Switching Protocols レスポンスステータスを返し、そこに切り替え先のプロトコルを示した Upgrade ヘッダーを入れる必要があります。例えば次のようにします。

    http
    HTTP/1.1 101 Switching Protocols
    Upgrade: foo/2
    Connection: Upgrade
    
  2. 元のリクエストに新しいプロトコルを使用してレスポンスを送ります(サーバーは、元のリクエストを完了できるプロトコルにのみ切り替えることができます)。

サーバーは、 426 Upgrade Required レスポンスの一部としてこのヘッダーを送信することもあります。これはサーバーが現在のプロトコルではリクエストを実行しないが、プロトコルが変更されれば実行するかもしれないことを示すものです。クライアントは上記の手順でプロトコルの変更を要求することができます。

より詳細な情報と例は、プロトコルのアップグレードメカニズムに記載されています。

Upgrade ヘッダーで複数のプロトコルを指定

次のリクエストは、複数のプロトコルを推奨順に列挙しています。

http
Connection: upgrade
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

WebSocket へのアップグレード

これは、HTTP コネクションを WebSocket にアップグレードするために使用する、よくあるヘッダーの組み合わせです。 詳しくはWebSocket 接続へのアップグレードを参照してください。

http
Connection: Upgrade
Upgrade: websocket

仕様書

仕様書
HTTP Semantics
# field.upgrade
HTTP Semantics
# status.426
HTTP/2
# informational-responses

ブラウザーの互換性

関連情報