| 인터넷 엔지니어링 태스크 포스 (IETF) | M. Bishop |
| 요청 의견(Request for Comments): 9412 | Akamai |
| 분류: 표준 트랙 | 2023년 6월 |
| ISSN: 2070-1721 |
HTTP/3의 ORIGIN 확장
초록
HTTP/2용 ORIGIN 프레임은 HTTP/3에도 동일하게 적용되지만 별도로 등록되어야 합니다. 이 문서는 HTTP/3용 ORIGIN 프레임을 설명합니다.
이 메모의 상태
이 문서는 인터넷 표준 트랙 문서입니다.
이 문서는 인터넷 엔지니어링 태스크 포스(IETF)의 산물입니다. 이는 IETF 커뮤니티의 합의를 반영합니다. 이 문서는 공개 검토를 거쳤고 인터넷 엔지니어링 운영 그룹(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/3에서도 여전히 유용한 HTTP/2 [HTTP/2] 확장을 정의합니다. 부록 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. ORIGIN HTTP/3 프레임
ORIGIN HTTP/3 프레임은 서버가 해당 서버가 클라이언트에게 이 연결에서 하나 이상의 Origin Set 멤버로 간주되기를 원하는 오리진([RFC6454])을 표시할 수 있게 합니다(참조: Section 2.3 of [ORIGIN])
프레임 페이로드의 의미는 [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는 길이로 구분된 문자열입니다. 구체적으로, 두 개의 필드를 포함합니다:
- Origin-Len:
-
ASCII-Origin 필드의 옥텟 단위 길이를 나타내는 부호 없는 16비트 정수입니다.
- ASCII-Origin:
-
보낸 이가 이 연결에 대해 권한이 있거나 권한을 가질 수 있다고 주장하는 오리진([RFC6454], Section 6.2)의 ASCII 직렬화를 포함하는 OPTIONAL 문자 시퀀스입니다.
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., 편집자 및 C. Benfield, 편집자, “HTTP/2”, RFC 9113, DOI 10.17487/RFC9113, 2022년 6월, <https://www.rfc-editor.org/info/rfc9113>.
- [HTTP/3]
- Bishop, M., 편집자, “HTTP/3”, RFC 9114, DOI 10.17487/RFC9114, 2022년 6월, <https://www.rfc-editor.org/info/rfc9114>.
- [ORIGIN]
- Nottingham, M. 및 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., 편집자 및 M. Thomson, 편집자, “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>.