DNS HTTPSレコードで別ドメインにpreconnectさせる提案仕様

A Preconnect Hint for SVCB/HTTPS RR」という提案仕様がIETFに提出されています

これは、DNS HTTPSレコードを用いて、クライアントに別ドメインに対して事前接続(preconnect)させることを可能にします。

DNS HTTPS レコード

今回使う DNS HTTPSレコード自体はすでに使われてる仕組みです。

やや古い記事ですが、DNSHTTPSレコードについては以前書いたとおりです。
ブラウザがhttpsでサーバに通信する際に有用な情報を名前解決時に提供できるようになります。

asnokaze.hatenablog.com

A Preconnect Hint for SVCB/HTTPS RR

A Preconnect Hint for SVCB/HTTPS RR」の仕組みは具体例があると分かりやすいかと思います。

例えば、https://example.com はページのサブリソースとしてwww.example.comやscripts.example.orgを含むとします。

通常ブラウザは、https://example.com にアクセスしてHTMLをパースしてサブリソースを取得するために、scripts.example.orgに接続しに行きます。

preconnectHint

今回の提案では、HTTPS レコードにpreconnectHintといパラメータを追加します。

example.org IN HTTPS 1 . alpn=h2,h3 preconnectHint=www.example.com,scripts.example.org

クライアントは、example.orgの名前解決する際に合わせてこのレコードを取得し、preconnectHintで指定されたドメインに事前に接続を確立しておきます。

具体的には名前解決とTCP, TLS, QUICなどのハンドシェイクなどまで終わらせておきます(W3C Resource Hints)。そして、将来のHTTPリクエストに備える事ができます。

これにより、サブリソースを取得する際に発生するコネクション確立の待ち時間を減らすことが出来ます。