| ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค (IETF) | M. Nottingham |
| Request for Comments: 8336 | E. Nygren |
| ์นดํ ๊ณ ๋ฆฌ: ํ์ค ํธ๋ | Akamai |
| ISSN: 2070-1721 | 2018๋ 3์ |
ORIGIN HTTP/2 ํ๋ ์
์์ฝ
์ด ๋ฌธ์๋ ์ฃผ์ด์ง ์ฐ๊ฒฐ์์ ์ด๋ค ์ค๋ฆฌ์ง์ด ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ฅผ ๋ํ๋ด๊ธฐ ์ํ HTTP/2์ ORIGIN ํ๋ ์์ ๋ช ์ธํฉ๋๋ค.
์ด ๋ฉ๋ชจ์ ์ํ
์ด ๋ฌธ์๋ ์ธํฐ๋ท ํ์ค ํธ๋ ๋ฌธ์์ ๋๋ค.
์ด ๋ฌธ์๋ ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค(IETF)์ ์ฐ๋ฌผ์ ๋๋ค. ์ด ๋ฌธ์๋ IETF ์ปค๋ฎค๋ํฐ์ ํฉ์๋ฅผ ๋ํ๋ ๋๋ค. ๊ณต๊ฐ ๊ฒํ ๋ฅผ ๊ฑฐ์ณค์ผ๋ฉฐ ์ธํฐ๋ท ์์ง๋์ด๋ง ์ด์ ๊ทธ๋ฃน(IESG)์ ์ถํ ์น์ธ์ ๋ฐ์์ต๋๋ค. ์ธํฐ๋ท ํ์ค์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ RFC 7841์ ์น์ 2์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์์ ํ์ฌ ์ํ, ์ ์คํ ๋ฐ ์ด์ ๋ํ ํผ๋๋ฐฑ ์ ๊ณต ๋ฐฉ๋ฒ์ ๊ดํ ์ ๋ณด๋ https://www.rfc-editor.org/info/rfc8336์์ ํ์ธํ ์ ์์ต๋๋ค.
Copyright Notice
Copyright (c) 2018 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
1. ์๊ฐ
HTTP/2 [RFC7540]๋ ์ผ๋ถ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๋ก ๋ค๋ฅธ ์ค๋ฆฌ์ง([RFC6454])์ ๋์ผํ ์ฐ๊ฒฐ๋ก ํฉ์ณ์(coalesce) ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ์ฐ๊ฒฐ์ด ํฉ์ณ์ง ์ค๋ฆฌ์ง์ ๋ํด ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ ์์ด, 421 (Misdirected Request) ์ํ ์ฝ๋([RFC7540], ์น์ 9.1.2)๊ฐ ์ ์๋์์ต๋๋ค.
์ด์ ๊ฐ์ด ์ํ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ๋์์ ์์ฒญ์์ ๋ณต๊ตฌํ ์ ์๊ฒ ํด์ฃผ์ง๋ง, ์ง์ฐ(latency)์ด ์ถ๊ฐ๋๋ ๋๊ฐ๋ฅผ ์๋ฐํฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ณธ ๋ช ์ธ๋ ์๋ฒ๊ฐ ์ฐ๊ฒฐ์์ ์ด๋ค ์ค๋ฆฌ์ง์ ๋ํด ์ฐ๊ฒฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํจ์ ํ์ํ ์ ์๋๋ก ํ๋ ์๋ก์ด HTTP/2 ํ๋ ์ ํ์ "ORIGIN"์ ์ ์ํฉ๋๋ค.
์ถ๊ฐ๋ก ๊ฒฝํ์ ์ผ๋ก HTTP/2๊ฐ DNS์ ์๋ฒ ์ธ์ฆ์ ๋ ๋ค๋ฅผ ์ฌ์ฉํด ์๋ฒ ๊ถํ์ ํ๋ฆฝํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ ๋ถ๋ด์ด ํฐ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด ๋ช ์ธ๋ ORIGIN ํ๋ ์์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ DNS ํ์ธ ์๊ตฌ์ฌํญ์ ์ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ผ๋ถ DNS ์กฐํ์ ๊ด๋ จ๋ ์ง์ฐ์ ์ ๊ฑฐํ๋ ๋ฑ ์ถ๊ฐ์ ์ธ ์ด์ ์ด ์์ต๋๋ค.
1.1. ํ๊ธฐ ๊ท์ฝ
2. The ORIGIN HTTP/2 Frame
์ด ๋ฌธ์๋ ORIGIN์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ก์ด HTTP/2 ํ๋ ์ ํ์ ([RFC7540], ์น์ 4)์ ์ ์ํฉ๋๋ค. ์ด ํ๋ ์์ ์๋ฒ๊ฐ ํด๋น ์ฐ๊ฒฐ ๋ด์์ ํด๋ผ์ด์ธํธ๊ฐ Origin Set(์น์ 2.3)์ ๊ตฌ์ฑ์์ผ๋ก ๊ฐ์ฃผํ๊ธฐ๋ฅผ ์ํ๋ ์ค๋ฆฌ์ง([RFC6454])์ ํ์ํ ์ ์๊ฒ ํฉ๋๋ค.
2.1. ๊ตฌ๋ฌธ
ORIGIN ํ๋ ์ ํ์ ์ 0xc(์ญ์ง์ 12)์ด๋ฉฐ ํ๋ ์ด์์ Origin-Entry ํ๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
+-------------------------------+-------------------------------+ | Origin-Entry (*) ... +-------------------------------+-------------------------------+
Origin-Entry๋ ๊ธธ์ด๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ ๋๋ค:
+-------------------------------+-------------------------------+ | Origin-Len (16) | ASCII-Origin? ... +-------------------------------+-------------------------------+
๊ตฌ์ฒด์ ์ผ๋ก๋:
- Origin-Len:
- ASCII-Origin ํ๋์ ๊ธธ์ด๋ฅผ ์ฅํ ๋จ์๋ก ๋ํ๋ด๋ ๋ถํธ ์๋ 16๋นํธ ์ ์์ ๋๋ค.
- Origin:
- ๋ณด๋ธ์ด๊ฐ ์ด ์ฐ๊ฒฐ์ด ๊ถํ์ ๊ฐ์ง๊ฑฐ๋ ๊ถํ์ ๊ฐ์ง ์ ์๋ค๊ณ ์ฃผ์ฅํ๋ ์ค๋ฆฌ์ง์ ASCII ์ง๋ ฌํ๋ฅผ ํฌํจํ๋ ์ ํ์ ๋ฌธ์ ์ํ์ค([RFC6454], ์น์ 6.2)์ ๋๋ค.
ORIGIN ํ๋ ์์ ํ๋๊ทธ๋ฅผ ์ ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํฅํ ์ด ๋ช ์ธ์ ์ ๋ฐ์ดํธ๋ ํ๋๊ทธ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์น์ 2.2๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
2.2. ORIGIN ํ๋ ์ ์ฒ๋ฆฌ
ORIGIN ํ๋ ์์ HTTP/2์ ๋ํ ๋น์ค์ ํ์ฅ์ ๋๋ค. ์ด ํ๋ ์์ ์ง์ํ์ง ์๋ ์๋ํฌ์ธํธ๋ ์์ ์ ์ด๋ฅผ ์์ ํ๊ฒ ๋ฌด์ํ ์ ์์ต๋๋ค.
๊ตฌํ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ ํ๋ฉด, ์ด ํ๋ ์์ Origin Set(์น์ 2.3)์ ์ด๊ธฐํํ๊ณ ์กฐ์ํ๋ ๋ฐ ์ฌ์ฉ๋์ด ํด๋ผ์ด์ธํธ๊ฐ ์ค๋ฆฌ์ง ์๋ฒ์ ๊ถํ์ ํ๋ฆฝํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค(์์ธํ ๋ด์ฉ์ ์น์ 2.4 ์ฐธ์กฐ).
ORIGIN ํ๋ ์์ ๋ฐ๋์ stream 0์์ ์ ์ก๋์ด์ผ ํฉ๋๋ค; ๋ค๋ฅธ ์คํธ๋ฆผ์์์ ORIGIN ํ๋ ์์ ์ ํจํ์ง ์์ผ๋ฉฐ ๋ฌด์๋์ด์ผ ํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ORIGIN ํ๋ ์์ "h2" ํ๋กํ ์ฝ ์๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ฐ๊ฒฐ์์๋ง ์ ํจํ๋ฉฐ, ํ๋กํ ์ฝ ์ ์์ ์ํด ๋ช ์์ ์ผ๋ก ์ง๋ช ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ "h2c" ํ๋กํ ์ฝ ์๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ฐ๊ฒฐ์์ ์์ ๋๋ฉด ๋ฌด์๋์ด์ผ ํฉ๋๋ค.
์ด ๋ช ์ธ๋ ORIGIN ํ๋ ์์ ๋ํ ํ๋๊ทธ๋ฅผ ์ ์ํ์ง ์์ง๋ง, ํฅํ IETF ํฉ์์ ๋ฐ๋ฅธ ์ ๋ฐ์ดํธ๊ฐ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฒ์ ๋ค ํ๋๊ทธ(0x1, 0x2, 0x4, 0x8)๋ ํ์ ํธํ์ฑ์ ๊นจ๋ ๋ณ๊ฒฝ์ ์ํด ์์ฝ๋์ด ์์ผ๋ฏ๋ก, ์ด๋ค ์ค ํ๋๋ผ๋ ์ค์ ๋ ๊ฒฝ์ฐ ํด๋น ํ๋๊ทธ์ ์๋ฏธ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ์ด ๋ช ์ธ ์ค์ ํด๋ผ์ด์ธํธ๋ ํด๋น ORIGIN ํ๋ ์์ ๋ฌด์ํด์ผ ํฉ๋๋ค. ๋๋จธ์ง ํ๋๊ทธ๋ ํ์ ํธํ์ฑ ์๋ ๋ณ๊ฒฝ์ ์ํด ์์ฝ๋์ด ์์ผ๋ฉฐ ์ด ๋ช ์ธ์ ์ค์ํ๋ ํด๋ผ์ด์ธํธ์ ์ฒ๋ฆฌ์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
ORIGIN ํ๋ ์์ ์ฐ๊ฒฐ์ ์์ฑ(property)์ ์ค๋ช ํ๋ฏ๋ก ํ ๋จ์๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ค๊ฐ ์ฅ์น๋ ORIGIN ํ๋ ์์ ์ ๋ฌํด์๋ ์ ๋ฉ๋๋ค. ํ๋ก์ ์ฌ์ฉ์ผ๋ก ๊ตฌ์ฑ๋ ํด๋ผ์ด์ธํธ๋ ํ๋ก์๋ก๋ถํฐ ์์ ํ ORIGIN ํ๋ ์์ ๋ฌด์ํด์ผ ํฉ๋๋ค.
ํ๋ ์ ํ์ด๋ก๋์ ๊ฐ ASCII-Origin ํ๋๋ ์ค๋ฆฌ์ง์ ASCII ์ง๋ ฌํ๋ก ํ์ฑ๋์ด์ผ ํฉ๋๋ค([RFC6454], ์น์ 6.2). ํ์ฑ์ ์คํจํ๋ฉด ํด๋น ํ๋๋ ๋ฌด์๋์ด์ผ ํฉ๋๋ค.
ORIGIN ํ๋ ์์ ์์ผ๋์นด๋ ์ด๋ฆ(์: "*.example.com")์ Origin-Entry์์ ์ง์ํ์ง ์๋๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ผ๋์นด๋ ์ธ์ฆ์๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ORIGIN์ ์ ์กํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ORIGIN์ ์ดํดํ ๋ ๋ช ์์ ์ผ๋ก ๋์ด๋์ง ์์ ์ค๋ฆฌ์ง์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ๋ฅํด์ง๋๋ค.
ORIGIN ํ๋ ์์ ์ฒ๋ฆฌํ๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ๋ก A๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
2.3. The Origin Set
์ฃผ์ด์ง ์ฐ๊ฒฐ์์ ์ฌ์ฉ๋ ์ ์๋ ์ค๋ฆฌ์ง๋ค์ ์งํฉ(์ฐธ์กฐ: [RFC6454])์ ๋ณธ ๋ช ์ธ์์๋ Origin Set์ด๋ผ ๋ถ๋ฆ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๊ฒฐ์ Origin Set์ ์ด๊ธฐํ๋์ง ์์ ์ํ์ ๋๋ค. ์ด๊ธฐํ๋์ง ์์ Origin Set์ ํด๋ผ์ด์ธํธ๊ฐ [RFC7540]์ ์น์ 9.1.1์ ์ ์๋ ๋ณํฉ ๊ท์น(coalescing rules)์ ์ ์ฉํจ์ ์๋ฏธํฉ๋๋ค.
ORIGIN ํ๋ ์์ด ์ฒ์ ์์ ๋์ด ํด๋ผ์ด์ธํธ์ ์ํด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉด, ํด๋น ์ฐ๊ฒฐ์ Origin Set์ ์ด๊ธฐ ์ค๋ฆฌ์ง(initial origin)์ ํฌํจํ๋๋ก ์ ์๋ฉ๋๋ค. ์ด๊ธฐ ์ค๋ฆฌ์ง์ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- Scheme: "https"
- Host: Server Name Indication(SNI)([RFC6066], ์น์ 3)์ ํ์๋ ๊ฐ(์๋ฌธ์๋ก ๋ณํ); SNI๊ฐ ์์ผ๋ฉด ์ฐ๊ฒฐ์ ์๊ฒฉ ์ฃผ์(์ฆ, ์๋ฒ์ IP ์ฃผ์)
- Port: ์ฐ๊ฒฐ์ ์๊ฒฉ ํฌํธ(์ฆ, ์๋ฒ์ ํฌํธ)
๊ทธ ORIGIN ํ๋ ์(๋ฐ ์ดํ์ ํ๋ ์) ๋ด์ฉ์ ์๋ฒ๊ฐ Origin Set์ ์๋ก์ด ์ค๋ฆฌ์ง์ ์ ์ง์ ์ผ๋ก ์ถ๊ฐํ๋๋ก ํ์ฉํฉ๋๋ค(์์ธํ ๋ด์ฉ์ ์น์ 2.2 ์ฐธ์กฐ).
Origin Set์ ๋ํ 421 (Misdirected Request) ์๋ต ์ํ ์ฝ๋์ ์ํฅ์ ๋ฐ์ต๋๋ค(์์ธํ ๋ด์ฉ์ [RFC7540], ์น์ 9.1.2). ์ด ์ํ ์ฝ๋๋ฅผ ํฌํจํ ์๋ต์ ์์ ํ๋ฉด, ๊ตฌํ๋ ํด๋ผ์ด์ธํธ๋ ํด๋น ์์ฒญ์ ์ค๋ฆฌ์ง์ ASCII ์ง๋ ฌํ(์ฐธ์กฐ: [RFC6454], ์น์ 6.2)๋ฅผ ์์ฑํ๊ณ , ์กด์ฌํ๋ฉด ์ด๋ฅผ ์ฐ๊ฒฐ์ Origin Set์์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
- Note:
- ORIGIN ํ๋ ์์ ๋์ฒด ์๋น์ค๋ก ์ด๊ธฐํ๋ ์ฐ๊ฒฐ([RFC7838])์ ๋ณด๋ผ ๋, ์ด๊ธฐ Origin Set(์น์ 2.3)์ ์ ์ ํ ์คํด๊ณผ ํธ์คํธ ์ด๋ฆ์ ๊ฐ์ง ์ค๋ฆฌ์ง์ ํฌํจํ๊ฒ ๋ฉ๋๋ค(RFC 7838์ ์ค๋ฆฌ์ง์ ํธ์คํธ ์ด๋ฆ์ SNI์ ๋ณด๋ด๋๋ก ์ง์ ํจ). ๊ทธ๋ฌ๋ ์ด๊ธฐ Origin Set์ ์ค์ ๋ก ์ฌ์ฉ ์ค์ธ ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋๋ฏ๋ก, ์๋๋ ์ค๋ฆฌ์ง์ ํฌํธ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์๋๋ ์ค๋ฆฌ์ง์ ORIGIN ํ๋ ์์ ๋ช ์์ ์ผ๋ก ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, "https://example.com"์ ๋ํ ์์ฒญ์ ํ๋ ํด๋ผ์ด์ธํธ๊ฐ ("h2", "x.example.net", "8443")์ ์๋ ๋์ฒด ์๋น์ค๋ก ์๋ด๋ ๊ฒฝ์ฐ, ํด๋น ๋์ฒด ์๋น์ค๊ฐ ORIGIN ํ๋ ์์ ๋ณด๋ด๋ฉด ์ด๊ธฐ ์ค๋ฆฌ์ง์ "https://example.com:8443"๊ฐ ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ํด๋น ์ค๋ฆฌ์ง์ด ORIGIN ํ๋ ์์ ๋ช ์์ ์ผ๋ก ํฌํจ๋์ง ์์ผ๋ฉด ๊ทธ ๋์ฒด ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ "https://example.com"์ ๋ํ ์์ฒญ์ ํ ์ ์์ต๋๋ค.
3. IANA ๊ณ ๋ ค์ฌํญ
์ด ๋ช ์ธ๋ "HTTP/2 Frame Type" ๋ ์ง์คํธ๋ฆฌ์ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
- Frame Type: ORIGIN
- Code: 0xc
- Specification: RFC 8336
4. ๋ณด์ ๊ณ ๋ ค์ฌํญ
ORIGIN ํ๋ ์์ ๋ด์ฉ์ ๋ฌด๋นํ์ ์ผ๋ก ์ ๋ขฐํ๋ ํด๋ผ์ด์ธํธ๋ ๋ค์ํ ๊ณต๊ฒฉ์ ์ทจ์ฝํด์ง ์ ์์ต๋๋ค. ์ํ์ฑ ์ ์น์ 2.4๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ค๋ฆฌ์ง์ ๊ถํ์ ๊ฒฐ์ ํ ๋ DNS ์กฐํ ์๊ตฌ๋ฅผ ์ํํ๋ฉด, ์ ํจํ ์ธ์ฆ์๋ฅผ ๊ฐ์ง ๊ณต๊ฒฉ์๋ ๋ ์ด์ ๊ฒฝ๋ก ์์ ์์ด์ผ๋ง ํธ๋ํฝ์ ์์ ์๊ฒ ๋ฆฌ๋๋ ํธํ ํ์๊ฐ ์์ต๋๋ค. ๋์ ๊ณต๊ฒฉ์๋ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋๋ก ์ ๋ํ๊ธฐ๋ง ํ๋ฉด ๊ทธ๋ค์ ๊ธฐ์กด ์ฐ๊ฒฐ๋ก ๋์์ ๋ํ ์ฐ๊ฒฐ์ ํฉ์ณ์(coalesce) ํธ๋ํฝ์ ์ ๋ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ DNS ์กฐํ๋ฅผ ๊ฑด๋๋ฐ๊ธฐ๋ก ์ ํํ ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์๊ฐ ์ ๋นํ๋ค๋ ๋์ ์ ๋ขฐ๋ฅผ ํ๋ฆฝํ๊ธฐ ์ํ ๋์ฒด ์๋จ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์๊ฐ Certificate Transparency ๋ก๊ทธ์ ํฌํจ๋์์์ ์ฆ๋ช ๋ฐ์๊ฑฐ๋([RFC6962]), ์ต๊ทผ์ OCSP ์๋ต([RFC6960])์ ํตํด ์ธ์ฆ์๊ฐ ํ๊ธฐ๋์ง ์์์์ ํ์ธํ ๊ฒฝ์ฐ์๋ง DNS ์กฐํ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. OCSP๋ TLS์ "status_request" ํ์ฅ([RFC6066])์ ์ฌ์ฉํด ์ป์ ์ ์์ต๋๋ค.
Origin Set์ ํฌ๊ธฐ๋ ์ด ๋ช ์ธ์์ ์ ํ๋์ง ์์ผ๋ฏ๋ก ๊ณต๊ฒฉ์๊ฐ ํด๋ผ์ด์ธํธ ์์์ ๊ณ ๊ฐ์ํค๋ ๋ฐ ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ํ์ ์ํํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๋ ์ํ ์ปค๋ฏธํธ๋จผํธ(state commitment)๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๋๋ฌด ์ปค์ง๋ฉด ์ฐ๊ฒฐ์ ๋ซ์ ์ ์์ต๋๋ค.
5. ์ฐธ์กฐ
5.1. ๊ท๋ฒ ์ฐธ์กฐ
- [RFC2119]
- Bradner, S., โKey words for use in RFCs to Indicate Requirement Levelsโ, BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.
- [RFC2818]
- Rescorla, E., โHTTP Over TLSโ, RFC 2818, DOI 10.17487/RFC2818, May 2000, <http://www.rfc-editor.org/info/rfc2818>.
- [RFC5280]
- Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, โInternet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profileโ, RFC 5280, DOI 10.17487/RFC5280, May 2008, <https://www.rfc-editor.org/info/rfc5280>.
- [RFC6066]
- Eastlake 3rd, D., โTransport Layer Security (TLS) Extensions: Extension Definitionsโ, RFC 6066, DOI 10.17487/RFC6066, January 2011, <https://www.rfc-editor.org/info/rfc6066>.
- [RFC6454]
- Barth, A., โThe Web Origin Conceptโ, RFC 6454, DOI 10.17487/RFC6454, December 2011, <http://www.rfc-editor.org/info/rfc6454>.
- [RFC7540]
- Belshe, M., Peon, R., and M. Thomson, Ed., โHypertext Transfer Protocol Version 2 (HTTP/2)โ, RFC 7540, DOI 10.17487/RFC7540, May 2015, <http://www.rfc-editor.org/info/rfc7540>.
- [RFC8174]
- Leiba, B., โAmbiguity of Uppercase vs Lowercase in RFC 2119 Key Wordsโ, BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.
5.2. ์ ๋ณด ์ฐธ์กฐ
- [RFC6960]
- Santesson, S., Myers, M., Ankney, R., Malpani, A., Galperin, S., and C. Adams, โX.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSPโ, RFC 6960, DOI 10.17487/RFC6960, June 2013, <https://www.rfc-editor.org/info/rfc6960>.
- [RFC6962]
- Laurie, B., Langley, A., and E. Kasper, โCertificate Transparencyโ, RFC 6962, DOI 10.17487/RFC6962, June 2013, <https://www.rfc-editor.org/info/rfc6962>.
- [RFC7230]
- Fielding, R., Ed. and J. Reschke, Ed., โHypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routingโ, RFC 7230, DOI 10.17487/RFC7230, June 2014, <http://www.rfc-editor.org/info/rfc7230>.
- [RFC7838]
- Nottingham, M., McManus, P., and J. Reschke, โHTTP Alternative Servicesโ, RFC 7838, DOI 10.17487/RFC7838, April 2016, <http://www.rfc-editor.org/info/rfc7838>.
- [RFC8288]
- Nottingham, M., โWeb Linkingโ, RFC 8288, DOI 10.17487/RFC8288, October 2017, <https://www.rfc-editor.org/info/rfc8288>.
Appendix A. ๋น๊ท๋ฒ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ
๋ค์ ์๊ณ ๋ฆฌ์ฆ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ ํ ORIGIN ํ๋ ์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค:
- If the client is configured to use a proxy for the connection, ignore the frame and stop processing.
- If the connection is not identified with the "h2" protocol identifier or another protocol that has explicitly opted into this specification, ignore the frame and stop processing.
- If the frame occurs upon any stream except stream 0, ignore the frame and stop processing.
- If any of the flags 0x1, 0x2, 0x4, or 0x8 are set, ignore the frame and stop processing.
- If no previous ORIGIN frame on the connection has reached this step, initialize the Origin Set as per Section 2.3.
- For each Origin-Entry in the frame payload:
- Parse ASCII-Origin as an ASCII serialization of an origin ([RFC6454], Section 6.2), and let the result be parsed_origin. If parsing fails, skip to the next Origin-Entry.
- Add parsed_origin to the Origin Set.
Appendix B. ์๋ฒ ์ด์ ๊ณ ๋ ค์ฌํญ
ORIGIN ํ๋ ์์ ์๋ฒ๊ฐ ํน์ ์ฐ๊ฒฐ์ ์ด๋ค ์ค๋ฆฌ์ง์ ๋ํด ์ฌ์ฉํด์ผ ํ๋์ง๋ฅผ ํ์ํ ์ ์๊ฒ ํฉ๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ ํตํด ๊ด๊ณ ๋๋ ์ค๋ฆฌ์ง ์งํฉ์ ์๋ฒ์ ์ ์ด ํ์ ์์ผ๋ฉฐ; ์๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์์ ์ด ์๋ตํ ์ ์๋ ๋ชจ๋ ์ค๋ฆฌ์ง์ ๊ด๊ณ ํ ์๋ฌด๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋น ORIGIN ํ๋ ์์ ๋ณด๋ด ์ฐ๊ฒฐ์ด SNI ๊ธฐ๋ฐ ์ค๋ฆฌ์ง์๋ง ์ฌ์ฉ๋์ด์ผ ํจ์ ํด๋ผ์ด์ธํธ์ ์๋ฆด ์ ์์ต๋๋ค. ๋๋ ํ์ด๋ก๋๋ฅผ ํฌํจํ์ฌ ๋ ๋ง์ ์ค๋ฆฌ์ง์ ํ์ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ด ์ ๋ณด๋ ์๋ก์ด ์ฐ๊ฒฐ์ ์์ํ ์ ์๋ ์๋ต์ ์ด๋ค ๋ถ๋ถ์ ๋ณด๋ด๊ธฐ ์ ์ ์ ์กํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด "Link" ์๋ต ํค๋ ํ๋([RFC8288])๋ ์๋ต ๋ณธ๋ฌธ์ ๋งํฌ๋ค์ฒ๋ผ์.
๋ฐ๋ผ์ ORIGIN ํ๋ ์์ ๊ฐ๋ฅํ๋ฉด ์ฐ๊ฒฐ์์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ, ์ด์์ ์ผ๋ก๋ ์ด๋ค HEADERS๋ PUSH_PROMISE ํ๋ ์๋ณด๋ค ๋จผ์ ์ ์ก๋์ด์ผ ํฉ๋๋ค.
ํ์ง๋ง ๋ง์ ์์ ์ค๋ฆฌ์ง์ ์ฐ๊ฒฐ๊ณผ ์ฐ๊ด์ํค๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค๋ฉด, ๊ทธ ํฌ๊ธฐ ๋๋ฌธ์ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ธ์ง๋๋ ์ง์ฐ์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๊ธฐ์๋ "ํต์ฌ" ์ค๋ฆฌ์ง ์งํฉ์ ์ ํํ์ฌ ์ ์กํ๊ณ , ์ดํ(์: ์ฐ๊ฒฐ์ด ์ ํด์ผ ๋) ์ถ๊ฐ ORIGIN ํ๋ ์์ผ๋ก ์ค๋ฆฌ์ง ์งํฉ์ ํ์ฅํ๋ ๊ฒ์ด ํ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ ์๋ ๊ฐ๋ฅํ ํ ๋ง์ ์ค๋ฆฌ์ง์ ๋จ์ผ ORIGIN ํ๋ ์์ ํฌํจ์ํค๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค; ํด๋ผ์ด์ธํธ๋ ์ฆ์์์ ์ฐ๊ฒฐ ์์ฑ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๊ณ , Origin Set์ด ์ฌ๋ฌ ํ๋ ์์ ๋ถ์ฐ๋๋ฉด ๋์์ด ์ต์ ์ด ์๋ ์ ์์ต๋๋ค.
๋ฐ์ ์๋ [RFC6454]์ ์น์ 4, ๋จ๊ณ 5์ ๋ฐ๋ผ ORIGIN ํค๋์ ๊ฐ๋ค์ด ์ง๋ ฌํ๋๊ธฐ ์ ์ ๋์๋ฌธ์ ์ ๊ทํ(case-normalization)๋์ด์ผ ํ๋ค๋ ์ ์ ์ ๋ ํ์ญ์์ค.
๋ง์ง๋ง์ผ๋ก, ๋์ฒด ์๋น์ค๋ฅผ ํธ์คํธํ๋ ์๋ฒ๋ ORIGIN์ ๋ณด๋ผ ๋ ์ค๋ฆฌ์ง์ ๋ช ์์ ์ผ๋ก ๊ด๊ณ ํด์ผ ํฉ๋๋ค([RFC7838] ์ฐธ์กฐ). ์ด๋ Origin Set์ ๊ธฐ๋ณธ ๋ด์ฉ(์น์ 2.3 ์ฐธ์กฐ)์ด ์ฐ๊ฒฐ์์ ์ด์ ์ ์ฌ์ฉ๋์๋๋ผ๋ ์ด๋ค ๋์ฒด ์๋น์ค ์ค๋ฆฌ์ง๋ ํฌํจํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.