Alt-Svc

Alt-Svc は HTTP のヘッダーで、将来のリクエスト時に、そのオリジンのサーバーとして別のネットワーク上の場所(「代替サービス」)を扱うことができることをサーバーが示すことができます。

これにより、実行中のリクエストに影響を与えることなく、新しいプロトコルのバージョンを宣伝することができ、またサーバーのトラフィックを制御するのにも役立ちます。代替サービスを使用しても、エンドユーザーには見えません。URL やリクエストのオリジンのサーバーは変更されず、余分なラウンドトリップも発生しません。

構文

http
Alt-Svc: clear
Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>
Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>; persist=1
clear

特別な値 clear は、そのオリジンのすべての代替を無効にすることをオリジンが要求することを示します。

<protocol-id>

ALPN プロトコル識別子。例えば、HTTP/2 の h2 および HTTP/3 プロトコルのドラフト 25 の h3-25 があります。

<alt-authority>

任意のホストのオーバーライド、コロン、および必須のポート番号で構成される代替機関を指定する引用符付きの文字列。

ma=<max-age> 省略可

代替サービスが新鮮であると見なす秒数。 省略した場合の既定値 24 時間です。 代替サービスの項目は、最大で <max-age> から(Age ヘッダーからの)レスポンスの経過時間を差し引いた秒数までキャッシュできます。 キャッシュされた項目が期限切れになると、クライアントは新しい接続にこの代替サービスを使用できなくなります。

persist=1 省略可

通常、キャッシュされた代替サービス項目は、ネットワーク構成の変更時にクリアされます。 persist=1 引数を使用すると、そのような変更によって項目が削除されなくなります。

区切り文字としてカンマを使用して、単一の Alt-Svc ヘッダーで複数の項目を指定できます。 その場合、先にある項目がより望ましいとみなされます。

http
Alt-Svc: h2=":443"; ma=2592000;
Alt-Svc: h2=":443"; ma=2592000; persist=1
Alt-Svc: h2="alt.example.com:443", h2=":443"
Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600

仕様書

Specification
HTTP Alternative Services
# alt-svc

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Alt-Svc

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
See implementation notes.
Has more compatibility info.

関連情報

  • Alternative Services (HTTP Working Group 代表 Mark Nottingham による Alt-Svc についての記事)