# Alt-svc を使ったブートストラップ

Alternate service (Alt-svc:) ヘッダとそれに対応する `ALT-SVC` HTTP/2 フレームは、QUIC や HTTP/3 用に設計されたわけではありません。

これらはサーバーがクライアントに対し&#x3066;*「ちなみに私は同じサービスをこのホスト、プロトコル、ポートでも実行していますよ」*&#x3068;伝えるための、既に設計・作成されているメカニズムの一部です。

詳細は [RFC 7838](https://tools.ietf.org/html/rfc7838) を参照してください。

このような Alt-svc 応答を受け取ったクライアントは、クライアントが代替プロトコルをサポートしておりかつそれを希望する場合に、指定されたプロトコルで当該ホストへバックグラウンドで並行接続をし、その接続が成功した場合には最初のコネクションの代わりにそのプロトコルへと切り替えを行います。

最初のコネクションが HTTP/2、または HTTP/1 を使用している場合、サーバーはクライアントに対してHTTP/3 で再接続可能であると伝えることができます。それは同じホストに対してかもしれませんし、そのオリジンを提供することが可能な別のホストかもしれません。

こうした Alt-svc 応答で与えられる情報には、ある特定の期間だけクライアントが提案された代替プロトコルを使用して後続のコネクションおよび要求を代替ホストに直接指示できるよう、有効期限が設けられます。

## Example

HTTP サーバーはレスポンスヘッダに `Alt-Svc:` を含みます:

```
Alt-Svc: h3=":50781"
```

これは HTTP/3 がこのレスポンスを得るために使われた同じホスト名の UDP ポート 50781 番で利用可能であることを示します。

クライアントはその宛先ホストに対して QUIC コネクションの確立を試みることが可能で、成功した場合は最初の HTTP バージョンではなく、確立されたその代替接続でオリジンと通信を続けることができます。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://http3-explained.haxx.se/ja/h3/h3-altsvc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
