| ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค (IETF) | M. Nottingham |
| ์์ฒญ ๋ฌธ์: 9875 | Cloudflare |
| ์นดํ ๊ณ ๋ฆฌ: ํ์ค ํธ๋ | 2025๋ 10์ |
| ISSN: 2070-1721 |
HTTP ์บ์ ๊ทธ๋ฃน
์์ฝ
์ด ๋ช ์ธ๋ HTTP ์บ์ ๋ด์ ์ ์ฅ๋ ์๋ต๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ฉฐ, ์ ์ฅ๋ ์๋ต์ ํ๋ ์ด์์ ๋ฌธ์์ด๊ณผ ์ฐ๊ฒฐํ์ฌ ๊ทธ๋ฃนํํ ์ ์๋๋ก ํฉ๋๋ค.
์ด ๋ฌธ์์ ์ํ
์ด ๋ฌธ์๋ ์ธํฐ๋ท ํ์ค ํธ๋ ๋ฌธ์์ ๋๋ค.
์ด ๋ฌธ์๋ ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค(IETF)์ ์ฐ์ถ๋ฌผ์ ๋๋ค. ์ด๋ IETF ์ปค๋ฎค๋ํฐ์ ํฉ์๋ฅผ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ๊ณต๊ฐ ๊ฒํ ๋ฅผ ๋ฐ์์ผ๋ฉฐ ์ธํฐ๋ท ์์ง๋์ด๋ง ์ง๋ช ๊ทธ๋ฃน(IESG)์ด ์ถํ์ ์น์ธํ์์ต๋๋ค. ์ธํฐ๋ท ํ์ค์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ RFC 7841 2์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์์ ํ์ฌ ์ํ, ์ ์คํ, ๊ทธ๋ฆฌ๊ณ ํผ๋๋ฐฑ ๋ฐฉ๋ฒ ๋ฑ์ https://www.rfc-editor.org/info/rfc9875์์ ํ์ธํ ์ ์์ต๋๋ค.
Copyright Notice
Copyright (c) 2025 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. ์๊ฐ
HTTP ์บ์ฑ [HTTP-CACHING]์ ๋จ์ผ ๋ฆฌ์์ค ๋จ์๋ก ๋์ํฉ๋๋ค. ํ๋์ ์ ์ฅ๋ ์๋ต์ ์ ์ ๋๋ ๋ค๋ฅธ ์๋ต์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. ์ด๋ฌํ ์ธ๋ถํ๋ ์ฌ๋ฌ ์์ฐ์ด ์๋ก ๋ค๋ฅธ ์บ์ฑ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง๋ ํ์ด์ง ๋ฑ์์ ์บ์ฑ ํจ์จ์ ๋์ผ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ ์ฅ๋ ์๋ต๋ค ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํ์ฉํ๋ฉด ์บ์ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ด๋ จ๋ ๋ฆฌ์์ค ์งํฉ์ ๋ฌดํจํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์ด๋ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ฒญ์ด ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ถ์ ํจ๊ณผ๋ฅผ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ผ ์๋ ์๊ณ , ๋จ์ํ ๊ด๋ฆฌ์ ํธ์๋ฅผ ์ํด์์ผ ์๋ ์์ต๋๋ค(์: "์ฌ์ดํธ์ ์ด ๋ถ๋ถ ๋ฌดํจํ"). ์๋ต์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ผ๋ฉด URL ๊ตฌ์กฐ ๋ฑ์ ์์กดํ์ง ์๊ณ ์ด๋ฌํ ๊ด๊ณ๋ฅผ ๋ช ํํ๊ฒ ํํํ ์ ์์ต๋๋ค.
๋ฌดํจํ ์ด๋ฒคํธ ๊ณต์ ์ธ์๋, ๊ทธ๋ฃนํ๋ก ํ์๋ ๊ด๊ณ๋ฅผ ํตํด ์บ์๋ ์์ฒด ๋์์ ์ต์ ํํ ์๋ ์์ต๋๋ค(์: ์บ์ ์ ๊ฑฐ ์๊ณ ๋ฆฌ์ฆ ์๋์ ์ฐธ๊ณ ๋ฑ).
2์ ์์๋ HTTP ์บ์์ ์ ์ฅ๋ ์๋ต์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด, ํด๋น ์๋ต์ ํ๋ ์ด์์ ๊ทธ๋ฃน๊ณผ ์ฐ๊ด์์ผ ๊ด๊ณ๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ๋ํ ์บ์๊ฐ ๊ทธ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์๊ฒ ๋ฌดํจํ ์ด๋ฒคํธ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์ค๋ช ํฉ๋๋ค.
3์ ์์๋ ๊ทธ๋ฌํ ์ด๋ฒคํธ์ ์๋ก์ด ์ถ์ฒ ํ๋, ์ฆ ์ํ ๋ณ๊ฒฝ ์๋ต์ด ๊ทธ๋ฃน ๋ฌดํจํ๋ฅผ ์ ๋ฐํ ์ ์๋๋ก ํ๋ HTTP ์๋ต ํค๋ ํ๋๋ฅผ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ๋จ์ผ ์บ์ ๋ด์์, ๋จ์ผ ์ค๋ฆฌ์ง ์๋ฒ์ ์ฐ๊ฒฐ๋ ์ ์ฅ๋ ์๋ต๋ค์ ์ ์ฉ๋ฉ๋๋ค(2.1์ ์ฐธ์กฐ). ์ฌ๋ฌ ์บ์(์: ๊ณ์ธต ๋๋ ๋ฉ์ ๊ตฌ์กฐ) ๊ฐ ์ํ ๋๊ธฐํ๋ ์๋ก ๋ค๋ฅธ ์ค๋ฆฌ์ง์ ์๋ต ์ฐ๊ด์ ๋ค๋ฃจ์ง ์์ต๋๋ค.
1.1. ํ๊ธฐ ๊ท์น
์ด ๋ฌธ์์์ "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", "OPTIONAL" ๋ฑ์ ๋จ์ด๋ BCP 14 [RFC2119] [RFC8174]์ ์ค๋ช ๊ณผ ๊ฐ์ด (์ฌ๊ธฐ์์ ๊ฐ์ด) ์ ๋ถ ๋๋ฌธ์๋ก ๋ฑ์ฅํ ๋๋ง ๊ทธ ์๋ฏธ๋ก ํด์ํฉ๋๋ค.
์ด ๋ช ์ธ๋ [STRUCTURED-FIELDS]์ ๋ค์ ์ฉ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค: List, String, Parameter.
2. Cache-Groups ์๋ต ํค๋ ํ๋
Cache-Groups ์๋ต ํค๋ ํ๋๋ ๋ฌธ์์ด ๋ฆฌ์คํธ( 3.1์ ๋ฐ 3.3.3์ ๋ฐ [STRUCTURED-FIELDS] ์ฐธ๊ณ )์ ๋๋ค. ๋ฆฌ์คํธ์ ๊ฐ ๋ฉค๋ฒ๋ ํด๋น ์๋ต์ด ์ํ๋ ๊ทธ๋ฃน์ ์๋ณํ๋ ๊ฐ์ ๋๋ค. ์ด ๋ฌธ์์ด๋ค์ ๋ถํฌ๋ช ํ๋ฉฐ, ์๋ฒ ์ ์ฅ์์ ์๋ฏธ๋ฅผ ๊ฐ์ง ์ ์์ผ๋ ์บ์๋ ๊ตฌ์กฐ๋ ๋ด์ฉ์ ๋ํ ์ดํด ์์ด ๋จ์ง ๊ทธ๋ฃน์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ์ฉ๋๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
HTTP/1.1 200 OK Content-Type: application/javascript Cache-Control: max-age=3600 Cache-Groups: "scripts"
๋ฉค๋ฒ์ ์์๋ ์ค์ํ์ง ์์ต๋๋ค. ์ธ์๋์ง ์์ ํ๋ผ๋ฏธํฐ๋ค์ ๋ฌด์ํด์ผ ํฉ๋๋ค.
๊ตฌํ์ฒด๋ ํ๋ ๊ฐ์ ์ต์ 32๊ฐ ๊ทธ๋ฃน, ๊ฐ ๋ฉค๋ฒ์ ์ต๋ 32์ ์ด์์ MUST ์ง์ํด์ผ ํฉ๋๋ค. ๋จ, HTTP ํ๋ ๊ธธ์ด์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ํ ๋๋ฌธ์ ์ค๋ฌด์์ ์ด ํ๋ ๊ฐ์ ํฌ๊ธฐ์ ์ ์ฝ์ด ์์ ์ ์์ต๋๋ค.
2.1. ๊ทธ๋ฃนํ๋ ์๋ต ์๋ณ
๋์ผ ์บ์์ ์ ์ฅ๋ ๋ ์๋ต์ด ์๋ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ ๋์ผ ๊ทธ๋ฃน ์์์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค:
2.2. ์บ์ ๋์
2.2.1. ๋ฌดํจํ
์บ์๊ฐ ์ ์ฅ๋ ์๋ต์ ๋ฌดํจํํ ๋, ๊ทธ ์๋ต๊ณผ ๊ทธ๋ฃน์ ๊ณต์ ํ๋( 2.1์ ์ฐธ๊ณ ) ์ ์ฅ๋ ๋ค๋ฅธ ์๋ต์ ๋ฌดํจํํ ์ ์์ต๋๋ค(MAY). ๋จ, ๊ทธ๋ฃน ๋ฌดํจํ๋ก ์ธํ ์ถ๊ฐ ๋ฌดํจํ๋ ์ฐ์๋์ง ์์ผ๋ฉฐ, ์ฆ ์ด ๋ฉ์ปค๋์ฆ์ ์ ์ด์ (cascade)์ผ๋ก ๋์ํ์ง ์์ต๋๋ค.
์บ์ ํ์ฅ ๊ธฐ๋ฅ์ ์ ์๊ตฌ์ฌํญ์ ๋ช ์์ ์ผ๋ก ๊ฐํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๊ฒ ์บ์ ์ ์ด ํค๋ ํ๋ [TARGETED]๋ ํด๋น ํค๋๋ฅผ ์ฒ๋ฆฌํ๋ ์บ์์ ์ด๋ฌํ ์๋ต ๋ฌดํจํ๋ฅผ ์๊ตฌํ ์ ์์ต๋๋ค.
3. Cache-Group-Invalidation ์๋ต ํค๋ ํ๋
Cache-Group-Invalidation ์๋ต ํค๋ ํ๋๋ ๋ฌธ์์ด ๋ฆฌ์คํธ( 3.1์ , 3.3.3์ ๋ฐ [STRUCTURED-FIELDS] ์ฐธ๊ณ )์ ๋๋ค. ๋ฆฌ์คํธ์ ๊ฐ ๋ฉค๋ฒ๋ ํด๋น ์๋ต์ด ๋ฌดํจํํ๋ ๊ทธ๋ฃน์ ์๋ณํฉ๋๋ค( 2.2.1์ ์ฐธ๊ณ ).
์๋ฅผ ๋ค์ด, ๋ถ์ ํจ๊ณผ๋ก ๋ ๊ฐ์ ์บ์ ๊ทธ๋ฃน์ ์ํฅ์ ์ฃผ๋ POST ์์ฒญ ์ดํ, ๊ด๋ จ ์๋ต์ ๋ค์๊ณผ ๊ฐ์ด ํ ๋๋ ๋ ๊ทธ๋ฃน์ ์ฐ๊ด๋ ์ ์ฅ๋ ์๋ต์ ๋ฌดํจํํด์ผ ํจ์ ๋ํ๋ผ ์ ์์ต๋๋ค:
HTTP/1.1 200 OK Content-Type: text/html Cache-Group-Invalidation: "eurovision-results", "australia"
Cache-Group-Invalidation ํค๋ ํ๋๋ ์์ ํ ๋ฉ์๋(e.g., GET, 9.2.1์ , [HTTP] ์ฐธ๊ณ ) ์์ฒญ ์๋ต์์๋ ๋ฐ๋์ ๋ฌด์๋์ด์ผ ํฉ๋๋ค.
์บ์๋ ๋น์์ ์์ฒญ์ ๋ํ ์๋ต์์ Cache-Group-Invalidation ํค๋๋ฅผ ๋ฐ์ผ๋ฉด, ๋ฆฌ์คํธ ๋ด์ ์ด๋ค ๊ทธ๋ฃน๊ณผ ๊ณต์ ํ๋ ๊ทธ๋ฃน์ด ์๋ ์ ์ฅ๋ ์๋ต๋ค์ ๋ฌดํจํํ ์ ์์ต๋๋ค(MAY)( 2.1์ ์ฐธ๊ณ ).
์บ์ ํ์ฅ ๊ธฐ๋ฅ์ ์ ์๊ตฌ์ฌํญ์ ๋ช ์์ ์ผ๋ก ๊ฐํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๊ฒ ์บ์ ์ ์ด ํค๋ ํ๋ [TARGETED]๋ ์บ์๊ฐ Cache-Group-Invalidation ์ ํธ๋ฅผ ๋ฐ๋์(ํ์) ์ค์ํ๋๋ก ๋ช ์ํ ์ ์์ต๋๋ค.
๋ฉค๋ฒ์ ์์๋ ์ค์ํ์ง ์์ต๋๋ค. ์ธ์๋์ง ์์ ํ๋ผ๋ฏธํฐ๋ค์ ๋ฌด์ํด์ผ ํฉ๋๋ค.
๊ตฌํ์ฒด๋ ํ๋ ๊ฐ์ ์ต์ 32๊ฐ ๊ทธ๋ฃน, ๊ฐ ๋ฉค๋ฒ์ ์ต๋ 32์ ์ด์์ MUST ์ง์ํด์ผ ํฉ๋๋ค. ๋จ, HTTP ํ๋ ๊ธธ์ด์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ํ ๋๋ฌธ์ ์ค๋ฌด์์ ์ด ํ๋ ๊ฐ์ ํฌ๊ธฐ์ ์ ์ฝ์ด ์์ ์ ์์ต๋๋ค.
4. IANA ๊ณ ๋ ค์ฌํญ
IANA๋ โHypertext Transfer Protocol (HTTP) Field Name Registryโ์ ๋ค์ ํญ๋ชฉ์ ์ถ๊ฐํ์ต๋๋ค:
- ํ๋ ์ด๋ฆ:
- Cache-Groups
- ์ํ:
- permanent
- ์ฐธ๊ณ :
- RFC 9875
- ํ๋ ์ด๋ฆ:
- Cache-Group-Invalidation
- ์ํ:
- permanent
- ์ฐธ๊ณ :
- RFC 9875
5. ๋ณด์ ๊ณ ๋ ค์ฌํญ
์ด ๋ฉ์ปค๋์ฆ์ ๋์ผ ์ค๋ฆฌ์ง์ ๊ณต์ ํ๋ ๋ฆฌ์์ค๊ฐ ์๋ก ๋ฌดํจํ๋ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด, ๋ค์์ ๋น์ฌ์๊ฐ ๊ด์ฌํ๋ ์ค๋ฆฌ์ง(โ๊ณต์ ํธ์คํ โ์ด๋ผ ๋ถ๋ฆผ)์์๋ ํ ๋น์ฌ์๊ฐ ์์ ์ ๋ฆฌ์์ค๋ฅผ ํ์ธ์ ๋ฆฌ์์ค์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๊ฑฐ๋, ๊ทธ๋ค์๊ฒ ๋ถ์ ํจ๊ณผ๊ฐ ์๋ ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ํ์ ์ค์ด๊ณ ์ ํ๋ ๊ณต์ ํธ์คํธ๋ ์ด ๋ช ์ธ์์ ์ ์๋ ํค๋ ํ๋ ์ ๊ทผ์ ์ ์ดํ ์ ์์ต๋๋ค.
6. ์ฐธ๊ณ ๋ฌธํ
6.1. ๊ท๋ฒ์ ์ฐธ๊ณ ๋ฌธํ
- [HTTP-CACHING]
- Fielding, R., Ed., Nottingham, M., Ed., J. Reschke, Ed., โHTTP Cachingโ, STD 98, RFC 9111, DOI 10.17487/RFC9111, 2022๋ 6์, <https://www.rfc-editor.org/info/rfc9111>.
- [HTTP]
- Fielding, R., Ed., Nottingham, M., Ed., J. Reschke, Ed., โHTTP Semanticsโ, STD 97, RFC 9110, DOI 10.17487/RFC9110, 2022๋ 6์, <https://www.rfc-editor.org/info/rfc9110>.
- [RFC2119]
- Bradner, S., โRequirement ์์ค์ ํ์ํ๊ธฐ ์ํ RFC์์์ ํค์๋โ, BCP 14, RFC 2119, DOI 10.17487/RFC2119, 1997๋ 3์, <https://www.rfc-editor.org/info/rfc2119>.
- [RFC8174]
- Leiba, B., โRFC 2119 ํค์๋์ ๋์๋ฌธ์ ๋ชจํธ์ฑโ, BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2017๋ 5์, <https://www.rfc-editor.org/info/rfc8174>.
- [STRUCTURED-FIELDS]
- Nottingham, M. ๋ฐ P-H. Kamp, โHTTP์ฉ ๊ตฌ์กฐํ ํ๋ ๊ฐโ, RFC 9651, DOI 10.17487/RFC9651, 2024๋ 9์, <https://www.rfc-editor.org/info/rfc9651>.
6.2. ์ฐธ๊ณ ์ฉ ์ฐธ๊ณ ๋ฌธํ
- [TARGETED]
- Ludin, S., Nottingham, M., Y. Wu, โํ๊ฒ HTTP ์บ์ ์ ์ดโ, RFC 9213, DOI 10.17487/RFC9213, 2022๋ 6์, <https://www.rfc-editor.org/info/rfc9213>.
๊ฐ์ฌ์ ๋ง
Stephen Ludin์๊ฒ ๊ฒํ ๋ฐ ์ ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.