使用Alt-svc進行引導

替代服務( alternative service, Alt-svc: )標頭和它相對應的 ALT-SVC HTTP/2 frame 並不是特別為 QUIC 和 HTTP/3 所設計的。 它是為了讓伺服器端能告訴客戶端 "看,我在這個主機的這個端口用此協定提供相同的服務" 。 詳見RFC 7838

收到這樣的 Alt-svc 回應後,如果客戶端支援並希望使用其他協定,則它將在後台使用指定的協定與主機進行並行連接,並且連接成功。 如果是這樣,它將切換到該協定,而不是使用第一個連接。

如果第一個連接使用 HTTP/2 或 HTTP/1,則伺服器端可以告訴客戶端可以通過 HTTP/3 重新連接。 它可以用於同一主機或是不同但提供相同服務的主機。

Alt-svc 回應中有一個到期計時器,讓客戶端可以在指定的時間內使用建議的替代協定後將後續連接和請求直接發送給替代主機。

範例

一個帶有 Alt-Svc: 標頭的 HTTP 伺服器回應:

Alt-Svc: h3=":50781"

這指出了同一名稱的主機在 UDP 端口50781能提供 HTTP/3 服務。

客戶端可以嘗試與該端口建立 QUIC 連接。如果成功,後續將通過該連接繼續通訊,代替一開始初始的 HTTP 版本。

Last updated