20180201追記
asnokaze.hatenablog.com
HTTP2.0では通信を開始する前に、HTTP1.1で通信するかHTTP2.0で通信するかネゴシエーションする必要がある。
DNSレコードを利用してサーバがHTTP2.0に対応しているか確認する方法が提案されている。
SRVレコード
SRVレコードを用いる場合は以下のようになる。
SRVレコードのフォーマットはこのような形
サービス.プロトコル.ドメイン名 | TTL | Class | レコード名 | 優先度 | 重さ | ポート | ターゲット |
---|---|---|---|---|---|---|---|
_http._tcp.example.com | 3600 | in | srv | 20 | 20 | 80 | www.example.com |
SRVレコードでは、サービス名やトランスポートのプロトコルの名前を指定して問い合わせを行うため、それらごとに問い合わせする必要がある。
また、アプリケーションレイヤのプロトコルのバージョンに関する情報も得られない。
SVCINFO
そこで、新たにSVCINFOというレコードが提案されている(仕様URL)。
HTTPbis interim meetingでも議論されたようだ(資料URL)。
SVCINFOレコードのフォーマットはこのような形
ドメイン名 | TTL | Class | レコード名 | インスタンスID | 優先度 | プロトコル | ポート | バージョン |
---|---|---|---|---|---|---|---|---|
www.example.com | 3600 | in | svcinfo | 1 | 10 | tcp | 80 | 1.1 |
www.example.com | 3600 | in | svcinfo | 1 | 5 | tcp | 49080 | 2.0 |
www.example.com | 3600 | in | svcinfo | 1 | 1 | sctp | 80 | 2.0 |
(インスタンスIDは、そられが同一のサービスであることを示す)
仕様の4章にいくつかレコードの例があるので見ると分かりやすいかも。