メインコンテンツまでスキップ

5. HTTP 統合 (HTTP Integration)

5.1. キャッシュとの相互作用 (Cache Interaction)

DoH 交換は HTTP キャッシュ [RFC7234] と互換性があります。DoH レスポンスの指定された新鮮度ライフタイムは、DNS レスポンスの Answer セクションの最小 TTL 以下でなければなりません (MUST)。そうでなければ、キャッシュは DNS が定義するよりも古いレスポンスを提供する可能性があります。

DoH クエリから派生した HTTP キャッシュキーには、URI とリクエストメディアタイプ(例:「application/dns-message」の Content-Type リクエストヘッダーフィールド)のみを含めなければなりません (MUST)。

DoH クライアントは Vary レスポンスヘッダーフィールド [RFC7231] を処理できなければなりません (MUST)。

5.2. HTTP/2

HTTP/2 [RFC7540] の使用により、DoH クライアントと DoH サーバー間の接続を多重化でき、追加の DNS クエリのオーバーヘッドを削減してパフォーマンスを向上させます。並行してクエリできる数はサーバーの HTTP/2 SETTINGS_MAX_CONCURRENT_STREAMS パラメーターと等しくなります。

5.3. サーバープッシュ (Server Push)

HTTP/2 サーバープッシュにより、DoH サーバーはクライアントのリクエストの前に DoH クライアントに DNS レスポンスを提供できます。これによりパフォーマンスが向上する場合があります。例えば、クライアントが名前の A レコードをクエリする場合、サーバーは同じ名前の AAAA レコードをプッシュできます。

DoH クライアントはサーバーからプッシュされたレスポンスを受信できなければなりませんが (MUST)、それらを使用する必要はありません。

5.4. コンテンツネゴシエーション (Content Negotiation)

他のフォーマットの可能性を許可するために、DoH クライアントは HTTP Accept リクエストヘッダーフィールドに HTTP Accept ヘッダーフィールドを含めることができます。このようなリクエストには DoH との最小限の相互運用性を確保するために「application/dns-message」メディアタイプを含めるべきです (SHOULD)。

HTTP Accept ヘッダーフィールドを使用する場合、DoH サーバーは少なくとも「Accept」を含む値を持つ Vary レスポンスヘッダーフィールドを返すべきです (SHOULD)。