インターネット技術タスクフォース (IETF) M. Bishop
Request for Comments: 9412 Akamai
カテゴリ: Standards Track 2023年6月
ISSN: 2070-1721

HTTP/3における ORIGIN 拡張


概要

HTTP/2用のORIGINフレームはHTTP/3にも同様に適用できますが、別途登録が必要です。本書ではHTTP/3におけるORIGINフレームについて説明します。

このメモの状態

これはインターネット標準トラック文書です。

本書はインターネット技術タスクフォース (IETF) の成果物です。IETFコミュニティのコンセンサスを表しており、公開レビューを受け、Internet Engineering Steering Group (IESG) によって公開が承認されています。インターネット標準に関する詳細は RFC 7841 のセクション 2 を参照してください。

この文書の現行の状態、訂正情報(errata)、およびフィードバックの方法については https://www.rfc-editor.org/info/rfc9412 を参照してください。

Copyright Notice

Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.


1. はじめに

既存のRFCはHTTP/2 [HTTP/2] に対する拡張を定義しており、これらはHTTP/3でも有用なままです。付録 A.2[HTTP/3] において、HTTP/2 フレームを HTTP/3 で使用するために必要な更新を説明しています。

[ORIGIN] は HTTP/2 の ORIGIN フレームを定義しており、そのフレームはある接続上で利用可能なオリジンを示します。本仕様では単一の HTTP/2 フレームタイプを定義します。

1.1. 表記規約

本書におけるキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", および "OPTIONAL" は、ここに示す通り全て大文字で現れる場合に限り、BCP 14 [RFC2119] および [RFC8174] に記載されたとおりに解釈されます。

本書のフレーム図は、フィールドの順序とサイズを示すために セクション 1.3 で定義された形式を使用しています([QUIC-TRANSPORT])。


2. HTTP/3における ORIGIN フレーム

ORIGIN HTTP/3 フレームは、サーバーがクライアントに対して、そのサーバーが接続内でオリジン集合(セクション 2.3[ORIGIN])の一部として扱ってほしいオリジンを示すことを可能にします([RFC6454] を参照)。

フレームペイロードのセマンティクスは、[ORIGIN] で定義された HTTP/2 フレームと同一です。HTTP/2 が接続の状態に関連するフレームのためにストリーム 0 を予約しているのに対し、HTTP/3 ではこれを目的とした一対の単方向ストリーム(「コントロールストリーム」と呼ばれる)を定義します。

[ORIGIN] が ORIGIN フレームをストリーム 0 で送信するとしている箇所は、HTTP/3 のコントロールストリームを意味すると解釈してください。すなわち、ORIGIN フレームはサーバーのコントロールストリーム上でサーバーからクライアントへ送信されます。

HTTP/3 の一般的なフレームレイアウトには Flags フィールドは定義されていません。ORIGIN フレームに対して定義されたフラグがないため、本仕様では HTTP/3 でそのようなフラグを伝達するメカニズムを定義しません。

2.1. フレーム のレイアウト

ORIGIN フレームは HTTP/2 で使用されるレイアウトとほとんど同一のレイアウトを持ちます。明確にするためにここで再掲します。ORIGIN フレームタイプは HTTP/2 と同様に 0x0c(10進 12)です。ペイロードは 0 個以上の Origin-Entry フィールドを含みます。

HTTP/3 Origin-Entry {
  Origin-Len (16),
  ASCII-Origin (..),
}

HTTP/3 ORIGIN Frame {
  Type (i) = 0x0c,
  Length (i),
  Origin-Entry (..) ...,
}

図 1: ORIGIN フレームのレイアウト

Origin-Entry は長さで区切られた文字列です。具体的には、以下の 2 つのフィールドを含みます。

Origin-Len:
ASCII-Origin フィールドのオクテット単位の長さを示す符号なし 16 ビット整数です。
ASCII-Origin:
OPTIONAL な文字列列で、送信側がこの接続に対して権威がある、または権威があり得ると主張するオリジンの ASCII シリアライズを含みます([RFC6454]セクション 6.2 を参照)。

3. セキュリティ上の考慮事項

本書は、[ORIGIN] および [HTTP/3] で議論されているものを超える新たなセキュリティ上の考慮事項を導入しません。


4. IANAに関する考慮事項

本書は、[HTTP/3] によって定義された「HTTP/3 Frame Types」レジストリにフレームタイプを登録します。レジストリは <https://www.iana.org/assignments/http3-parameters/> にあります。

Value:
0x0c
Frame Type:
ORIGIN
Status:
permanent
Reference:
 
Date:
2023-03-14
Change Controller:
IETF
Contact:
HTTP WG <ietf-http-wg@w3.org>

5. 参考文献

5.1. ノルマティブ参考文献

[HTTP/2]
Thomson, M., Ed. and C. Benfield, Ed., “HTTP/2”, RFC 9113, DOI 10.17487/RFC9113, 2022年6月, <https://www.rfc-editor.org/info/rfc9113>。
[HTTP/3]
Bishop, M., Ed., “HTTP/3”, RFC 9114, DOI 10.17487/RFC9114, 2022年6月, <https://www.rfc-editor.org/info/rfc9114>。
[ORIGIN]
Nottingham, M. and E. Nygren, “The ORIGIN HTTP/2 Frame”, RFC 8336, DOI 10.17487/RFC8336, 2018年3月, <https://www.rfc-editor.org/info/rfc8336>。
[RFC2119]
Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14, RFC 2119, DOI 10.17487/RFC2119, 1997年3月, <https://www.rfc-editor.org/info/rfc2119>。
[RFC8174]
Leiba, B., “Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words”, BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2017年5月, <https://www.rfc-editor.org/info/rfc8174>。

5.2. インフォマティブ参考文献

[QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., “QUIC: A UDP-Based Multiplexed and Secure Transport”, RFC 9000, DOI 10.17487/RFC9000, 2021年5月, <https://www.rfc-editor.org/info/rfc9000>。
[RFC6454]
Barth, A., “The Web Origin Concept”, RFC 6454, DOI 10.17487/RFC6454, 2011年12月, <https://www.rfc-editor.org/info/rfc6454>。

著者の連絡先

Mike Bishop
Akamai
電子メール: mbishop@evequefou.be