Internet Engineering Task Force (IETF) R. Fielding, Editor
Request for Comments: 9111 Adobe
Obsoletes: 7234 M. Nottingham, Editor
STD: 98 Fastly
Category: Standards Track J. Reschke, Editor
ISSN: 2070-1721 greenbytes
June 2022

HTTP ์บ์‹ฑ


์ดˆ๋ก

ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ(HTTP)์€ ๋ถ„์‚ฐํ˜•, ํ˜‘์—…ํ˜• ํ•˜์ดํผํ…์ŠคํŠธ ์ •๋ณด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์ƒํƒœ ์—†๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” HTTP ์บ์‹œ์™€ ์บ์‹œ ๋™์ž‘์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ์บ์‹œ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ด€๋ จ ํ—ค๋” ํ•„๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” RFC 7234๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”๋ชจ์˜ ์ƒํƒœ

์ด ๋ฌธ์„œ๋Š” ์ธํ„ฐ๋„ท ํ‘œ์ค€ ํŠธ๋ž™ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ํƒœ์Šคํฌ ํฌ์Šค(IETF)์˜ ์‚ฐ์ถœ๋ฌผ์ž…๋‹ˆ๋‹ค. ์ด๋Š” IETF ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•ฉ์˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๊ฒ€ํ† ๋ฅผ ๊ฑฐ์ณค์œผ๋ฉฐ ์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ์šด์˜ ๊ทธ๋ฃน(IESG)์— ์˜ํ•ด ์ถœํŒ ์Šน์ธ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ํ‘œ์ค€์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋Š” RFC 7841์˜ ์„น์…˜ 2์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ, ๋ชจ๋“  ์ •์˜คํ‘œ(errata), ๋ฐ ์ด ๋ฌธ์„œ์— ๋Œ€ํ•œ ์˜๊ฒฌ ์ œ์ถœ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๋Š” https://www.rfc-editor.org/info/rfc9111์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copyright Notice

Copyright (c) 2022 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.

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

1. ์†Œ๊ฐœ

ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ(HTTP)์€ ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜ ํ•˜์ดํผํ…์ŠคํŠธ ์ •๋ณด ์‹œ์Šคํ…œ๊ณผ์˜ ์œ ์—ฐํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•ด ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์˜๋ฏธ์™€ ์ž๊ธฐ ์„ค๋ช…์ ์ธ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํƒœ ๋น„์ €์žฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ ์š”์ฒญ/์‘๋‹ต ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ„์‚ฐ ์ •๋ณด ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์‘๋‹ต ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ ์บ์‹ฑ ๋ฐ ์žฌ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ HTTP์˜ ์ธก๋ฉด์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

HTTP์˜ cache๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ๊ทธ ์•ˆ์˜ ๋ฉ”์‹œ์ง€ ์ €์žฅ, ๊ฒ€์ƒ‰ ๋ฐ ์‚ญ์ œ๋ฅผ ์ œ์–ดํ•˜๋Š” ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ํ–ฅํ›„ ๋™๋“ฑํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ์†Œ๋น„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์บ์‹œ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์–ด๋– ํ•œ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„๋„ MAY ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ํ„ฐ๋„๋กœ ๋™์ž‘ํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (์„น์…˜ 3.7 of [HTTP]).

๊ณต์œ  ์บ์‹œ๋Š” ๋‘˜ ์ด์ƒ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‘๋‹ต์„ ์ €์žฅํ•˜๋Š” ์บ์‹œ๋กœ, ๊ณต์œ  ์บ์‹œ๋Š” ๋ณดํ†ต(ํ•ญ์ƒ์€ ์•„๋‹ˆ์ง€๋งŒ) ์ค‘๊ฐœ์ž(intermediary)์˜ ์ผ๋ถ€๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๊ฐœ์ธ ์บ์‹œ๋Š” ๋‹จ์ผ ์‚ฌ์šฉ์ž ์ „์šฉ์ด๋ฉฐ, ์ข…์ข… ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

HTTP ์บ์‹ฑ์˜ ๋ชฉ์ ์€ ์ด์ „์˜ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ์˜ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ด์œผ๋กœ์จ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์ €์žฅ๋œ ์‘๋‹ต์ด ์ด ์š”์ฒญ์— ๋Œ€ํ•ด "๊ฒ€์ฆ(validation)"(์ €์žฅ๋œ ์‘๋‹ต์ด ์—ฌ์ „ํžˆ ์œ ํšจํ•œ์ง€ ์›๋ณธ ์„œ๋ฒ„์— ํ™•์ธํ•˜๋Š” ๊ฒƒ) ์—†์ด ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์„น์…˜ 4.2์— ์ •์˜๋œ ๋Œ€๋กœ "์‹ ์„ (fresh)"ํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ ์„ ํ•œ ์‘๋‹ต์€ ์บ์‹œ๊ฐ€ ์ด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ์ง€์—ฐ๊ณผ ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ๋œ ์‘๋‹ต์ด ์‹ ์„ ํ•˜์ง€ ์•Š์„ ๋•Œ์—๋„, ๊ฒ€์ฆ์„ ํ†ตํ•ด ๊ฐฑ์‹ ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด(์„น์…˜ 4.3) ๋˜๋Š” ์›๋ณธ์ด ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ(์„น์…˜ 4.2.4) ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” RFC 7234๋ฅผ ๋Œ€์ฒดํ•˜๋ฉฐ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ถ€๋ก B์— ์š”์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

1.1. ์š”๊ตฌ ์‚ฌํ•ญ ํ‘œ๊ธฐ๋ฒ•

์ด ๋ฌธ์„œ์—์„œ ํ‚ค์›Œ๋“œ "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", ๋ฐ "OPTIONAL"์€ BCP 14์˜ ์ •์˜์— ๋”ฐ๋ผ, ์˜ค์ง ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋‚˜ํƒ€๋‚  ๋•Œ์—๋งŒ ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํ•ด์„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [RFC2119] ๋ฐ [RFC8174]๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์„น์…˜ 2 of [HTTP]๋Š” ์ ํ•ฉ์„ฑ ๊ธฐ์ค€์„ ์ •์˜ํ•˜๊ณ  ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์— ๊ด€ํ•œ ๊ณ ๋ ค์‚ฌํ•ญ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

1.2. ๊ตฌ๋ฌธ ํ‘œ๊ธฐ๋ฒ•

์ด ๋ช…์„ธ์„œ๋Š” [RFC5234]์˜ ํ™•์žฅ๋œ ๋ฐฑ์ปค์Šค-๋‚˜์šฐ์–ด ํ˜•์‹(ABNF) ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉฐ, [RFC7405]์—์„œ ์ •์˜๋œ ๋ฌธ์ž์—ด์˜ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ํ‘œ๊ธฐ๋ฒ• ํ™•์žฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ช…์„ธ์„œ๋Š” ์„น์…˜ 5.6.1 of [HTTP]์— ์ •์˜๋œ ๋ฆฌ์ŠคํŠธ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ "#" ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์˜ ๊ฐ„๊ฒฐํ•œ ์ •์˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(์ด๋Š” "*" ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฐ˜๋ณต์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค). ๋ถ€๋ก A์—๋Š” ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ์—ฐ์‚ฐ์ž๊ฐ€ ํ‘œ์ค€ ABNF ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ™•์žฅ๋œ ์ˆ˜์ง‘๋œ ๋ฌธ๋ฒ•์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

1.2.1. ๊ฐ€์ ธ์˜จ ๊ทœ์น™

๋‹ค์Œ์˜ ํ•ต์‹ฌ ๊ทœ์น™์€ ์ฐธ์กฐ๋กœ ํฌํ•จ๋˜๋ฉฐ, ์ด๋Š” [RFC5234]์˜ ๋ถ€๋ก B.1์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: DIGIT (10์ง„์ˆ˜ 0-9).

[HTTP]๋Š” ๋‹ค์Œ ๊ทœ์น™๋“ค์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค:

  HTTP-date     = <HTTP-date, see [HTTP], Section 5.6.7>
  OWS           = <OWS, see [HTTP], Section 5.6.3>
  field-name    = <field-name, see [HTTP], Section 5.1>
  quoted-string = <quoted-string, see [HTTP], Section 5.6.4>
  token         = <token, see [HTTP], Section 5.6.2>

1.2.2. ๋ธํƒ€ ์ดˆ

delta-seconds ๊ทœ์น™์€ ์ดˆ ๋‹จ์œ„์˜ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

delta-seconds ๊ฐ’์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์—ฌ ์ด์ง„ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ˆ˜์‹ ์ž๋Š” ์ ์–ด๋„ 31๋น„ํŠธ ์ด์ƒ์˜ ๋น„์Œ์ˆ˜ ์ •์ˆ˜ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š” ์‚ฐ์ˆ  ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๊ฐ€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ •์ˆ˜๋ณด๋‹ค ํฐ delta-seconds ๊ฐ’์„ ์ˆ˜์‹ ํ•˜๊ฑฐ๋‚˜ ์ดํ›„ ๊ณ„์‚ฐ ์ค‘ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์บ์‹œ๋Š” ํ•ด๋‹น ๊ฐ’์„ 2147483648(231) ๋˜๋Š” ํŽธ๋ฆฌํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์–‘์˜ ์ •์ˆ˜๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

2. ์บ์‹œ ๋™์ž‘ ๊ฐœ์š”

์ ์ ˆํ•œ ์บ์‹œ ๋™์ž‘์€ HTTP ์ „์†ก์˜ ์˜๋ฏธ๋ก ์„ ๋ณด์กดํ•˜๋ฉด์„œ ์บ์‹œ์— ์ด๋ฏธ ๋ณด์œ ํ•œ ์ •๋ณด์˜ ์ „์†ก์„ ์ค„์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์šฉ์–ด ๋ฐ HTTP์˜ ํ•ต์‹ฌ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์„น์…˜ 3 of [HTTP]๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์บ์‹ฑ์€ HTTP์˜ ์™„์ „ํžˆ OPTIONALํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ, ์บ์‹œ๋œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋ฉฐ ๊ทธ๋Ÿฌํ•œ ์žฌ์‚ฌ์šฉ์ด ํŠน๋ณ„ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด๋‚˜ ๋กœ์ปฌ ๊ตฌ์„ฑ์— ์˜ํ•ด ๊ธˆ์ง€๋˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ ๋™์ž‘์ด๋ผ๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ HTTP ์บ์‹œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์€ ์บ์‹œ๊ฐ€ ์žฌ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ €์žฅ๋œ ์‘๋‹ต์„ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์žฌ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๋ฉฐ, ์บ์‹œ๊ฐ€ ํ•ญ์ƒ ํŠน์ • ์‘๋‹ต๋“ค์„ ์ €์žฅํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์บ์‹œ ํ‚ค๋Š” ์บ์‹œ๊ฐ€ ์‘๋‹ต์„ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด๋กœ, ์ตœ์†Œํ•œ ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋Œ€์ƒ URI๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ์ดํ›„์˜ ์š”์ฒญ์„ ์ถฉ์กฑ์‹œํ‚ค๋Š” ๋ฐ ํ•ด๋‹น ์‘๋‹ต์„ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋Š˜๋‚  ํ”ํžˆ ์‚ฌ์šฉ๋˜๋Š” ๋งŽ์€ HTTP ์บ์‹œ๋Š” GET ์‘๋‹ต๋งŒ ์บ์‹œํ•˜๋ฏ€๋กœ ์บ์‹œ ํ‚ค๋กœ URI๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ฝ˜ํ…์ธ  ํ˜‘์ƒ(content negotiation)์˜ ๋Œ€์ƒ์ธ ์š”์ฒญ ๋Œ€์ƒ์— ๋Œ€ํ•ด ์บ์‹œ๊ฐ€ ์—ฌ๋Ÿฌ ์‘๋‹ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” Vary ์‘๋‹ต ํ—ค๋” ํ•„๋“œ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๋ž˜ ์š”์ฒญ์˜ ์ผ๋ถ€ ํ—ค๋” ํ•„๋“œ๋ฅผ ์บ์‹œ ํ‚ค์— ํฌํ•จํ•จ์œผ๋กœ์จ ์ด๋Ÿฌํ•œ ์‘๋‹ต์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.1 ์ฐธ์กฐ).

์บ์‹œ๋Š” ์ถ”๊ฐ€ ์ž๋ฃŒ๋ฅผ ์บ์‹œ ํ‚ค์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ ์บ์‹œ๋Š” ์ฐธ์กฐ ์‚ฌ์ดํŠธ์˜ ์ •์ฒด์„ฑ์„ ํฌํ•จํ•˜์—ฌ ์บ์‹œ๋ฅผ "์ด์ค‘ ํ‚คํ™”(double keying)"ํ•˜์—ฌ ์ผ๋ถ€ ํ”„๋ผ์ด๋ฒ„์‹œ ์œ„ํ—˜์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 7.2 ์ฐธ์กฐ).

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์บ์‹œ๋Š” ๊ฒ€์ƒ‰ ์š”์ฒญ์˜ ์„ฑ๊ณต ๊ฒฐ๊ณผ, ์ฆ‰ GET ์š”์ฒญ์— ๋Œ€ํ•œ 200 (OK) ์‘๋‹ต(๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์˜ ํ‘œํ˜„์„ ํฌํ•จ)์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค(์„น์…˜ 9.3.1 of [HTTP]). ๊ทธ๋Ÿฌ๋‚˜ ๋ฆฌ๋””๋ ‰์…˜, ๋ถ€์ •์  ๊ฒฐ๊ณผ(์˜ˆ: 404 (Not Found)), ๋ถˆ์™„์ „ํ•œ ๊ฒฐ๊ณผ(์˜ˆ: 206 (Partial Content)) ๋ฐ ๋ฉ”์„œ๋“œ ์ •์˜๊ฐ€ ๊ทธ๋Ÿฌํ•œ ์บ์‹ฑ์„ ํ—ˆ์šฉํ•˜๊ณ  ์บ์‹œ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•œ ๊ฒƒ์„ ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ GET ์ด์™ธ์˜ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ์ด ๋Š๊ธด(disconnected) ์บ์‹œ๋Š” ์›๋ณธ ์„œ๋ฒ„์— ์—ฐ๋ฝํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์š”์ฒญ์˜ ์ „๋‹ฌ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ๋Š๊ธด ์บ์‹œ๋Š” ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์„น์…˜ 4.2.4).

3. ์บ์‹œ์— ์‘๋‹ต ์ €์žฅ

์บ์‹œ๋Š” ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค: (MUST NOT store a response to a request unless:)

  • ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ์บ์‹œ๊ฐ€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค;

  • ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๋Š” ์ตœ์ข… ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 15 of [HTTP] ์ฐธ์กฐ);

  • ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ 206 ๋˜๋Š” 304์ด๊ฑฐ๋‚˜ must-understand ์บ์‹œ ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.3)๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ: ์บ์‹œ๊ฐ€ ํ•ด๋‹น ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค;

  • ์‘๋‹ต์— no-store ์บ์‹œ ์ง€์‹œ์–ด๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.5 ์ฐธ์กฐ);

  • ์บ์‹œ๊ฐ€ ๊ณต์œ  ์บ์‹œ์ธ ๊ฒฝ์šฐ: private ์‘๋‹ต ์ง€์‹œ์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ๊ณต์œ  ์บ์‹œ๊ฐ€ ์ˆ˜์ •๋œ ์‘๋‹ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.7 ์ฐธ์กฐ);

  • ์บ์‹œ๊ฐ€ ๊ณต์œ  ์บ์‹œ์ธ ๊ฒฝ์šฐ: ์š”์ฒญ์— Authorization ํ—ค๋” ํ•„๋“œ๊ฐ€ ์—†์–ด์•ผ ํ•˜๋ฉฐ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 11.6.2 of [HTTP] ์ฐธ์กฐ) ๋˜๋Š” ์‘๋‹ต์— ๊ณต์œ  ์บ์‹ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋Š” ์‘๋‹ต ์ง€์‹œ์–ด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 3.5 ์ฐธ์กฐ);

  • ์‘๋‹ต์—๋Š” ๋‹ค์Œ ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

    • ๊ณต๊ฐœ ์‘๋‹ต ์ง€์‹œ์–ด(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.9 ์ฐธ์กฐ);
    • ์บ์‹œ๊ฐ€ ๊ณต์œ  ์บ์‹œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ฐœ์ธ ์‘๋‹ต ์ง€์‹œ์–ด(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.7 ์ฐธ์กฐ);
    • Expires ํ—ค๋” ํ•„๋“œ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.3 ์ฐธ์กฐ);
    • max-age ์‘๋‹ต ์ง€์‹œ์–ด(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.1 ์ฐธ์กฐ);
    • ์บ์‹œ๊ฐ€ ๊ณต์œ  ์บ์‹œ์ธ ๊ฒฝ์šฐ: s-maxage ์‘๋‹ต ์ง€์‹œ์–ด(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.10 ์ฐธ์กฐ);
    • ์บ์‹œ ๊ฐ€๋Šฅํ•จ์„ ํ—ˆ์šฉํ•˜๋Š” ์บ์‹œ ํ™•์žฅ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.3 ์ฐธ์กฐ); ๋˜๋Š”
    • ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ •์˜๋œ ์ƒํƒœ ์ฝ”๋“œ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2.2 ์ฐธ์กฐ).

์บ์‹œ ํ™•์žฅ์€ ์œ„์— ๋‚˜์—ด๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.3๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ๋ฌธ๋งฅ์—์„œ ์บ์‹œ๊ฐ€ ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋˜๋Š” ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๋ฅผ "์ดํ•ดํ–ˆ๋‹ค"๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ์ธ์‹ํ•˜๊ณ  ์ง€์ •๋œ ๋ชจ๋“  ์บ์‹ฑ ๊ด€๋ จ ๋™์ž‘์„ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋™์ž‘์—์„œ๋Š” ์ผ๋ถ€ ์บ์‹œ๊ฐ€ ์บ์‹œ ๊ฒ€์ฆ์ž(validator)๋„ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„๋„ ์—†๋Š” ์‘๋‹ต์„ ์ €์žฅํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‘๋‹ต์€ ๋ณดํ†ต ์ €์žฅํ•ด๋„ ์œ ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ๊ฐ€ ์ด๋Ÿฌํ•œ ์‘๋‹ต์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๊ธˆ์ง€๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

3.1. ํ—ค๋” ๋ฐ ํŠธ๋ ˆ์ผ๋Ÿฌ ํ•„๋“œ ์ €์žฅ

์บ์‹œ๋Š” ์‘๋‹ต์„ ์ €์žฅํ•  ๋•Œ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ˆ˜์‹ ํ•œ ๋ชจ๋“  ์‘๋‹ต ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST); ์ด๋Š” ์ƒˆ๋กœ์šด HTTP ํ—ค๋” ํ•„๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ๊ฒŒ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  • Connection ํ—ค๋” ํ•„๋“œ์™€ ๊ทธ ์•ˆ์— ๋‚˜์—ด๋œ ํ•„๋“œ ์ด๋ฆ„์€ ์„น์…˜ 7.6.1 of [HTTP]์— ์˜ํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์ „์— ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ €์žฅ ์ „์— ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ตฌํ˜„๋  MAY ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ผ๋ถ€ ํ•„๋“œ์˜ ์˜๋ฏธ๋ก ์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ํ•„๋“œ๋“ค์„ ์ œ๊ฑฐํ•˜๋„๋ก ์š”๊ตฌํ•˜๋ฉฐ, ์ด๋Š” ์ €์žฅ ์ „์— ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด ์—ญ์‹œ MAY). ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋Š” ์„น์…˜ 7.6.1 of [HTTP]๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • no-cache(์„น์…˜ 5.2.2.4) ๋ฐ private(์„น์…˜ 5.2.2.7) ์บ์‹œ ์ง€์‹œ์–ด๋Š” ๊ฐ๊ฐ ๋ชจ๋“  ์บ์‹œ ๋˜๋Š” ๊ณต์œ  ์บ์‹œ๊ฐ€ ํ—ค๋” ํ•„๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ธ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์บ์‹œ๊ฐ€ ์š”์ฒญ์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก์‹œ์— ํŠนํ™”๋œ ํ—ค๋” ํ•„๋“œ๋Š”, ์บ์‹œ๊ฐ€ ํ”„๋ก์‹œ์˜ ์ •์ฒด์„ฑ์„ ์บ์‹œ ํ‚ค์— ํฌํ•จํ•˜์ง€ ์•Š๋Š” ํ•œ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT). ์‚ฌ์‹ค์ƒ ์ด๋Š” Proxy-Authenticate(์„น์…˜ 11.7.1 of [HTTP]), Proxy-Authentication-Info(์„น์…˜ 11.7.3 of [HTTP]), ๋ฐ Proxy-Authorization(์„น์…˜ 11.7.2 of [HTTP])์— ๊ตญํ•œ๋ฉ๋‹ˆ๋‹ค.

์บ์‹œ๋Š” ํŠธ๋ ˆ์ผ๋Ÿฌ ํ•„๋“œ๋ฅผ ํ—ค๋” ํ•„๋“œ์™€ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ๋Š” ํŠธ๋ ˆ์ผ๋Ÿฌ ํ•„๋“œ๋ฅผ ํ—ค๋” ํ•„๋“œ์™€ ๊ฒฐํ•ฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

3.2. ์ €์žฅ๋œ ํ—ค๋” ํ•„๋“œ ์—…๋ฐ์ดํŠธ

์บ์‹œ๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ(์˜ˆ: ์„น์…˜ 3.4, ์„น์…˜ 4.3.4, ๋ฐ ์„น์…˜ 4.3.5 ์ฐธ์กฐ) ๋‹ค๋ฅธ(์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์ตœ์‹ ์˜) ์‘๋‹ต์œผ๋กœ๋ถ€ํ„ฐ ์ €์žฅ๋œ ์‘๋‹ต์˜ ํ—ค๋” ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•  ๋•Œ ์บ์‹œ๋Š” ์ œ๊ณต๋œ ์‘๋‹ต์˜ ๊ฐ ํ—ค๋” ํ•„๋“œ๋ฅผ ์ €์žฅ๋œ ์‘๋‹ต์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ•„๋“œ ๊ฐ’์„ ๋Œ€์ฒดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ๋‹ค๋งŒ ๋‹ค์Œ์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค:

  • ์„น์…˜ 3.1(ํ—ค๋” ๋ฐ ํŠธ๋ ˆ์ผ๋Ÿฌ ํ•„๋“œ ์ €์žฅ)์—์„œ ์ €์žฅ์—์„œ ์ œ์™ธ๋œ ํ—ค๋” ํ•„๋“œ,
  • ์บ์‹œ์˜ ์ €์žฅ๋œ ์‘๋‹ต์ด ์˜์กดํ•˜๋Š” ํ—ค๋” ํ•„๋“œ(์•„๋ž˜ ์„ค๋ช… ์ฐธ์กฐ),
  • ์ˆ˜์‹ ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ํ—ค๋” ํ•„๋“œ(์•„๋ž˜ ์„ค๋ช… ์ฐธ์กฐ), ๋ฐ
  • Content-Length ํ—ค๋” ํ•„๋“œ.

์ผ๋ถ€ ๊ฒฝ์šฐ(ํŠนํžˆ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ์˜ ์บ์‹œ)์—๋Š” ์ˆ˜์‹ ๋œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‘๋‹ต ์ž์ฒด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ์ €์žฅ๋œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํ—ค๋” ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ผ๊ด€์„ฑ ๋ฌธ์ œ์™€ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์˜ ์บ์‹œ๋Š” ์˜ˆ์™ธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ—ค๋” ํ•„๋“œ๋ฅผ ์ €์žฅ๋œ ์‘๋‹ต์˜ ์—…๋ฐ์ดํŠธ์—์„œ ์ƒ๋žตํ•  ์ˆ˜(MAY) ์žˆ์ง€๋งŒ, ๊ทธ๋Ÿฌํ•œ ์ƒ๋žต์€ ์ €์žฅ๋œ ์‘๋‹ต์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•„๋“œ๋กœ ์ œํ•œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์‘๋‹ต์„ ์ˆ˜์‹ ํ•˜๋Š” ๋™์•ˆ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ์„ ๋””์ฝ”๋“œํ•˜์—ฌ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ์‘๋‹ต์˜ ์›๋ž˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๋ถˆ์ผ์น˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์ €์žฅ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ Content-Encoding ํ—ค๋” ํ•„๋“œ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‘๋‹ต์—์„œ ๋ฐ›์€ ์ฝ˜ํ…์ธ  ๋Œ€์‹  ํŒŒ์‹ฑ๋œ HTML ํŠธ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ, Content-Type ํ—ค๋” ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ํŒŒ์‹ฑ ์‹œ ํ˜•์‹์— ๋Œ€ํ•œ ๊ฐ€์ •์ด ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š๊ฒŒ ๋˜์–ด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”์šฑ์ด ์ผ๋ถ€ ํ•„๋“œ๋Š” Content-Range ํ—ค๋” ํ•„๋“œ์™€ ๊ฐ™์ด HTTP ๊ตฌํ˜„์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„์ฒด๋Š” ๊ทธ๋Ÿฌํ•œ ํ—ค๋” ํ•„๋“œ๋ฅผ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋”๋ผ๋„ ์—…๋ฐ์ดํŠธ์—์„œ ์ž๋™์œผ๋กœ ์ƒ๋žตํ•  ์ˆ˜(MAY) ์žˆ์Šต๋‹ˆ๋‹ค.

Content-* ์ ‘๋‘์–ด๊ฐ€ ํ—ค๋” ํ•„๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ์—์„œ ์ƒ๋žต๋œ๋‹ค๋Š” ์‹ ํ˜ธ๋Š” ์•„๋‹˜์„ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค; ์ด๋Š” MIME ํ—ค๋” ํ•„๋“œ์— ๋Œ€ํ•œ ๊ด€๋ก€์ผ ๋ฟ์ด๋ฉฐ HTTP ๊ณ ์œ ์˜ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

3.3. ๋ถˆ์™„์ „ํ•œ ์‘๋‹ต ์ €์žฅ

์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์ด๊ณ  ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ 200 (OK)์ด๋ฉฐ ์ „์ฒด ์‘๋‹ต ํ—ค๋” ์„น์…˜์„ ์ˆ˜์‹ ํ•œ ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ์‘๋‹ต์ด ์™„์ „ํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY)(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 6.1 of [HTTP]). ์ €์žฅ๋œ ์‘๋‹ต์€ ๋ถˆ์™„์ „ํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ๋ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 206 (Partial Content) ์‘๋‹ต์€ ๋ถˆ์™„์ „ํ•œ 200 (OK) ์‘๋‹ต์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ๋Š” Range ๋ฐ Content-Range ํ—ค๋” ํ•„๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•ด๋‹น ํ•„๋“œ์—์„œ ์‚ฌ์šฉ๋œ ๋ฒ”์œ„ ๋‹จ์œ„๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ๋ถ€๋ถ„ ์ฝ˜ํ…์ธ  ์‘๋‹ต์„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

์บ์‹œ๋Š” ์ดํ›„ ๋ฒ”์œ„ ์š”์ฒญ(์„น์…˜ 14.2 of [HTTP])์„ ๋งŒ๋“ค์–ด ์ €์žฅ๋œ ๋ถˆ์™„์ „ ์‘๋‹ต์„ ์™„์„ฑํ•˜๊ณ  ์„ฑ๊ณตํ•œ ์‘๋‹ต์„ ์ €์žฅ๋œ ์‘๋‹ต๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY), ์ด๋Š” ์„น์…˜ 3.4์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์‘๋‹ต์„ ์™„์„ฑํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์š”์ฒญ์ด ๋ถˆ์™„์ „ํ•˜๊ณ  ์ง€์ •๋œ ๋ฒ”์œ„๊ฐ€ ์ €์žฅ๋œ ๋ถˆ์™„์ „ ์‘๋‹ต ๋‚ด์— ์™„์ „ํžˆ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ํ•œ ๋ถˆ์™„์ „ํ•œ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์— ์‘๋‹ตํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT). ๋˜ํ•œ ์บ์‹œ๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋ถ€๋ถ„ ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ ๋ฐ˜๋“œ์‹œ 206 (Partial Content) ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST NOT send a partial response to a client without explicitly marking it using the 206 status code).

3.4. ๋ถ€๋ถ„ ์ฝ˜ํ…์ธ  ๊ฒฐํ•ฉ

์—ฐ๊ฒฐ์ด ์กฐ๊ธฐ์— ์ข…๋ฃŒ๋˜์—ˆ๊ฑฐ๋‚˜ ์š”์ฒญ์ด ํ•˜๋‚˜ ์ด์ƒ์˜ Range ์ง€์ •์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ(์„น์…˜ 14.2 of [HTTP]), ์‘๋‹ต์ด ๋ถ€๋ถ„ ํ‘œํ˜„๋งŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์ด๋Ÿฌํ•œ ์ „์†ก ํ›„์— ์บ์‹œ๋Š” ๋™์ผํ•œ ํ‘œํ˜„์˜ ์—ฌ๋Ÿฌ ๋ฒ”์œ„๋ฅผ ์ˆ˜์‹ ํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์ด๋Ÿฌํ•œ ๋ฒ”์œ„๋ฅผ ๋‹จ์ผ ์ €์žฅ๋œ ์‘๋‹ต์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ณ  ์ดํ›„ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY), ๋‹จ ๊ทธ ๋ชจ๋‘๊ฐ€ ๋™์ผํ•œ ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž(strong validator)๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์บ์‹œ๊ฐ€ ์„น์…˜ 15.3.7.3 of [HTTP]์— ๋ช…์‹œ๋œ ํด๋ผ์ด์–ธํŠธ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ์— ํ•œํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ์‘๋‹ต์„ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ €์žฅ๋œ ์‘๋‹ต๊ณผ ๊ฒฐํ•ฉํ•  ๋•Œ, ์บ์‹œ๋Š” ์„น์…˜ 3.2์— ๋”ฐ๋ผ ์ƒˆ ์‘๋‹ต์— ์ œ๊ณต๋œ ํ—ค๋” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ๋œ ์‘๋‹ต์˜ ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

3.5. ์ธ์ฆ๋œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ €์žฅ

๊ณต์œ  ์บ์‹œ๋Š” ์š”์ฒญ์— Authorization ํ—ค๋” ํ•„๋“œ๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ์— ๋Œ€ํ•œ ์บ์‹œ๋œ ์‘๋‹ต์„ ์ดํ›„์˜ ์–ด๋–ค ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(MUST NOT), ๋‹จ ์‘๋‹ต์— ๊ณต์œ  ์บ์‹œ์— ์˜ํ•ด ์ €์žฅ๋˜๋Š” ๊ฒƒ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋Š” ์‘๋‹ต ์ง€์‹œ์–ด๋ฅผ ๊ฐ€์ง„ Cache-Control ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ์บ์‹œ๊ฐ€ ํ•ด๋‹น ์‘๋‹ต์— ๋Œ€ํ•ด ๊ทธ ์ง€์‹œ์–ด์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

์ด ๋ช…์„ธ์„œ์—์„œ ๋‹ค์Œ ์‘๋‹ต ์ง€์‹œ์–ด๋“ค์€ ์ด๋Ÿฌํ•œ ํšจ๊ณผ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค: must-revalidate(์„น์…˜ 5.2.2.2), public(์„น์…˜ 5.2.2.9), ๋ฐ s-maxage(์„น์…˜ 5.2.2.10).

4. ์บ์‹œ์—์„œ ์‘๋‹ต ๊ตฌ์„ฑ

์š”์ฒญ์ด ์ œ์‹œ๋˜์—ˆ์„ ๋•Œ, ์บ์‹œ๋Š” ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ํ•œ ์ €์žฅ๋œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค MUST NOT:

  • ์ œ์‹œ๋œ ๋Œ€์ƒ URI(์„น์…˜ 7.1 of [HTTP])์™€ ์ €์žฅ๋œ ์‘๋‹ต์˜ ๋Œ€์ƒ์ด ์ผ์น˜ํ•˜๊ณ ,

  • ์ €์žฅ๋œ ์‘๋‹ต์— ์—ฐ๊ฒฐ๋œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ ์ œ์‹œ๋œ ์š”์ฒญ์— ๋Œ€ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋ฉฐ,

  • ์ €์žฅ๋œ ์‘๋‹ต์ด ์ง€๋ช…ํ•œ ์š”์ฒญ ํ—ค๋” ํ•„๋“œ(์žˆ๋Š” ๊ฒฝ์šฐ)๊ฐ€ ์ œ์‹œ๋œ ์š”์ฒญ์˜ ํ•„๋“œ์™€ ์ผ์น˜ํ•˜๋ฉฐ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.1 ์ฐธ์กฐ),

  • ์ €์žฅ๋œ ์‘๋‹ต์— no-cache ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.4)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜, ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋œ ๊ฒฝ์šฐ(์„น์…˜ 4.3),

  • ์ €์žฅ๋œ ์‘๋‹ต์ด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค:

    • ์‹ ์„ ํ•œ ์‘๋‹ต(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2 ์ฐธ์กฐ), ๋˜๋Š”
    • ๋งŒ๋ฃŒ๋œ ์ƒํƒœ๋กœ ์ œ๊ณต๋˜์–ด๋„ ํ—ˆ์šฉ๋˜๋Š” ์‘๋‹ต(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2.4 ์ฐธ์กฐ), ๋˜๋Š”
    • ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋œ ์‘๋‹ต(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.3 ์ฐธ์กฐ).

์บ์‹œ ํ™•์žฅ์ด ๋‚˜์—ด๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค; ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.3๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ €์žฅ๋œ ์‘๋‹ต์ด ๊ฒ€์ฆ ์—†์ด ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋  ๋•Œ, ์บ์‹œ๋Š” ์‘๋‹ต์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ’์„ ๋Œ€์ฒดํ•˜์—ฌ ์ €์žฅ๋œ ์‘๋‹ต์˜ current_age์™€ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ Age ํ—ค๋” ํ•„๋“œ(์„น์…˜ 5.1)๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST); ์—ฐ๋ น ๊ณ„์‚ฐ์€ ์„น์…˜ 4.2.3๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

์บ์‹œ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ(์„น์…˜ 9.2.1 of [HTTP])๋ฅผ ๊ฐ€์ง„ ์š”์ฒญ์„ ์›์  ์„œ๋ฒ„์— ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค; ์ฆ‰, ์บ์‹œ๋Š” ํ•ด๋‹น ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ  ๋Œ€์‘ ์‘๋‹ต์„ ๋ฐ›๊ธฐ ์ „์— ๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(MUST).

๋˜ํ•œ, ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์š”์ฒญ์€ ์ด๋ฏธ ์ €์žฅ๋œ ์‘๋‹ต์„ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค; ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.4๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์บ์‹œ๋Š” ์ €์žฅ๋˜์—ˆ๊ฑฐ๋‚˜ ์ €์žฅ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์„ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ์š”์ฒญ๋“ค์— ๋Œ€ํ•ด ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ์— ํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์บ์‹œ๊ฐ€ ์š”์ฒญ ๋ณ‘ํ•ฉ(collapse requests)โ€”์บ์‹œ ๋ฏธ์Šค ์‹œ ์—ฌ๋Ÿฌ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ๋‹จ์ผ ์ „๋‹ฌ ์š”์ฒญ์œผ๋กœ ๊ฒฐํ•ฉโ€”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์›์  ์„œ๋ฒ„์™€ ๋„คํŠธ์›Œํฌ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์บ์‹œ๊ฐ€ ๋ฐ˜ํ™˜๋œ ์‘๋‹ต์„ ์ผ๋ถ€ ๋˜๋Š” ๋ชจ๋“  ๋ณ‘ํ•ฉ๋œ ์š”์ฒญ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์š”์ฒญ๋“ค์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์š”์ฒญ์„ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์ด์ƒ์˜ ์ ํ•ฉํ•œ ์‘๋‹ต์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์‘๋‹ต(Date ํ—ค๋” ํ•„๋“œ๋กœ ๊ฒฐ์ •)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ๋˜ํ•œ ์–ด๋–ค ์‘๋‹ต์„ ์‚ฌ์šฉํ• ์ง€ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด "Cache-Control: max-age=0" ๋˜๋Š” "Cache-Control: no-cache"์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ณ„๋ฅผ ๊ฐ–์ง€ ์•Š์€ ์บ์‹œ(์„น์…˜ 5.6.7 of [HTTP])๋Š” ์ €์žฅ๋œ ์‘๋‹ต์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ์žฌ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

4.1. Vary ํ—ค๋” ํ•„๋“œ๋กœ ์บ์‹œ ํ‚ค ๊ณ„์‚ฐ

์บ์‹œ๊ฐ€ ์ €์žฅ๋œ ์‘๋‹ต์œผ๋กœ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์„ ์ˆ˜์‹ ํ–ˆ๊ณ  ๊ทธ ์ €์žฅ๋œ ์‘๋‹ต์— Vary ํ—ค๋” ํ•„๋“œ(์„น์…˜ 12.5.5 of [HTTP])๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ๊ทธ Vary ํ•„๋“œ๊ฐ€ ์ง€๋ช…ํ•œ ๋ชจ๋“  ์ œ์‹œ๋œ ์š”์ฒญ ํ—ค๋” ํ•„๋“œ๊ฐ€ ์›๋ž˜ ์š”์ฒญ(์ฆ‰, ์บ์‹œ๋œ ์‘๋‹ต์„ ์ €์žฅํ•˜๊ฒŒ ํ•œ ์š”์ฒญ)์˜ ํ•„๋“œ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์žฌ๊ฒ€์ฆ ์—†์ด ์ €์žฅ๋œ ์‘๋‹ต์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

๋‘ ์š”์ฒญ์˜ ํ—ค๋” ํ•„๋“œ๊ฐ€ ์ผ์น˜ํ•œ๋‹ค๊ณ  ์ •์˜๋˜๋Š” ์กฐ๊ฑด์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์˜ ํ•„๋“œ๋ฅผ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์˜ ํ•„๋“œ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๋ฟ์ž…๋‹ˆ๋‹ค:

  • ํ—ค๋” ํ•„๋“œ ๋ฌธ๋ฒ•์ƒ ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ
  • ๊ฐ™์€ ํ•„๋“œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํ—ค๋” ํ•„๋“œ ๋ผ์ธ์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2 of [HTTP] ์ฐธ์กฐ)
  • ํ—ค๋” ํ•„๋“œ์˜ ๊ทœ๊ฒฉ์— ๋”ฐ๋ผ ์˜๋ฏธ๊ฐ€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‘ ํ—ค๋” ํ•„๋“œ ๊ฐ’์„ ์ •๊ทœํ™”ํ•˜๋Š” ๊ฒƒ(์˜ˆ: ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฐ’์˜ ์žฌ์ •๋ ฌ; ๊ฐ’์ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์•„๋‹Œ ๊ฒฝ์šฐ์˜ ๋Œ€์†Œ๋ฌธ์ž ์ •๊ทœํ™”)

(์ •๊ทœํ™” ํ›„) ์š”์ฒญ์—์„œ ํ—ค๋” ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด, ๊ทธ ํ•„๋“œ๋Š” ๋‹ค๋ฅธ ์š”์ฒญ์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์—†์„ ๋•Œ์—๋งŒ ์ผ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Vary ํ—ค๋” ํ•„๋“œ ๊ฐ’์— "*"๊ฐ€ ํฌํ•จ๋œ ์ €์žฅ๋œ ์‘๋‹ต์€ ํ•ญ์ƒ ์ผ์น˜ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ €์žฅ๋œ ์‘๋‹ต์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋ช…๋œ ์š”์ฒญ ํ—ค๋” ํ•„๋“œ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๋ ค์ง„ ๋ฉ”์ปค๋‹ˆ์ฆ˜(์˜ˆ: Accept ๋“ฑ์˜ q๊ฐ’)์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ทธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํ˜ธ๋˜๋Š” ์‘๋‹ต์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ๊ทธ๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†๊ฑฐ๋‚˜ ๋™๋“ฑํ•œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฃผ๋Š” ์‘๋‹ต๋“ค์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์‘๋‹ต(Date ํ—ค๋” ํ•„๋“œ๋กœ ๊ฒฐ์ •)์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4 ์ฐธ์กฐ).

์ผ๋ถ€ ์ž์›์€ ๊ธฐ๋ณธ ์‘๋‹ต(์ฆ‰ ์š”์ฒญ์ด ์„ ํ˜ธ๋„๋ฅผ ํ‘œํ˜„ํ•˜์ง€ ์•Š์„ ๋•Œ ์ „์†ก๋˜๋Š” ๊ฒƒ)์—์„œ Vary ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ˆ„๋ฝํ•˜์—ฌ, ์ดํ›„ ๊ทธ ์ž์›์— ๋Œ€ํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ๋” ์„ ํ˜ธ๋˜๋Š” ์‘๋‹ต์ด ์žˆ์–ด๋„ ๊ธฐ๋ณธ ์‘๋‹ต์„ ์„ ํƒํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์‹ค์ˆ˜๋ฅผ ๋ฒ”ํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ์— ๋Œ€์ƒ URI์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ €์žฅ๋œ ์‘๋‹ต์ด ์žˆ๊ณ  ๊ทธ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด Vary ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ˆ„๋ฝํ•œ ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ์œ ํšจํ•œ Vary ํ•„๋“œ ๊ฐ’์„ ๊ฐ€์ง„ ์ €์žฅ๋œ ์‘๋‹ต ์ค‘ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๊ฒƒ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD; ์„น์…˜ 4.2.3 ์ฐธ์กฐ).

์ €์žฅ๋œ ์‘๋‹ต๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์—†์œผ๋ฉด, ์บ์‹œ๋Š” ์ œ์‹œ๋œ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์ฒญ์€ ์›์  ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ์บ์‹œ๊ฐ€ ์ด๋ฏธ ์ €์žฅํ•œ ์‘๋‹ต์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ œ์กฐ๊ฑด์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์„น์…˜ 4.3).

4.2. ์‹ ์„ ๋„

์‹ ์„ ํ•œ(fresh) ์‘๋‹ต์€ ๊ทธ ์—ฐ๋ น์ด ์•„์ง ์‹ ์„ ๋„ ์ˆ˜๋ช…์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์€ ์‘๋‹ต์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋งŒ๋ฃŒ๋œ(stale) ์‘๋‹ต์€ ๊ทธ ์—ฐ๋ น์ด ์‹ ์„ ๋„ ์ˆ˜๋ช…์„ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์‘๋‹ต์˜ ์‹ ์„ ๋„ ์ˆ˜๋ช…(freshness lifetime)์€ ์›์  ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋œ ์‹œ์ ๊ณผ ๋งŒ๋ฃŒ ์‹œ์  ์‚ฌ์ด์˜ ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„(explicit expiration time)์€ ์›์  ์„œ๋ฒ„๊ฐ€ ์ €์žฅ๋œ ์‘๋‹ต์„ ๋” ์ด์ƒ์˜ ๊ฒ€์ฆ ์—†์ด ์บ์‹œ๊ฐ€ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์˜๋„ํ•œ ์‹œ๊ฐ„์ธ ๋ฐ˜๋ฉด, ํœด๋ฆฌ์Šคํ‹ฑ ๋งŒ๋ฃŒ ์‹œ๊ฐ„(heuristic expiration time)์€ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์ œ๊ณต๋˜์ง€ ์•Š์„ ๋•Œ ์บ์‹œ๊ฐ€ ํ• ๋‹นํ•˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์‘๋‹ต์˜ ์—ฐ๋ น(age)์€ ์‘๋‹ต์ด ์›์  ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋œ ์ดํ›„ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์‘๋‹ต์ด ์‹ ์„ ํ•˜๋ฉด ์›์  ์„œ๋ฒ„์— ์ ‘์ด‰ํ•˜์ง€ ์•Š๊ณ  ํ›„์† ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์‹ ์„ ๋„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์›์  ์„œ๋ฒ„๊ฐ€ Expires ํ—ค๋” ํ•„๋“œ(์„น์…˜ 5.3) ๋˜๋Š” max-age ์‘๋‹ต ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.1)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋ž˜์˜ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์›์  ์„œ๋ฒ„๋Š” ๋งŒ๋ฃŒ ์‹œ๊ฐ„์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ํ‘œํ˜„์ด ์˜๋ฏธ์ ์œผ๋กœ ํฌ๊ฒŒ ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์‘๋‹ต์— ๋ฏธ๋ž˜์˜ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

์›์  ์„œ๋ฒ„๊ฐ€ ์บ์‹œ๋กœ ํ•˜์—ฌ๊ธˆ ๋ชจ๋“  ์š”์ฒญ์„ ๊ฒ€์ฆํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ, ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๊ณผ๊ฑฐ๋กœ ์„ค์ •ํ•˜์—ฌ ์‘๋‹ต์ด ์ด๋ฏธ ๋งŒ๋ฃŒ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ๊ฒฉ์„ ์ค€์ˆ˜ํ•˜๋Š” ์บ์‹œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŒ๋ฃŒ๋œ ์บ์‹œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2.4 ์ฐธ์กฐ).

์›์  ์„œ๋ฒ„๊ฐ€ ํ•ญ์ƒ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์บ์‹œ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํœด๋ฆฌ์Šคํ‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2.2 ์ฐธ์กฐ).

์‘๋‹ต์ด ์‹ ์„ ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ณ„์‚ฐ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

   response_is_fresh = (freshness_lifetime > current_age)

freshness_lifetime์€ ์„น์…˜ 4.2.1์— ์ •์˜๋˜์–ด ์žˆ๊ณ ; current_age๋Š” ์„น์…˜ 4.2.3์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ์‘๋‹ต์˜ ์‹ ์„ ๋„ ๊ณ„์‚ฐ์— ๋Œ€ํ•œ ์ œํ•œ์„ ์ œ์•ˆํ•˜๊ธฐ ์œ„ํ•ด max-age ๋˜๋Š” min-fresh ์š”์ฒญ ์ง€์‹œ์–ด(์„น์…˜ 5.2.1)๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ๋Š” ์ด๋ฅผ ๋ฐ˜๋“œ์‹œ ์ค€์ˆ˜ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์‹ ์„ ๋„๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋‚ ์งœ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด:

  • ๋ชจ๋“  ๋‚ ์งœ ํ˜•์‹์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋„๋ก ์ง€์ •๋˜์–ด ์žˆ์ง€๋งŒ, ์บ์‹œ ์ˆ˜์‹ ์ž๋Š” ํ•„๋“œ ๊ฐ’์„ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ์ผ์น˜์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).
  • ์บ์‹œ ์ˆ˜์‹ ์ž์˜ ๋‚ด๋ถ€ ์‹œ๊ฐ„ ๊ตฌํ˜„์ด HTTP-date ๊ฐ’๋ณด๋‹ค ํ•ด์ƒ๋„๊ฐ€ ๋‚ฎ์œผ๋ฉด, ์ˆ˜์‹ ์ž๋Š” ํŒŒ์‹ฑ๋œ Expires ๋‚ ์งœ๋ฅผ ์ˆ˜์‹ ๋œ ๊ฐ’๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ์ด์ „์ธ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์‹œ๊ฐ์œผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ํ‘œํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).
  • ์บ์‹œ ์ˆ˜์‹ ์ž๋Š” ์ง€์—ญ ์‹œ๊ฐ„๋Œ€๋ฅผ ์—ฐ๋ น์ด๋‚˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์˜ ๊ณ„์‚ฐ ๋˜๋Š” ๋น„๊ต์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).
  • ์บ์‹œ ์ˆ˜์‹ ์ž๋Š” "GMT"๊ฐ€ ์•„๋‹Œ ๊ตฌ์—ญ ์•ฝ์–ด(zone abbreviation)๋ฅผ ๊ฐ€์ง„ ๋‚ ์งœ๋ฅผ ๋งŒ๋ฃŒ ๊ณ„์‚ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD).

์‹ ์„ ๋„๋Š” ์บ์‹œ ๋™์ž‘์—๋งŒ ์ ์šฉ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๊ฐ€ ํ‘œ์‹œ๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ฑฐ๋‚˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์บ์‹œ์™€ ๊ธฐ๋ก(history) ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์„น์…˜ 6์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

4.2.1. ์‹ ์„ ๋„ ์ˆ˜๋ช… ๊ณ„์‚ฐ

์บ์‹œ๋Š” ๋‹ค์Œ ๊ทœ์น™๋“ค์„ ํ‰๊ฐ€ํ•˜์—ฌ ์‘๋‹ต์˜ ์‹ ์„ ๋„ ์ˆ˜๋ช…(freshness_lifetime)์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฒซ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ์บ์‹œ๊ฐ€ ๊ณต์œ  ์บ์‹œ์ด๊ณ  s-maxage ์‘๋‹ต ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.10)๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜,
  • max-age ์‘๋‹ต ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.1)๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜,
  • Expires ์‘๋‹ต ํ—ค๋” ํ•„๋“œ(์„น์…˜ 5.3)๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๊ฐ’์—์„œ Date ์‘๋‹ต ํ—ค๋” ํ•„๋“œ์˜ ๊ฐ’์„ ๋บ€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๋งŒ์•ฝ Date ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ์‹œ๊ฐ„์„ ์‚ฌ์šฉ; ์„น์…˜ 6.6.1 ์ฐธ์กฐ), ๋˜๋Š”
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‘๋‹ต์— ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํœด๋ฆฌ์Šคํ‹ฑ ์‹ ์„ ๋„ ์ˆ˜๋ช…์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค; ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.2.2 ์ฐธ์กฐ.

์ด ๊ณ„์‚ฐ์€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์›์  ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•œ ์‹œ๊ณ„ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ณ„ ์ฐจ์ด๋ฅผ ์ค„์ด๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค๋Š” ์ ์„ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์–ด์ง„ ์ง€์‹œ์–ด์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: ๋‘ ๊ฐœ์˜ Expires ํ—ค๋” ํ•„๋“œ ๋ผ์ธ ๋˜๋Š” ์—ฌ๋Ÿฌ Cache-Control: max-age ์ง€์‹œ์–ด), ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‘๋‹ต์„ ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€์‹œ์–ด๊ฐ€ ์ƒ์ถฉํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: max-age์™€ no-cache๊ฐ€ ๋ชจ๋‘ ์žˆ๋Š” ๊ฒฝ์šฐ)์—๋Š” ๊ฐ€์žฅ ์ œํ•œ์ ์ธ ์ง€์‹œ์–ด๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์ž˜๋ชป๋œ ์‹ ์„ ๋„ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ์‘๋‹ต(์˜ˆ: ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‚ด์šฉ์„ ๊ฐ€์ง„ max-age ์ง€์‹œ์–ด)์„ ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋„๋ก ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

4.2.2. ํœด๋ฆฌ์Šคํ‹ฑ ์‹ ์„ ๋„ ๊ณ„์‚ฐ

์›์  ์„œ๋ฒ„๊ฐ€ ํ•ญ์ƒ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์บ์‹œ๋Š” ๋ช…์‹œ์  ์‹œ๊ฐ„์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํœด๋ฆฌ์Šคํ‹ฑ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ์ด๋•Œ Last-Modified ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ•„๋“œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋Ÿด๋“ฏํ•œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ถ”์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…์„ธ์„œ๋Š” ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ, ๊ทธ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์ œ์•ฝ์„ ๋ถ€๊ณผํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ๋œ ์‘๋‹ต์— ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์บ์‹œ๋Š” ํœด๋ฆฌ์Šคํ‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ ์„ ๋„๋ฅผ ๊ฒฐ์ •ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT). ์„น์…˜ 3์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋•Œ๋ฌธ์—, ํœด๋ฆฌ์Šคํ‹ฑ์€ ๋ช…์‹œ์  ์‹ ์„ ๋„๊ฐ€ ์—†๋Š” ์‘๋‹ต์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅ(heuristically cacheable)์œผ๋กœ ์ •์˜๋œ ๊ฒฝ์šฐ(์˜ˆ: ์„น์…˜ 15.1 ์ฐธ์กฐ)๋‚˜ ๋ช…์‹œ์ ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ‘œ์‹œ๋œ(์˜ˆ: public ์‘๋‹ต ์ง€์‹œ์–ด) ์‘๋‹ต์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๊ทœ๊ฒฉ์—์„œ๋Š” ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ๋ฅผ "๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅ(cacheable by default)"์ด๋ผ๊ณ  ๋ถˆ๋ €์Œ์„ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

์‘๋‹ต์— Last-Modified ํ—ค๋” ํ•„๋“œ๊ฐ€ ์žˆ์œผ๋ฉด(์„น์…˜ 8.8.2 ์ฐธ์กฐ), ์บ์‹œ๋Š” ๊ทธ ์‹œ๊ฐ„ ์ดํ›„์˜ ๊ฐ„๊ฒฉ์˜ ์ผ๋ถ€ ๋น„์œจ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋Š” ํœด๋ฆฌ์Šคํ‹ฑ ๋งŒ๋ฃŒ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ๋น„์œจ์˜ ์ผ๋ฐ˜์ ์ธ ์„ค์ • ๊ฐ’์€ 10%์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2.3. ์—ฐ๋ น ๊ณ„์‚ฐ

Age ํ—ค๋” ํ•„๋“œ๋Š” ์บ์‹œ์—์„œ ์–ป์€ ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ ์ถ”์ • ์—ฐ๋ น์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Age ํ•„๋“œ ๊ฐ’์€ ์›์  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ฆํ•œ ์ดํ›„ ๊ฒฝ๊ณผํ•œ ์ดˆ ์ˆ˜์— ๋Œ€ํ•œ ์บ์‹œ์˜ ์ถ”์ •์น˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Age ๊ฐ’์€ ์›์  ์„œ๋ฒ„์—์„œ ์‘๋‹ต์ด ์‹œ์ž‘๋œ ์ดํ›„ ๊ฒฝ๋กœ์ƒ์˜ ๊ฐ ์บ์‹œ์— ๋จธ๋ฌธ ์‹œ๊ฐ„์˜ ํ•ฉ๊ณผ ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•œ ์ „์†ก ์‹œ๊ฐ„์˜ ํ•ฉ์ž…๋‹ˆ๋‹ค.

์—ฐ๋ น ๊ณ„์‚ฐ์€ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

age_value
"age_value"๋ผ๋Š” ์šฉ์–ด๋Š” Age ํ—ค๋” ํ•„๋“œ(์„น์…˜ 5.1)์˜ ๊ฐ’์„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 0์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
date_value
"date_value"๋ผ๋Š” ์šฉ์–ด๋Š” Date ํ—ค๋” ํ•„๋“œ์˜ ๊ฐ’์„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Date ํ—ค๋” ํ•„๋“œ์˜ ์ •์˜ ๋ฐ ๊ทธ๊ฒƒ์ด ์—†๋Š” ์‘๋‹ต์— ๊ด€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์€ ์„น์…˜ 6.6.1 of [HTTP]๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
now
"now"๋ผ๋Š” ์šฉ์–ด๋Š” ์ด ๊ตฌํ˜„์˜ ์‹œ๊ณ„์˜ ํ˜„์žฌ ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์„น์…˜ 5.6.7 of [HTTP]).
request_time
์ €์žฅ๋œ ์‘๋‹ต์„ ์ดˆ๋ž˜ํ•œ ์š”์ฒญ ์‹œ์ ์˜ ์‹œ๊ณ„ ๊ฐ’์ž…๋‹ˆ๋‹ค.
response_time
์‘๋‹ต์ด ์ˆ˜์‹ ๋œ ์‹œ์ ์˜ ์‹œ๊ณ„ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์‘๋‹ต์˜ ์—ฐ๋ น์€ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. "apparent_age": ๊ตฌํ˜„์ฒด์˜ ์‹œ๊ณ„๊ฐ€ ์›์  ์„œ๋ฒ„์˜ ์‹œ๊ณ„์™€ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋™๊ธฐํ™”๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, response_time์—์„œ date_value๋ฅผ ๋บ€ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์Œ์ˆ˜์ด๋ฉด 0์œผ๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.
  2. ์‘๋‹ต ๊ฒฝ๋กœ์ƒ์˜ ๋ชจ๋“  ์บ์‹œ๊ฐ€ HTTP/1.1 ์ด์ƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ์˜ "corrected_age_value". ์บ์‹œ๋Š” ์ด ๊ฐ’์„ ์‘๋‹ต์ด ์ˆ˜์‹ ๋œ ์‹œ๊ฐ„์ด ์•„๋‹ˆ๋ผ ์š”์ฒญ์ด ์‹œ์ž‘๋œ ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).
  apparent_age = max(0, response_time - date_value);

  response_delay = response_time - request_time;
  corrected_age_value = age_value + response_delay;

corrected_age_value๋Š” corrected_initial_age๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ์˜ค๋ž˜๋œ ์บ์‹œ ๊ตฌํ˜„๋“ค ์ค‘ ์ผ๋ถ€๊ฐ€ Age๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฝ์ž…ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, corrected_initial_age๋Š” ๋ณด๋‹ค ๋ณด์ˆ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  corrected_initial_age = max(apparent_age, corrected_age_value);

์ €์žฅ๋œ ์‘๋‹ต์˜ current_age๋Š” ์›์  ์„œ๋ฒ„์— ์˜ํ•ด ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฒ€์ฆ๋œ ์ดํ›„ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„(์ดˆ)์„ corrected_initial_age์— ๋”ํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  resident_time = now - response_time;
  current_age = corrected_initial_age + resident_time;

4.2.4. ๋งŒ๋ฃŒ๋œ ์‘๋‹ต ์ œ๊ณต

"๋งŒ๋ฃŒ๋œ(stale)" ์‘๋‹ต์€ ๋ช…์‹œ์  ๋งŒ๋ฃŒ ์ •๋ณด๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ํœด๋ฆฌ์Šคํ‹ฑ ๋งŒ๋ฃŒ๊ฐ€ ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์„น์…˜ 4.2์˜ ๊ณ„์‚ฐ์— ๋”ฐ๋ผ ์‹ ์„ ํ•˜์ง€ ์•Š์€ ์‘๋‹ต์ž…๋‹ˆ๋‹ค.

์บ์‹œ๋Š” ํ”„๋กœํ† ์ฝœ ๋‚ด์˜ ๋ช…์‹œ์  ์ง€์‹œ์–ด(์˜ˆ: no-cache ์‘๋‹ต ์ง€์‹œ์–ด, must-revalidate ์‘๋‹ต ์ง€์‹œ์–ด, ๋˜๋Š” ์ ์šฉ ๊ฐ€๋Šฅํ•œ s-maxage ๋˜๋Š” proxy-revalidate ์‘๋‹ต ์ง€์‹œ์–ด; ์„น์…˜ 5.2.2 ์ฐธ์กฐ)์— ์˜ํ•ด ๊ธˆ์ง€๋˜๋Š” ๊ฒฝ์šฐ ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

์บ์‹œ๋Š” ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์›์  ์„œ๋ฒ„๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•œ ๊ฒฝ์šฐ(์˜ˆ: ์„น์…˜ 5.2.1์˜ max-stale ์š”์ฒญ ์ง€์‹œ์–ด, RFC5861์™€ ๊ฐ™์€ ํ™•์žฅ ์ง€์‹œ์–ด, ๋˜๋Š” ๋Œ€์—ญ ์™ธ ๊ณ„์•ฝ์— ๋”ฐ๋ฅธ ๊ตฌ์„ฑ)๋งŒ ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MUST NOT).

4.3. ๊ฒ€์ฆ

์บ์‹œ๊ฐ€ ์š”์ฒญ๋œ URI์— ๋Œ€ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‚˜ ๊ทธ ์–ด๋–ค ๊ฒƒ๋„ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(์˜ˆ: ์‹ ์„ ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์„ ํƒํ•  ์ˆ˜ ์—†์Œ; ์„น์…˜ 4.1 ์ฐธ์กฐ), ์บ์‹œ๋Š” ์ „๋‹ฌ๋˜๋Š” ์š”์ฒญ์—์„œ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ ๋ฉ”์ปค๋‹ˆ์ฆ˜(์„น์…˜ 13 of [HTTP])์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ˆ˜์‹  ์„œ๋ฒ„๊ฐ€ ์ €์žฅ๋œ ์‘๋‹ต ์ค‘ ์œ ํšจํ•œ ๊ฒƒ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ €์žฅ๋œ ์‘๋‹ต์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜, ์ €์žฅ๋œ ์‘๋‹ต์„ ์ƒˆ ์‘๋‹ต์œผ๋กœ ๊ต์ฒดํ•  ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ์ €์žฅ๋œ ์‘๋‹ต์˜ ๊ฒ€์ฆ(validating) ๋˜๋Š” ์žฌ๊ฒ€์ฆ(revalidating)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

4.3.1. ๊ฒ€์ฆ ์š”์ฒญ ์ „์†ก

๊ฒ€์ฆ์„ ์œ„ํ•œ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ์ƒ์„ฑํ•  ๋•Œ, ์บ์‹œ๋Š” ๋งŒ์กฑ์‹œํ‚ค๋ ค๋Š” ์š”์ฒญ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ โ€” ๋…๋ฆฝ์ ์œผ๋กœ ์š”์ฒญ์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ โ€” ์ €์žฅ๋œ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ, ๋Œ€์ƒ URI ๋ฐ Vary ํ—ค๋” ํ•„๋“œ(์„น์…˜ 4.1)์— ์˜ํ•ด ์‹๋ณ„๋œ ์š”์ฒญ ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์š”์ฒญ์„ ํ•ฉ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์บ์‹œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ „์ œ์กฐ๊ฑด ํ—ค๋” ํ•„๋“œ๋กœ ํ•ด๋‹น ์š”์ฒญ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•„๋“œ๋Š” ๋™์ผํ•œ URI๋ฅผ ๊ฐ€์ง„ ์ €์žฅ๋œ ์‘๋‹ต์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ ๊ฒ€์ฆ์ž ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ๋™์ผํ•œ ์บ์‹œ ํ‚ค๋ฅผ ๊ฐ€์ง„ ์ €์žฅ๋œ ์‘๋‹ต๋งŒ ํฌํ•จํ•˜์ง€๋งŒ, ์บ์‹œ๋Š” ์ „์†กํ•˜๋Š” ์š”์ฒญ ํ—ค๋” ํ•„๋“œ๋กœ ์„ ํƒํ•  ์ˆ˜ ์—†๋Š” ์‘๋‹ต์„ ๊ฒ€์ฆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.1 ์ฐธ์กฐ).

๊ทธ ํ›„ ์ˆ˜์‹ ์ž๋Š” ์ „์ œ์กฐ๊ฑด ํ—ค๋” ํ•„๋“œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ €์žฅ๋œ ์–ด๋–ค ์‘๋‹ต์ด ์ž์›์˜ ํ˜„์žฌ ํ‘œํ˜„๊ณผ ๋™๋“ฑํ•œ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ฆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒ€์ฆ์ž ์ค‘ ํ•˜๋‚˜๋Š” Last-Modified ํ—ค๋” ํ•„๋“œ์— ์ œ๊ณต๋œ ํƒ€์ž„์Šคํƒฌํ”„์ด๋ฉฐ, ์ด๋Š” ์‘๋‹ต ๊ฒ€์ฆ์„ ์œ„ํ•ด If-Modified-Since ํ—ค๋” ํ•„๋“œ์—์„œ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜, ํ‘œํ˜„ ์„ ํƒ์„ ์œ„ํ•ด If-Unmodified-Since ๋˜๋Š” If-Range์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๊ฐ€์ง„ ์ด์ „์— ์–ป์€ ํ‘œํ˜„์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ).

๋˜ ๋‹ค๋ฅธ ๊ฒ€์ฆ์ž๋Š” ETag ํ•„๋“œ์— ์ฃผ์–ด์ง„ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ์ด๋ฉฐ, ํ•˜๋‚˜ ์ด์ƒ์˜ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ(์ €์žฅ๋œ ์‘๋‹ต์„ ๋‚˜ํƒ€๋‚ด๋Š”)๋ฅผ If-None-Match ํ—ค๋” ํ•„๋“œ์—์„œ ์‘๋‹ต ๊ฒ€์ฆ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ํ‘œํ˜„ ์„ ํƒ์„ ์œ„ํ•ด If-Match ๋˜๋Š” If-Range์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์ฆ์„ ์œ„ํ•œ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ์ƒ์„ฑํ•  ๋•Œ, ์บ์‹œ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • MUST ์ €์žฅ๋œ ์‘๋‹ต๋“ค์— ์ œ๊ณต๋œ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ด€๋ จ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๋ฅผ ์ „์†กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(If-Match, If-None-Match, ๋˜๋Š” If-Range ์‚ฌ์šฉ).
  • SHOULD ์š”์ฒญ์ด ์„œ๋ธŒ๋ฒ”์œ„(subrange)๊ฐ€ ์•„๋‹ˆ๊ณ  ๋‹จ์ผ ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ฒ€์ฆํ•˜๋ฉฐ ๊ทธ ์‘๋‹ต์— Last-Modified ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, If-Modified-Since๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Last-Modified ๊ฐ’์„ ์ „์†กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • MAY ์š”์ฒญ์ด ์„œ๋ธŒ๋ฒ”์œ„์ด๊ณ  ๋‹จ์ผ ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ฒ€์ฆํ•˜๋ฉฐ ๊ทธ ์‘๋‹ต์— ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ์—†๊ณ  Last-Modified ๊ฐ’๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” If-Unmodified-Since ๋˜๋Š” If-Range๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Last-Modified ๊ฐ’์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ๋ช…๋ฐฑํžˆ ์šฐ์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋„ ์˜ค๋ž˜๋œ ์ค‘๊ฐœ์ž๊ฐ€ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ ์ „์ œ์กฐ๊ฑด์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๋‘ ๊ฒ€์ฆ์ž ๋ชจ๋‘๊ฐ€ ์บ์‹œ ๊ฒ€์ฆ ์š”์ฒญ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

4.3.2. ์ˆ˜์‹ ๋œ ๊ฒ€์ฆ ์š”์ฒญ ์ฒ˜๋ฆฌ

์š”์ฒญ ์ฒด์ธ์˜ ๊ฐ ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์ฒด ์บ์‹œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ค‘๊ฐœ์ž์— ์žˆ๋Š” ์บ์‹œ๊ฐ€ ๋‹ค๋ฅธ(์™ธ๋ถ€) ์บ์‹œ๋กœ๋ถ€ํ„ฐ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ถ€ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๋Š” ์ตœ๊ทผ์— ์ˆ˜์ •๋œ ํ‘œํ˜„์œผ๋กœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ๋ถ€๋ถ„์ ์œผ๋กœ ๊ฒ€์ƒ‰๋œ ํ‘œํ˜„์˜ ์ „์†ก์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ๊ฐ€ 200 (OK) ๋˜๋Š” 206 (Partial Content) ์ €์žฅ๋œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์„ ์ˆ˜์‹ ํ•œ ๊ฒฝ์šฐ(์„น์…˜ 4 ์ฐธ์กฐ), ์บ์‹œ๋Š” ํ•ด๋‹น ์š”์ฒญ์—์„œ ์ˆ˜์‹ ๋œ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด๋ถ€ ํ—ค๋” ์ „์ œ์กฐ๊ฑด์„ ์ €์žฅ๋œ ์‘๋‹ต์— ํฌํ•จ๋œ ๋Œ€์‘ ๊ฒ€์ฆ์ž์— ๋Œ€ํ•ด ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).

์บ์‹œ๋Š” ์˜ค์ง ์›์  ์„œ๋ฒ„์—๋งŒ ์ ์šฉ๋˜๋Š” ์กฐ๊ฑด๋ถ€ ํ—ค๋” ํ•„๋“œ, ์บ์‹œ๋กœ๋Š” ๋งŒ์กฑํ•  ์ˆ˜ ์—†๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ์š”์ฒญ์˜ ์ „์ œ์กฐ๊ฑด, ๋˜๋Š” ์ €์žฅ๋œ ์‘๋‹ต์ด ์—†๋Š” ๋Œ€์ƒ ์ž์›์— ํฌํ•จ๋œ ์ „์ œ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT); ์ด๋Ÿฌํ•œ ์ „์ œ์กฐ๊ฑด์€ ๋‹ค๋ฅธ(์ˆ˜์‹ ์ธก) ์„œ๋ฒ„๋ฅผ ์˜๋„ํ•œ ๊ฒƒ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์บ์‹œ์— ์˜ํ•œ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์˜ ์ ์ ˆํ•œ ํ‰๊ฐ€๋Š” ์ˆ˜์‹ ๋œ ์ „์ œ์กฐ๊ฑด ํ—ค๋” ํ•„๋“œ์™€ ๊ทธ ์šฐ์„ ์ˆœ์œ„์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์•ฝํ•˜๋ฉด, If-Match ๋ฐ If-Unmodified-Since ์ „์ œ์กฐ๊ฑด์€ ์บ์‹œ์— ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, If-None-Match์€ If-Modified-Since๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ์กฐ๊ฑด ์šฐ์„ ์ˆœ์œ„์˜ ์ „์ฒด ๊ทœ๊ฒฉ์€ ์„น์…˜ 13.2.2 of [HTTP]๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

If-None-Match ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์€(If-None-Match), ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์˜ ์ €์žฅ๋œ ์‘๋‹ต๋“ค ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์บ์‹œ๊ฐ€ ์„ ํƒํ•œ ์ €์žฅ๋œ ์‘๋‹ต๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฒ€์ฆํ•˜๊ธฐ๋ฅผ ์›ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4 ์ฐธ์กฐ).

If-None-Match ํ—ค๋”๊ฐ€ ์—†๊ณ  If-Modified-Since ํ—ค๋”๋ฅผ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์€(If-Modified-Since), ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์˜ ์ €์žฅ๋œ ์‘๋‹ต๋“ค์„ ์ˆ˜์ •์ผ๋กœ ๊ฒ€์ฆํ•˜๊ธฐ๋ฅผ ์›ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์š”์ฒญ์— If-Modified-Since๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ์ €์žฅ๋œ ์‘๋‹ต์— Last-Modified ํ—ค๋”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ์กฐ๊ฑด ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ์ €์žฅ๋œ ์‘๋‹ต์˜ Date ํ•„๋“œ ๊ฐ’(๋˜๋Š” Date ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ €์žฅ๋œ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•œ ์‹œ๊ฐ„)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD).

๋ฒ”์œ„ ์š”์ฒญ์— ๋Œ€ํ•œ ๋ถ€๋ถ„ ์‘๋‹ต์„ ๊ตฌํ˜„ํ•˜๋Š” ์บ์‹œ๋Š”(์„น์…˜ 14.2 ์ฐธ์กฐ) If-Range ํ—ค๋” ํ•„๋“œ(์„น์…˜ 13.1.5)๋ฅผ ์บ์‹œ๊ฐ€ ์„ ํƒํ•œ ์‘๋‹ต์— ๋Œ€ํ•ด ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

If-None-Match ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ ๋ชฉ๋ก์„ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์„ ์žฌ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์บ์‹œ๋Š”(If-None-Match), ์ˆ˜์‹ ๋œ ๋ชฉ๋ก์„ ์ž์‹ ์˜ ์ €์žฅ๋œ ์‘๋‹ต์…‹(์‹ ์„ ํ•˜๊ฑฐ๋‚˜ ๋งŒ๋ฃŒ๋œ)์—์„œ์˜ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ ๋ชฉ๋ก๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ „๋‹ฌ ์š”์ฒญ์— If-None-Match ํ—ค๋” ํ•„๋“œ ๊ฐ’์œผ๋กœ ๋‘ ๋ชฉ๋ก์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ์ €์žฅ๋œ ์‘๋‹ต์ด ๋ถ€๋ถ„ ์ฝ˜ํ…์ธ ๋งŒ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ ์ €์žฅ๋œ ์‘๋‹ต์ด ์š”์ฒญ๋œ ๋ฒ”์œ„๋ฅผ ์™„์ „ํžˆ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ทธ ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๋ฅผ ํ•ฉ์ง‘ํ•ฉ์— ํฌํ•จํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT). ์ „๋‹ฌ๋œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด 304 (Not Modified)์ด๊ณ  ETag ํ•„๋“œ ๊ฐ’์— ํด๋ผ์ด์–ธํŠธ ๋ชฉ๋ก์— ์—†๋Š” ์—”ํ„ฐํ‹ฐ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด, ์บ์‹œ๋Š” 304 ์‘๋‹ต ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์—…๋ฐ์ดํŠธ๋œ ํ•ด๋‹น ์ €์žฅ๋œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ 200 (OK) ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์„น์…˜ 4.3.4).

4.3.3. ๊ฒ€์ฆ ์‘๋‹ต ์ฒ˜๋ฆฌ

์กฐ๊ฑด๋ถ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์บ์‹œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์€ ๊ทธ ์ƒํƒœ ์ฝ”๋“œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค:

  • 304 (Not Modified) ์‘๋‹ต์€ ์ €์žฅ๋œ ์‘๋‹ต์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค; ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.3.4 ์ฐธ์กฐ.
  • ์ „์ฒด ์‘๋‹ต(์ฆ‰ ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•˜๋Š” ์‘๋‹ต)์€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์—์„œ ์ง€๋ช…๋œ ์ €์žฅ๋œ ์‘๋‹ต๋“ค ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์ ํ•ฉํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์บ์‹œ๋Š” ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ „์ฒด ์‘๋‹ต์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ์บ์‹œ๋Š” ๊ทธ๋Ÿฌํ•œ ์ „์ฒด ์‘๋‹ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY), ๋‹จ ์ €์žฅ ์ œ์•ฝ์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 3 ์ฐธ์กฐ).
  • ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ๊ฐ€ ๊ฒ€์ฆ์„ ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ 5xx (Server Error) ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด, ์บ์‹œ๋Š” ์ด ์‘๋‹ต์„ ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์ž์˜ ๊ฒฝ์šฐ, ์บ์‹œ๋Š” ์ด์ „์— ์ €์žฅ๋œ ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๋งŒ๋ฃŒ๋œ ์‘๋‹ต ์ œ๊ณต์— ๊ด€ํ•œ ์ œ์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค(์„น์…˜ 4.2.4), ๋˜๋Š” ๊ฒ€์ฆ ์š”์ฒญ์„ ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.3.4. ๊ฒ€์ฆ ์‹œ ์ €์žฅ๋œ ์‘๋‹ต ๊ฐฑ์‹ 

์บ์‹œ๊ฐ€ 304 (Not Modified) ์‘๋‹ต์„ ์ˆ˜์‹ ํ•˜๋ฉด, ์บ์‹œ๋Š” ์ƒˆ๋กœ ์ œ๊ณต๋œ ์ •๋ณด๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์ €์žฅ๋œ ์‘๋‹ต์„ ์‹๋ณ„ํ•œ ๋‹ค์Œ ์ด๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธํ•  ์ดˆ๊ธฐ ์ €์žฅ ์‘๋‹ต ์ง‘ํ•ฉ์€ ํ•ด๋‹น ์š”์ฒญ์— ๋Œ€ํ•ด ์„ ํƒ๋  ์ˆ˜ ์žˆ์—ˆ๋˜ ์‘๋‹ต๋“ค, ์ฆ‰ ์„น์…˜ 4์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์‘๋‹ต๋“ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค(๋‹จ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์š”๊ตฌ๋˜๋Š” ์‹ ์„ ํ•จ/๋งŒ๋ฃŒ ๊ฐ€๋Šฅ/๊ฒ€์ฆ๋œ ์ƒํƒœ ์š”๊ตฌ์‚ฌํ•ญ์€ ์ œ์™ธ).

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ดˆ๊ธฐ ์ง‘ํ•ฉ์€ ๋‹ค์Œ์˜ ์ฒซ ๋ฒˆ์งธ ์ผ์น˜ ๊ทœ์น™์œผ๋กœ ์ถ”๊ฐ€๋กœ ํ•„ํ„ฐ๋ง๋ฉ๋‹ˆ๋‹ค:

  • ์ƒˆ ์‘๋‹ต์ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž(strong validators)๋ฅผ ํฌํ•จํ•˜๋ฉด, ๊ฐ ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž๋Š” ๊ฐฑ์‹ ํ•  ์„ ํƒ๋œ ํ‘œํ˜„์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ง‘ํ•ฉ ๋‚ด์˜ ๋™์ผํ•œ ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์ €์žฅ๋œ ์‘๋‹ต์ด ๊ฐฑ์‹  ๋Œ€์ƒ์œผ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ง‘ํ•ฉ ์ค‘ ์–ด๋А ๊ฒƒ๋„ ๋™์ผํ•œ ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด ์บ์‹œ๋Š” ์ƒˆ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ฐฑ์‹ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).
  • ์ƒˆ ์‘๋‹ต์— ๊ฐ•ํ•œ ๊ฒ€์ฆ์ž๊ฐ€ ์—†๊ณ  ํ•˜๋‚˜ ์ด์ƒ์˜ ์•ฝํ•œ ๊ฒ€์ฆ์ž(weak validators)๋งŒ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ๊ทธ ๊ฒ€์ฆ์ž๋“ค์ด ์ดˆ๊ธฐ ์ง‘ํ•ฉ์˜ ์ €์žฅ๋œ ์‘๋‹ต ์ค‘ ํ•˜๋‚˜์— ๋Œ€์‘ํ•˜๋ฉด, ๊ทธ ์ผ์น˜ํ•˜๋Š” ์ €์žฅ๋œ ์‘๋‹ต๋“ค ์ค‘ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๊ฒƒ์ด ๊ฐฑ์‹  ๋Œ€์ƒ์œผ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ ์‘๋‹ต์ด ์–ด๋–ค ํ˜•ํƒœ์˜ ๊ฒ€์ฆ์ž๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ(์˜ˆ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ Last-Modified ์‘๋‹ต ํ—ค๋” ํ•„๋“œ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ถœ์ฒ˜์—์„œ If-Modified-Since ์š”์ฒญ์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ)์ด๊ณ , ์ดˆ๊ธฐ ์ง‘ํ•ฉ์— ์ €์žฅ๋œ ์‘๋‹ต์ด ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉฐ ๊ทธ ์ €์žฅ๋œ ์‘๋‹ต๋„ ๊ฒ€์ฆ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์ €์žฅ๋œ ์‘๋‹ต์ด ๊ฐฑ์‹  ๋Œ€์ƒ์œผ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค.

์‹๋ณ„๋œ ๊ฐ ์ €์žฅ๋œ ์‘๋‹ต์— ๋Œ€ํ•ด ์บ์‹œ๋Š” 304 (Not Modified) ์‘๋‹ต์— ์ œ๊ณต๋œ ํ—ค๋” ํ•„๋“œ๋กœ ์ €์žฅ๋œ ์‘๋‹ต์˜ ํ—ค๋” ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST); ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•์€ ์„น์…˜ 3.2๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

4.3.5. HEAD๋กœ ์‘๋‹ต ๊ฐฑ์‹ 

HEAD ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์‘๋‹ต์€ ๋™์ผํ•œ ์š”์ฒญ์„ GET์œผ๋กœ ํ–ˆ์„ ๋•Œ์˜ ์‘๋‹ต๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋ณธ๋ฌธ(content)์€ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํŠน์„ฑ์€ ์ €์žฅ๋œ GET ์‘๋‹ต์„ ๋ฌดํšจํ™”ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ €์žฅ๋œ ์‘๋‹ต์— ๊ฒ€์ฆ์ž๊ฐ€ ์—†์–ด์„œ ์กฐ๊ฑด๋ถ€ GET ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜, ์ฝ˜ํ…์ธ  ์ „์†ก์„ ์›ํ•˜์ง€ ์•Š์„ ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ๊ฐ€ ๋Œ€์ƒ URI์— ๋Œ€ํ•ด ์ธ๋ฐ”์šด๋“œ HEAD ์š”์ฒญ์„ ํ•˜๊ณ  200 (OK) ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด, ์บ์‹œ๋Š” ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•ด ์„ ํƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ ์ €์žฅ๋œ GET ์‘๋‹ต์„ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜ ๋ฌดํšจํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD); ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.1 ์ฐธ์กฐ.

์„ ํƒ๋  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฐ ์ €์žฅ๋œ ์‘๋‹ต์— ๋Œ€ํ•ด, ์ €์žฅ๋œ ์‘๋‹ต๊ณผ HEAD ์‘๋‹ต์ด ์ˆ˜์‹ ๋œ ๊ฒ€์ฆ์ž ํ•„๋“œ(ETag ๋ฐ Last-Modified)์— ๋Œ€ํ•ด ์ผ์น˜ํ•˜๊ณ , HEAD ์‘๋‹ต์— Content-Length ํ—ค๋” ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์ด ์ €์žฅ๋œ ์‘๋‹ต์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์บ์‹œ๋Š” ์ €์žฅ๋œ ์‘๋‹ต์„ ์•„๋ž˜์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD); ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ €์žฅ๋œ ์‘๋‹ต์„ ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).

์บ์‹œ๊ฐ€ HEAD ์‘๋‹ต์— ์ œ๊ณต๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์ €์žฅ๋œ ์‘๋‹ต์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ, ์บ์‹œ๋Š” HEAD ์‘๋‹ต์— ์ œ๊ณต๋œ ํ—ค๋” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ๋œ ์‘๋‹ต์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST); ๋ฐฉ๋ฒ•์€ ์„น์…˜ 3.2๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

4.4. ์ €์žฅ๋œ ์‘๋‹ต ๋ฌดํšจํ™”

PUT, POST, DELETE์™€ ๊ฐ™์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์š”์ฒญ ๋ฉ”์„œ๋“œ(์„น์…˜ 9.2.1 of [HTTP])๋Š” ์›์  ์„œ๋ฒ„์—์„œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ, ์ค‘๊ฐ„์— ๊ฐœ์ž…ํ•˜๋Š” ์บ์‹œ๋Š” ์ €์žฅ๋œ ์‘๋‹ต์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌดํšจํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

์บ์‹œ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์š”์ฒญ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋น„์˜ค๋ฅ˜ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ๋Œ€์ƒ URI(์„น์…˜ 7.1 of [HTTP])๋ฅผ ๋ฌดํšจํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

์บ์‹œ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์š”์ฒญ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋น„์˜ค๋ฅ˜ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ๋‹ค๋ฅธ URI๋“ค์„ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY). ํŠนํžˆ, ์‘๋‹ต ํ—ค๋” ํ•„๋“œ์˜ Location ๋ฐ Content-Location์— ์žˆ๋Š” URI(์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ)๋Š” ๋ฌดํšจํ™” ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ URI๋Š” ์ด ๋ฌธ์„œ์— ๋ช…์‹œ๋˜์ง€ ์•Š์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌดํšจํ™” ๋Œ€์ƒ์˜ ์›์ (์„น์…˜ 4.3.1 of [HTTP])์ด ๋Œ€์ƒ URI์˜ ์›์ ๊ณผ ๋‹ค๋ฅด๋ฉด, ์บ์‹œ๋Š” ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์—์„œ ๋ฌดํšจํ™”๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT). ์ด๋Š” ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฌดํšจํ™”(Invalidate)๋Š” ์บ์‹œ๊ฐ€ ์ฃผ์–ด์ง„ URI์™€ ๋Œ€์ƒ URI๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ์ €์žฅ๋œ ์‘๋‹ต์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜, ์ดํ›„ ์š”์ฒญ์— ๋Œ€ํ•ด ์ „์†ก๋˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๋Š” "๋ฌดํšจํ™”" ์ƒํƒœ๋กœ ํ‘œ์‹œํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

"๋น„์˜ค๋ฅ˜ ์‘๋‹ต(non-error response)"์€ 2xx (Successful) ๋˜๋Š” 3xx (Redirection) ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ์‘๋‹ต์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ชจ๋“  ์ ์ ˆํ•œ ์‘๋‹ต์ด ์ „์—ญ์ ์œผ๋กœ ๋ฌดํšจํ™”๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค; ์ƒํƒœ ๋ณ€๊ฒฝ ์š”์ฒญ์€ ๊ทธ๊ฒƒ์ด ํ†ต๊ณผํ•˜๋Š” ์บ์‹œ๋“ค์—์„œ๋งŒ ์‘๋‹ต์„ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค.

5. ํ•„๋“œ ์ •์˜

์ด ์ ˆ์—์„œ๋Š” ์บ์‹ฑ๊ณผ ๊ด€๋ จ๋œ HTTP ํ•„๋“œ์˜ ๊ตฌ๋ฌธ ๋ฐ ์˜๋ฏธ๋ก ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

5.1. Age

"Age" ์‘๋‹ต ํ—ค๋” ํ•„๋“œ๋Š” ์‘๋‹ต์ด ์›๋ณธ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋œ ์ดํ›„ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์†ก์‹ ์ž์˜ ์ถ”์ •์น˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Age ๊ฐ’์˜ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์€ ์„น์…˜ 4.2.3์— ๊ทœ์ •๋œ ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.

Age ํ•„๋“œ ๊ฐ’์€ ์ดˆ ๋‹จ์œ„์˜ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค(์ฐธ์กฐ: ์„น์…˜ 1.2.2).

๋น„๋ก ์ด ํ•„๋“œ๊ฐ€ ๋‹จ์ผ ํ—ค๋” ํ•„๋“œ๋กœ ์ •์˜๋˜์–ด ์žˆ์ง€๋งŒ, ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ Age ํ•„๋“œ ๊ฐ’์„ ์ ‘ํ•œ ์บ์‹œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฉค๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ดํ›„ ๋ฉค๋ฒ„๋Š” ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค(SHOULD).

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ์ถ”๊ฐ€ ๋ฉค๋ฒ„๋ฅผ ์‚ญ์ œํ•œ ํ›„์˜ ํ•„๋“œ ๊ฐ’์ด ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ(์˜ˆ: ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ), ์บ์‹œ๋Š” ํ•ด๋‹น ํ•„๋“œ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค(SHOULD).

Age ํ—ค๋” ํ•„๋“œ์˜ ์กด์žฌ๋Š” ํ•ด๋‹น ์‘๋‹ต์ด ์ด ์š”์ฒญ์— ๋Œ€ํ•ด ์›์  ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ๊ฒ€์ฆ๋œ ๊ฒƒ์ด ์•„๋‹˜์„ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Age ํ—ค๋” ํ•„๋“œ๊ฐ€ ์—†๋‹ค๊ณ  ํ•ด์„œ ์›์  ์„œ๋ฒ„์— ์—ฐ๋ฝํ•œ ์ ์ด ์—†์Œ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

5.2. Cache-Control

"Cache-Control" ํ—ค๋” ํ•„๋“œ๋Š” ์š”์ฒญ/์‘๋‹ต ์ฒด์ธ์— ์žˆ๋Š” ์บ์‹œ๋“ค์„ ์œ„ํ•œ ์ง€์‹œ์–ด๋“ค์„ ๋‚˜์—ดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์บ์‹œ ์ง€์‹œ์–ด๋Š” ๋‹จ๋ฐฉํ–ฅ์ด๋ฉฐ, ์š”์ฒญ์— ์ง€์‹œ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋™์ผํ•œ ์ง€์‹œ์–ด๊ฐ€ ์‘๋‹ต์— ์กด์žฌํ•˜๊ฑฐ๋‚˜ ๋ณต์‚ฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„น์…˜ 5.2.3์—์„œ๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ •์˜๋œ Cache-Control ์ง€์‹œ์–ด๋“ค์ด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ(์บ์‹œ๋ฅผ ๊ตฌํ˜„ํ•˜๋“  ํ•˜์ง€ ์•Š๋“  ๊ด€๊ณ„์—†์ด)๋Š” ์ „๋‹ฌ๋˜๋Š” ๋ฉ”์‹œ์ง€์—์„œ ์บ์‹œ ์ง€์‹œ์–ด๋ฅผ ๊ทธ ์œ ํšจ์„ฑ์— ๊ด€๊ณ„์—†์ด ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST), ์ด๋Š” ์ง€์‹œ์–ด๊ฐ€ ์š”์ฒญ/์‘๋‹ต ์ฒด์ธ์ƒ์˜ ๋ชจ๋“  ์ˆ˜์‹ ์ž์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์บ์‹œ์— ์ง€์‹œ์–ด๋ฅผ ๋ชฉํ‘œ๋กœ ์‚ผ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ ์ง€์‹œ์–ด๋Š” ํ† ํฐ์œผ๋กœ ์‹๋ณ„๋˜๋ฉฐ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ์„ ํƒ์  ์ธ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ˆ˜๋Š” ํ† ํฐ ๋˜๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด(quoted-string) ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ •์˜๋œ ์ธ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ์ง€์‹œ์–ด์˜ ๊ฒฝ์šฐ, ์ˆ˜์‹ ์ž๋Š” ์ƒ์„ฑ ์‹œ ํŠน์ • ํ˜•์‹์ด ์š”๊ตฌ๋˜๋”๋ผ๋„ ๋‘ ํ˜•์‹ ๋ชจ๋‘๋ฅผ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์— ์ •์˜๋œ ์บ์‹œ ์ง€์‹œ์–ด๋“ค์— ๋Œ€ํ•ด์„œ๋Š”, ๋ณ„๋„๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š๋Š” ํ•œ ์ธ์ˆ˜๊ฐ€ ์ •์˜๋˜๊ฑฐ๋‚˜ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5.2.1. ์š”์ฒญ ์ง€์‹œ์–ด

์ด ์ ˆ์—์„œ๋Š” ์บ์‹œ ์š”์ฒญ ์ง€์‹œ์–ด๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ๊ถŒ๊ณ ์ ์ด๋ฉฐ ์บ์‹œ๋Š” ์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค(MAY).

5.2.1.1. max-age

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

max-age ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง€์ •ํ•œ ์ดˆ ์ˆ˜๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์—ฐ๋ น์„ ๊ฐ€์ง„ ์‘๋‹ต์„ ์„ ํ˜ธํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. max-stale ์š”์ฒญ ์ง€์‹œ์–ด๊ฐ€ ํ•จ๊ป˜ ์—†๋Š” ํ•œ, ํด๋ผ์ด์–ธํŠธ๋Š” ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ๋ฐ›๊ณ ์ž ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ํ† ํฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์˜ˆ: 'max-age=5' ( 'max-age="5"' ์•„๋‹˜). ์†ก์‹ ์ž๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

5.2.1.2. max-stale

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

max-stale ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹ ์„ ๋„ ์ˆ˜๋ช…์„ ์ดˆ๊ณผํ•œ ์‘๋‹ต์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์‹ ์„ ๋„ ์ˆ˜๋ช…์„ ์ง€์ •๋œ ์ดˆ ์ˆ˜๋งŒํผ ์ดˆ๊ณผํ•œ ์‘๋‹ต๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚˜์ด์™€ ์ƒ๊ด€์—†์ด ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ํ† ํฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์˜ˆ: 'max-stale=10' ( 'max-stale="10"' ์•„๋‹˜). ์†ก์‹ ์ž๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

5.2.1.3. min-fresh

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

min-fresh ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜„์žฌ ์—ฐ๋ น์— ์ง€์ •๋œ ์ดˆ๋ฅผ ๋”ํ•œ ๊ฐ’๋ณด๋‹ค ์ ์ง€ ์•Š์€ ์‹ ์„ ๋„ ์ˆ˜๋ช…์„ ๊ฐ€์ง„ ์‘๋‹ต์„ ์„ ํ˜ธํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰, ํด๋ผ์ด์–ธํŠธ๋Š” ์•ž์œผ๋กœ ์ตœ์†Œํ•œ ์ง€์ •๋œ ์ดˆ ๋™์•ˆ ์‹ ์„ ํ•œ ์‘๋‹ต์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ํ† ํฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์˜ˆ: 'min-fresh=20' ( 'min-fresh="20"' ์•„๋‹˜). ์†ก์‹ ์ž๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

5.2.1.4. no-cache

no-cache ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›์  ์„œ๋ฒ„์—์„œ ์„ฑ๊ณต์ ์ธ ๊ฒ€์ฆ ์—†์ด ์ €์žฅ๋œ ์‘๋‹ต์ด ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

5.2.1.5. no-store

no-store ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ์บ์‹œ๊ฐ€ ์ด ์š”์ฒญ์ด๋‚˜ ์ด์— ๋Œ€ํ•œ ์–ด๋–ค ์‘๋‹ต์˜ ์–ด๋–ค ๋ถ€๋ถ„๋„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MUST NOT). ์ด ์ง€์‹œ์–ด๋Š” ๊ฐœ์ธ ์บ์‹œ์™€ ๊ณต์œ  ์บ์‹œ ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค"๋Š” ๊ฒƒ์€ ์บ์‹œ๊ฐ€ ์ •๋ณด๋ฅผ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ์— ์˜๋„์ ์œผ๋กœ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ์ „๋‹ฌ ํ›„ ๊ฐ€๋Šฅํ•œ ํ•œ ์‹ ์†ํ•˜๊ฒŒ ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ์—์„œ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋„๋ก ์ตœ์„ ์„ ๋‹คํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(MUST).

์ด ์ง€์‹œ์–ด๋Š” ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ์ถฉ๋ถ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ํŠนํžˆ ์•…์˜์ ์ด๊ฑฐ๋‚˜ ์†์ƒ๋œ ์บ์‹œ๋Š” ์ด ์ง€์‹œ์–ด๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ†ต์‹  ๋„คํŠธ์›Œํฌ๋Š” ๋„์ฒญ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์ด ์บ์‹œ์—์„œ ๋งŒ์กฑ๋œ ๊ฒฝ์šฐ, ๊ทธ ๋•Œ ์ด๋ฏธ ์ €์žฅ๋œ ์‘๋‹ต์—๋Š” no-store ์š”์ฒญ ์ง€์‹œ์–ด๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

5.2.1.6. no-transform

no-transform ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ค‘๊ฐœ์ž๋“ค์—๊ฒŒ ์ฝ˜ํ…์ธ  ๋ณ€ํ™˜์„ ํ”ผํ•˜๋„๋ก ์š”์ฒญํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(์ •์˜: ์„น์…˜ 7.7).

5.2.1.7. only-if-cached

only-if-cached ์š”์ฒญ ์ง€์‹œ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜ค์ง ์ €์žฅ๋œ ์‘๋‹ต๋งŒ์„ ์–ป๊ณ ์ž ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์ง€์‹œ์–ด๋ฅผ ์กด์ค‘ํ•˜๋Š” ์บ์‹œ๋Š” ์ˆ˜์‹  ์‹œ ๋‹ค๋ฅธ ์š”์ฒญ ์ œ์•ฝ๊ณผ ์ผ์น˜ํ•˜๋Š” ์ €์žฅ๋œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ 504 (Gateway Timeout) ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).

5.2.2. ์‘๋‹ต ์ง€์‹œ์–ด

์ด ์ ˆ์€ ์บ์‹œ ์‘๋‹ต ์ง€์‹œ์–ด๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์ด ์ ˆ์—์„œ ์ •์˜ํ•œ Cache-Control ์ง€์‹œ์–ด๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

5.2.2.1. max-age

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

max-age ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์‘๋‹ต์˜ ์—ฐ๋ น์ด ์ง€์ •๋œ ์ดˆ ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ํ•ด๋‹น ์‘๋‹ต์„ ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ํ† ํฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์˜ˆ: 'max-age=5' ( 'max-age="5"' ์•„๋‹˜). ์†ก์‹ ์ž๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

5.2.2.2. must-revalidate

must-revalidate ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์‘๋‹ต์ด ๋งŒ๋ฃŒ๋œ ๊ฒฝ์šฐ ์บ์‹œ๊ฐ€ ์›์ ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋  ๋•Œ๊นŒ์ง€ ๊ทธ ์‘๋‹ต์„ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์žฌ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(์ •์˜: ์„น์…˜ 4.3).

must-revalidate ์ง€์‹œ์–ด๋Š” ํŠน์ • ํ”„๋กœํ† ์ฝœ ๊ธฐ๋Šฅ์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์บ์‹œ๋Š” must-revalidate ์ง€์‹œ์–ด๋ฅผ ๋ฌด์‹œํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT); ํŠนํžˆ ์บ์‹œ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š๊ธด ๊ฒฝ์šฐ ์บ์‹œ๋Š” ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์˜ค๋ฅ˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ์ƒ์„ฑ๋  ์ƒํƒœ ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋” ์ ํ•ฉํ•˜์ง€ ์•Š๋Š” ํ•œ 504 (Gateway Timeout)๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(SHOULD).

must-revalidate ์ง€์‹œ์–ด๋Š” ๊ฒ€์ฆ ์‹คํŒจ๊ฐ€ ์ž˜๋ชป๋œ ๋™์ž‘์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ(์˜ˆ: ๊ธˆ์œต ๊ฑฐ๋ž˜๊ฐ€ ์กฐ์šฉํžˆ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)์— ํ•œํ•ด ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

must-revalidate ์ง€์‹œ์–ด๋Š” ๋˜ํ•œ ๊ณต์œ  ์บ์‹œ๊ฐ€ Authorization ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋Š” ์žฌ๊ฒ€์ฆ์— ๊ด€ํ•œ ์œ„ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ ์šฉ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค(์„น์…˜ 3.5 ์ฐธ์กฐ).

5.2.2.3. must-understand

must-understand ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ํ•ด๋‹น ์‘๋‹ต์˜ ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๊ณ  ์ค€์ˆ˜ํ•˜๋Š” ์บ์‹œ์—๋งŒ ๊ทธ ์‘๋‹ต์˜ ์บ์‹ฑ์„ ํ—ˆ์šฉํ•˜๋„๋ก ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

must-understand ์ง€์‹œ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ์‘๋‹ต์€ no-store ์ง€์‹œ์–ด๋„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD). must-understand๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์บ์‹œ๋Š” ํ•ด๋‹น ์ง€์‹œ์–ด๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต์„ ๋ฐ›์„ ๋•Œ, ๊ทธ ์ƒํƒœ ์ฝ”๋“œ์˜ ์บ์‹ฑ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด no-store ์ง€์‹œ์–ด๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค(SHOULD).

5.2.2.4. no-cache

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

no-cache ์‘๋‹ต ์ง€์‹œ์–ด์˜ ๋ฌด์ˆ˜์‹ ํ˜•ํƒœ(์ธ์ˆ˜ ์—†์ด)๋Š” ํ•ด๋‹น ์‘๋‹ต์ด ์›์  ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜์–ด ์„ฑ๊ณต์ ์ธ ๊ฒ€์ฆ์„ ๋ฐ›์ง€ ์•Š๋Š” ํ•œ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MUST NOT); ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 4.3 ์ฐธ์กฐ.

์ด๋Š” ์›์  ์„œ๋ฒ„๊ฐ€ ์บ์‹œ๋กœ ํ•˜์—ฌ๊ธˆ ์บ์‹œ์— ์ €์žฅ๋œ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์›์  ์„œ๋ฒ„์— ์—ฐ๋ฝํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๊ตฌ์„ฑ๋œ ์บ์‹œ๊ฐ€ ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ๋ณด๋‚ด๋„๋ก ๋˜์–ด ์žˆ์–ด๋„ ์ด๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•œ์ •๋œ ํ˜•ํƒœ์˜ no-cache ์ง€์‹œ์–ด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•„๋“œ ์ด๋ฆ„์„ ๋‚˜์—ดํ•˜๋ฉฐ, ์บ์‹œ๋Š” ๋‚˜์—ด๋œ ํ—ค๋” ํ•„๋“œ๋“ค์ด ํ›„์† ์‘๋‹ต์—์„œ ์ œ์™ธ๋˜์—ˆ๊ฑฐ๋‚˜ ํ›„์† ์‘๋‹ต์ด ์›์  ์„œ๋ฒ„์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์žฌ๊ฒ€์ฆ๋˜์–ด ๊ทธ ํ•„๋“œ๋“ค์ด ๊ฐฑ์‹ ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋œ ๊ฒฝ์šฐ์—๋งŒ(๋‹ค๋ฅธ ์บ์‹ฑ ์ œ์•ฝ์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ) ์‘๋‹ต์„ ์‚ฌ์šฉํ•ด ํ›„์† ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MAY). ์ด๋Š” ์›์  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์˜ ํŠน์ • ํ—ค๋” ํ•„๋“œ์˜ ์žฌ์‚ฌ์šฉ๋งŒ์„ ๋ฐฉ์ง€ํ•˜๋ฉด์„œ ๋‚˜๋จธ์ง€ ์‘๋‹ต์˜ ์บ์‹ฑ์€ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •๋œ ํ•„๋“œ ์ด๋ฆ„์€ ์ด ๋ช…์„ธ์„œ์—์„œ ์ •์˜ํ•œ ํ—ค๋” ํ•„๋“œ ์ง‘ํ•ฉ์œผ๋กœ ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„๋“œ ์ด๋ฆ„์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์†ก์‹ ์ž๋Š” ํ† ํฐ ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(SHOULD NOT), ์„ค๋ น ๋‹จ์ผ ํ•ญ๋ชฉ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ์ธ์šฉ์ด ํ•„์š” ์—†์–ด ๋ณด์ด๋”๋ผ๋„.

5.2.2.5. no-store

no-store ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์บ์‹œ๊ฐ€ ์ฆ‰์‹œ ์š”์ฒญ ๋˜๋Š” ์‘๋‹ต์˜ ์–ด๋–ค ๋ถ€๋ถ„๋„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ๋˜ํ•œ ํ•ด๋‹น ์‘๋‹ต์„ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MUST NOT).

์ด ์ง€์‹œ์–ด๋Š” ๊ฐœ์ธ ์บ์‹œ์™€ ๊ณต์œ  ์บ์‹œ ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค"๋Š” ๊ฒƒ์€ ์บ์‹œ๊ฐ€ ์ •๋ณด๋ฅผ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ์— ์˜๋„์ ์œผ๋กœ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ์ „๋‹ฌ ํ›„ ๊ฐ€๋Šฅํ•œ ํ•œ ์‹ ์†ํ•˜๊ฒŒ ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ์—์„œ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋„๋ก ์ตœ์„ ์„ ๋‹คํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(MUST).

์ด ์ง€์‹œ์–ด๋Š” ํ”„๋ผ์ด๋ฒ„์‹œ ๋ณด์žฅ์„ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ํŠนํžˆ ์•…์˜์ ์ด๊ฑฐ๋‚˜ ์†์ƒ๋œ ์บ์‹œ๋Š” ์ด๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ†ต์‹  ๋„คํŠธ์›Œํฌ๋Š” ๋„์ฒญ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

must-understand ์บ์‹œ ์ง€์‹œ์–ด๊ฐ€ ํŠน์ • ์ƒํ™ฉ์—์„œ no-store๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5.2.2.3 ์ฐธ์กฐ).

5.2.2.6. no-transform

no-transform ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์ค‘๊ฐœ์ž(์บ์‹œ ๊ตฌํ˜„ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด)๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(์ •์˜: ์„น์…˜ 7.7).

5.2.2.7. private

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

๋ฌด์ˆ˜์‹ private ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ๊ณต์œ  ์บ์‹œ๊ฐ€ ํ•ด๋‹น ์‘๋‹ต์„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MUST NOT)(์ฆ‰, ์‘๋‹ต์€ ๋‹จ์ผ ์‚ฌ์šฉ์ž์šฉ์ž…๋‹ˆ๋‹ค). ๋˜ํ•œ ๊ฐœ์ธ ์บ์‹œ๋Š” ํ•ด๋‹น ์‘๋‹ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MAY), ๋‹จ ์„น์…˜ 3์— ์ •์˜๋œ ์ œ์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ํ•ด๋‹น ์‘๋‹ต์ด ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๊ฐœ์ธ ์บ์‹œ์—์„œ ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ ์บ์‹œํ•  ์ˆ˜ ์—†์—ˆ์„ ๊ฒฝ์šฐ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ•œ์ •๋œ private ์‘๋‹ต ์ง€์‹œ์–ด๊ฐ€ ์žˆ๊ณ  ์ธ์ˆ˜๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•„๋“œ ์ด๋ฆ„์ด ๋‚˜์—ด๋œ ๊ฒฝ์šฐ, ๋‚˜์—ด๋œ ํ—ค๋” ํ•„๋“œ๋งŒ ๋‹จ์ผ ์‚ฌ์šฉ์ž๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค: ๊ณต์œ  ์บ์‹œ๋Š” ์›๋ž˜ ์‘๋‹ต์— ํ•ด๋‹น ํ•„๋“œ๋“ค์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ํ•„๋“œ๋“ค์„ ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ(MUST NOT), ๋‚˜๋จธ์ง€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ํ•ด๋‹น ํ—ค๋” ํ•„๋“œ ์—†์ด ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(MAY), ๋‹จ ์„น์…˜ 3์˜ ์ œ์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ง€์ •๋œ ํ•„๋“œ ์ด๋ฆ„์€ ์ด ๋ช…์„ธ์„œ์—์„œ ์ •์˜ํ•œ ํ—ค๋” ํ•„๋“œ ์ง‘ํ•ฉ์œผ๋กœ ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„๋“œ ์ด๋ฆ„์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์†ก์‹ ์ž๋Š” ํ† ํฐ ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(SHOULD NOT), ์„ค๋ น ๋‹จ์ผ ํ•ญ๋ชฉ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ์ธ์šฉ์ด ํ•„์š” ์—†์–ด ๋ณด์ด๋”๋ผ๋„.

5.2.2.8. proxy-revalidate

proxy-revalidate ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์‘๋‹ต์ด ๋งŒ๋ฃŒ๋œ ๊ฒฝ์šฐ ๊ณต์œ  ์บ์‹œ๊ฐ€ ์›์ ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆ๋  ๋•Œ๊นŒ์ง€ ๊ทธ ์‘๋‹ต์„ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์žฌ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MUST NOT), ์ด๋Š” must-revalidate์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ proxy-revalidate๋Š” ๊ฐœ์ธ ์บ์‹œ์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

proxy-revalidate ์ž์ฒด๋งŒ์œผ๋กœ๋Š” ์‘๋‹ต์ด ์บ์‹œ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด public ์ง€์‹œ์–ด์™€ ๊ฒฐํ•ฉ๋˜์–ด ์‘๋‹ต์„ ์บ์‹œ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉด์„œ ๊ณต์œ  ์บ์‹œ๋งŒ ๋งŒ๋ฃŒ ์‹œ ์žฌ๊ฒ€์ฆํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.2.2.9. public

public ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ์บ์‹œ๊ฐ€ ํ•ด๋‹น ์‘๋‹ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(MAY), ๋‹จ ์„น์…˜ 3์— ์ •์˜๋œ ์ œ์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, public์€ ์‘๋‹ต์„ ๋ช…์‹œ์ ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด public์€ Authorization ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๊ณต์œ  ์บ์‹œ๊ฐ€ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(์„น์…˜ 3.5).

์ด๋ฏธ ์„น์…˜ 3์— ๋”ฐ๋ผ ์บ์‹œ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์—๋Š” public ์ง€์‹œ์–ด๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

public ์ง€์‹œ์–ด๊ฐ€ ์žˆ๋Š” ์‘๋‹ต์ด ๋ช…์‹œ์  ์‹ ์„ ๋„ ์ •๋ณด๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์œผ๋ฉด ๊ทธ ์‘๋‹ต์€ ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ ์บ์‹œ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(์„น์…˜ 4.2.2).

5.2.2.10. s-maxage

์ธ์ˆ˜ ๋ฌธ๋ฒ•:

s-maxage ์‘๋‹ต ์ง€์‹œ์–ด๋Š” ๊ณต์œ  ์บ์‹œ์— ๋Œ€ํ•ด ์ด ์ง€์‹œ์–ด๋กœ ์ง€์ •๋œ ์ตœ๋Œ€ ์—ฐ๋ น์ด max-age ์ง€์‹œ์–ด๋‚˜ Expires ํ—ค๋” ํ•„๋“œ์— ์˜ํ•ด ์ง€์ •๋œ ์ตœ๋Œ€ ์—ฐ๋ น์„ ๋ฌด์‹œํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

s-maxage ์ง€์‹œ์–ด๋Š” ๊ณต์œ  ์บ์‹œ์— ๋Œ€ํ•ด proxy-revalidate ์‘๋‹ต ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.8)์˜ ์˜๋ฏธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ์บ์‹œ๋Š” s-maxage๊ฐ€ ์žˆ๋Š” ๋งŒ๋ฃŒ๋œ ์‘๋‹ต์„ ์›์ ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ฆํ•  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์žฌ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT)(์ •์˜: ์„น์…˜ 4.3). ์ด ์ง€์‹œ์–ด๋Š” ๋˜ํ•œ ๊ณต์œ  ์บ์‹œ๊ฐ€ Authorization ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋˜, ์ตœ๋Œ€ ์—ฐ๋ น ๋ฐ ์žฌ๊ฒ€์ฆ์— ๊ด€ํ•œ ์œ„ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ ์šฉ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค(์„น์…˜ 3.5).

์ด ์ง€์‹œ์–ด๋Š” ์ธ์ˆ˜์— ํ† ํฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์˜ˆ: 's-maxage=10' ( 's-maxage="10"' ์•„๋‹˜). ์†ก์‹ ์ž๋Š” ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT).

5.2.3. ํ™•์žฅ ์ง€์‹œ์–ด

Cache-Control ํ—ค๋” ํ•„๋“œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ™•์žฅ ์บ์‹œ ์ง€์‹œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ์บ์‹œ ์ง€์‹œ์–ด๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

์ •๋ณด์„ฑ ํ™•์žฅ(์บ์‹œ ๋™์ž‘์˜ ๋ณ€๊ฒฝ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ)์€ ๋‹ค๋ฅธ ์ง€์‹œ์–ด์˜ ์˜๋ฏธ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ž‘์  ํ™•์žฅ์€ ๊ธฐ์กด ์บ์‹œ ์ง€์‹œ์–ด์˜ ์ˆ˜์ •์„ ํ†ตํ•ด ๋™์ž‘ํ•˜๋„๋ก ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ง€์‹œ์–ด์™€ ๊ธฐ์กด ์ง€์‹œ์–ด๊ฐ€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์–ด, ์ƒˆ๋กœ์šด ์ง€์‹œ์–ด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ์กด ์ง€์‹œ์–ด์— ๋ช…์‹œ๋œ ๋™์ž‘์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ์ง€์‹œ์–ด๋ฅผ ์ดํ•ดํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ทธ๊ฒƒ์ด ๊ธฐ์กด ์ง€์‹œ์–ด์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์ •ํ•œ๋‹ค๊ณ  ์ธ์‹ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐํฌ๋œ ์บ์‹œ๋ฅผ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ๊ธฐ์กด ์บ์‹œ ์ง€์‹œ์–ด์— ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, hypotheticalํ•œ ์ƒˆ๋กœ์šด ์‘๋‹ต ์ง€์‹œ์–ด "community"๊ฐ€ private ์ง€์‹œ์–ด๋ฅผ ์ˆ˜์ •ํ•˜๋„๋ก ๋™์ž‘ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค: private ์บ์‹œ ์™ธ์—๋„ ๋ช…๋ช…๋œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›๋“ค์ด ๊ณต์œ ํ•˜๋Š” ์บ์‹œ๋งŒ ์‘๋‹ต์„ ์บ์‹œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›์  ์„œ๋ฒ„๊ฐ€ ํŠน์ • ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด private์ธ ์‘๋‹ต์„ ์ž์‹ ์˜ ๊ณต์œ  ์บ์‹œ์— ํ—ˆ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Cache-Control: private, community="UCI"

community ์บ์‹œ ์ง€์‹œ์–ด๋ฅผ ์ธ์‹ํ•˜๋Š” ์บ์‹œ๋Š” ํ•ด๋‹น ํ™•์žฅ์— ๋”ฐ๋ผ ๋™์ž‘์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ์บ์‹œ๋Š” ์ด๋ฅผ ๋ฌด์‹œํ•˜๊ณ  private ์ง€์‹œ์–ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ƒˆ ํ™•์žฅ ์ง€์‹œ์–ด๋Š” ๋‹ค์Œ ์‚ฌํ•ญ๋“ค์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ์ง€์‹œ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •๋˜์—ˆ์„ ๋•Œ ๊ทธ๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”,
  • ์ง€์‹œ์–ด๊ฐ€ ์ธ์ˆ˜๋ฅผ ์ทจํ•˜์ง€ ์•Š์„ ๋•Œ ์ธ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”,
  • ์ง€์‹œ์–ด๊ฐ€ ์ธ์ˆ˜๋ฅผ ์š”๊ตฌํ•  ๋•Œ ์ธ์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ๊ทธ๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”, ๋ฐ
  • ์ง€์‹œ์–ด๊ฐ€ ์š”์ฒญ ์ „์šฉ์ธ์ง€ ์‘๋‹ต ์ „์šฉ์ธ์ง€ ๋˜๋Š” ์–ด๋А ์ชฝ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€.

5.2.4. ์บ์‹œ ์ง€์‹œ์–ด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

"Hypertext Transfer Protocol (HTTP) Cache Directive Registry"๋Š” ์บ์‹œ ์ง€์‹œ์–ด์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๋‹ค์Œ์—์„œ ์ƒ์„ฑ๋˜์–ด ํ˜„์žฌ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: https://www.iana.org/assignments/http-cache-directives.

๋“ฑ๋ก์—๋Š” ๋‹ค์Œ ํ•„๋“œ๋“ค์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST):

  • Cache Directive Name
  • Pointer to specification text

์ด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ถ”๊ฐ€ํ•  ๊ฐ’์€ IETF ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ: [RFC8126], ์„น์…˜ 4.8).

5.3. Expires

"Expires" ์‘๋‹ต ํ—ค๋” ํ•„๋“œ๋Š” ์‘๋‹ต์ด ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์ดํ›„์˜ ๋‚ ์งœ/์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ ์„ ๋„ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋…ผ์˜๋Š” ์„น์…˜ 4.2๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Expires ํ—ค๋” ํ•„๋“œ์˜ ์กด์žฌ๋Š” ์›๋ž˜ ์ž์›์ด ํ•ด๋‹น ์‹œ์ ์— ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š๊ฒŒ ๋  ๊ฒƒ์ž„์„ ์•”์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Expires ํ•„๋“œ ๊ฐ’์€ HTTP-date ํƒ€์ž„์Šคํƒฌํ”„์ž…๋‹ˆ๋‹ค(์ •์˜: ์„น์…˜ 5.6.7). ์บ์‹œ์— ํŠนํ™”๋œ ๊ตฌ๋ฌธ ๋ถ„์„ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋˜ํ•œ ์„น์…˜ 4.2๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ:

Expires: Thu, 01 Dec 1994 16:00:00 GMT

์บ์‹œ ์ˆ˜์‹ ์ž๋Š” ํŠนํžˆ ๊ฐ’ "0"์„ ํฌํ•จํ•œ ์ž˜๋ชป๋œ ๋‚ ์งœ ํ˜•์‹์„ ๊ณผ๊ฑฐ์˜ ์‹œ๊ฐ„(์ฆ‰, ์ด๋ฏธ ๋งŒ๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ)์œผ๋กœ ํ•ด์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST).

์‘๋‹ต์— Cache-Control ํ—ค๋” ํ•„๋“œ๊ฐ€ ์žˆ๊ณ  ๊ทธ ์•ˆ์— max-age ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.1)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด, ์ˆ˜์‹ ์ž๋Š” Expires ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‘๋‹ต์— s-maxage ์ง€์‹œ์–ด(์„น์…˜ 5.2.2.10)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด, ๊ณต์œ  ์บ์‹œ ์ˆ˜์‹ ์ž๋Š” Expires ํ—ค๋” ํ•„๋“œ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(MUST). ์ด ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ Expires์˜ ๊ฐ’์€ Cache-Control ํ—ค๋” ํ•„๋“œ๋ฅผ ์•„์ง ๊ตฌํ˜„ํ•˜์ง€ ์•Š์€ ์ˆ˜์‹ ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹œ๊ณ„๊ฐ€ ์—†๋Š” ์›์  ์„œ๋ฒ„๋Š”(์ •์˜: ์„น์…˜ 5.6.7) Expires ํ—ค๋” ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(MUST NOT), ๋‹จ ๊ทธ ๊ฐ’์ด ๊ณผ๊ฑฐ์˜ ๊ณ ์ • ์‹œ๊ฐ„(ํ•ญ์ƒ ๋งŒ๋ฃŒ๋จ)์„ ๋‚˜ํƒ€๋‚ด๊ฑฐ๋‚˜ ๊ทธ ๊ฐ’์ด ์‹œ๊ณ„๋ฅผ ๊ฐ€์ง„ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ž์›๊ณผ ์—ฐ๊ด€๋˜์—ˆ์„ ๋•Œ๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

์—ญ์‚ฌ์ ์œผ๋กœ HTTP๋Š” Expires ํ•„๋“œ ๊ฐ’์ด ๋ฏธ๋ž˜๋กœ ์ตœ๋Œ€ 1๋…„์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก ์š”๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ๊ธด ์‹ ์„ ๋„ ์ˆ˜๋ช…์ด ๋” ์ด์ƒ ๊ธˆ์ง€๋˜์ง€๋Š” ์•Š์ง€๋งŒ, ๋งค์šฐ ํฐ ๊ฐ’์€ ๋ฌธ์ œ(์˜ˆ: ์‹œ๊ฐ„ ๊ฐ’์— ๋Œ€ํ•ด 32๋น„ํŠธ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ๊ณ„ ์˜ค๋ฒ„ํ”Œ๋กœ)๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ์ž…์ฆ๋˜์—ˆ๊ณ , ๋งŽ์€ ์บ์‹œ๋Š” ํ›จ์”ฌ ๋” ๋นจ๋ฆฌ ์‘๋‹ต์„ ์ถ•์ถœํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

5.4. Pragma

"Pragma" ์š”์ฒญ ํ—ค๋” ํ•„๋“œ๋Š” HTTP/1.0 ์บ์‹œ๋ฅผ ์œ„ํ•ด ์ •์˜๋˜์—ˆ์œผ๋ฉฐ, ๋‹น์‹œ์—๋Š” Cache-Control์ด HTTP/1.1๊นŒ์ง€ ์ •์˜๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ "no-cache" ์š”์ฒญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ๋Š” Cache-Control์˜ ์ง€์›์ด ๋„๋ฆฌ ํผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด ๋ช…์„ธ์„œ๋Š” Pragma๋ฅผ ์‚ฌ์šฉ ์ค‘๋‹จ(deprecate)ํ•ฉ๋‹ˆ๋‹ค.

5.5. Warning

"Warning" ํ—ค๋” ํ•„๋“œ๋Š” ์ƒํƒœ ์ฝ”๋“œ์— ๋ฐ˜์˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€์˜ ์ƒํƒœ ๋˜๋Š” ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…์„ธ์„œ๋Š” Warning์„ ๋„๋ฆฌ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ์ง€ํ•ฉ๋‹ˆ๋‹ค. Warning์ด ์ „๋‹ฌํ•˜๋˜ ์ •๋ณด๋Š” Age์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ—ค๋” ํ•„๋“œ๋ฅผ ๊ฒ€์‚ฌํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋‹ค๋ฅธ ์บ์‹œ์™€์˜ ๊ด€๊ณ„

HTTP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ข…์ข… ์ถ”๊ฐ€์ ์ธ ํ˜•ํƒœ์˜ ์บ์‹ฑ์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์„ธ์…˜ ์ค‘ ์ด์ „์— ๊ฐ€์ ธ์˜จ ํ‘œํ˜„์„ ๋‹ค์‹œ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "๋’ค๋กœ" ๋ฒ„ํŠผ๊ณผ ๊ฐ™์€ ํžˆ์Šคํ† ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ผ๋ถ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํŽ˜์ด์ง€ ๋ทฐ ๋‚ด์—์„œ ์ด๋ฏธ์ง€ ๋ฐ ๊ธฐํƒ€ ์ž์‚ฐ์„ ์บ์‹œํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๋Š”๋ฐ, ์ด๋“ค์€ HTTP ์บ์‹ฑ ์˜๋ฏธ๋ก ์„ ์ค€์ˆ˜ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ช…์„ธ์„œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋ฐ˜๋“œ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด HTTP ์บ์‹œ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ดํ›„์— ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ์ ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํžˆ์Šคํ† ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋งŒ๋ฃŒ๋œ ์ด์ „ ํ‘œํ˜„์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹ ์„ ๋„ ์ˆ˜๋ช…์ด ์ง€๋‚œ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ช…์„ธ์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด HTTP ์บ์‹ฑ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํžˆ์Šคํ† ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ณด๊ธฐ(View)๊ฐ€ ์˜ค๋ž˜๋˜์—ˆ์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฌ๊ฑฐ๋‚˜ ์บ์‹œ ์ง€์‹œ์–ด(e.g., Cache-Control: no-store)๋ฅผ ์กด์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…ํ™•ํžˆ ์•Œ๋ฆฌ๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค ๊ฒฝ์šฐ, ์บ์‹ฑ ์˜๋ฏธ๋ก ์ด ์กด์ค‘๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜๋Š” ์ž‘์„ฑ์ž๋“ค์„ ๋†€๋ผ๊ฒŒ ํ•˜์ง€ ์•Š๋„๋ก HTTP ์บ์‹œ ์ง€์‹œ์–ด์™€ ๊ด€๋ จํ•˜์—ฌ ๊ทธ ๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Cache-Control: no-store๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต์„ ๋™์ผํ•œ ํŽ˜์ด์ง€ ๋กœ๋“œ ์ค‘์— ์ƒ์„ฑ๋œ ์š”์ฒญ๊ณผ ๊ฐ™์ด ๊ทธ ์‘๋‹ต์„ ๊ฐ€์ ธ์˜จ ์š”์ฒญ๊ณผ ์ง์ ‘ ๊ด€๋ จ๋œ ์š”์ฒญ์— ํ•œํ•ด ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” "HTTP ์œ„์˜" ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์บ์‹œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ „ํ˜€ ๊ด€๋ จ์ด ์—†๋Š” ๋‹ค๋ฅธ ์š”์ฒญ์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•œ๋‹ค๋ฉด ์‚ฌ์šฉ์ž์™€ ์ž‘์„ฑ์ž์—๊ฒŒ ๋†€๋ž๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

7. ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

์ด ์ ˆ์€ ๊ฐœ๋ฐœ์ž, ์ •๋ณด ์ œ๊ณต์ž ๋ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ HTTP ์บ์‹ฑ๊ณผ ๊ด€๋ จ๋œ ์•Œ๋ ค์ง„ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ์€ "HTTP/1.1"(Section 11 of [HTTP/1.1]) ๋ฐ "HTTP Semantics"(Section 17 of [HTTP])์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์บ์‹œ๋Š” ์บ์‹œ์˜ ๋‚ด์šฉ์ด ์•…์˜์ ์ธ ์ฐฉ์ทจ์— ๋งค๋ ฅ์ ์ธ ํ‘œ์ ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฒฉ ํ‘œ๋ฉด์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ ๋‚ด์šฉ์€ HTTP ์š”์ฒญ์ด ์™„๋ฃŒ๋œ ํ›„์—๋„ ์ง€์†๋˜๋ฏ€๋กœ, ์บ์‹œ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์ •๋ณด๊ฐ€ ๋„คํŠธ์›Œํฌ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ดํ›„์—๋„ ์ •๋ณด๋ฅผ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์บ์‹œ ๋‚ด์šฉ์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋กœ์„œ ๋ณดํ˜ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ ๊ฐœ์ธ ์บ์‹œ๋Š” ๋‹จ์ผ ์‚ฌ์šฉ์ž๋กœ ์ œํ•œ๋˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก(์˜ˆ: ์ผ๋ถ€ ๋˜๋Š” ๋ชจ๋“  ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์— ๋Œ€ํ•ด ์ €์žฅ๋œ ์‘๋‹ต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋„๋ก) ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

7.1. ์บ์‹œ ์ค‘๋…

์บ์‹œ์— ์•…์˜์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋„๋ก ๋ฒ”์œ„๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ "์บ์‹œ ์ค‘๋…" ๊ณต๊ฒฉ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ตฌํ˜„ ๊ฒฐํ•จ, ๊ถŒํ•œ ์ƒ์Šน ๋˜๋Š” ๋‹ค๋ฅธ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ์บ์‹œ์— ์‚ฝ์ž…ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ์บ์‹œ๊ฐ€ ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•…์˜์  ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ๋•Œ ํŠนํžˆ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

์บ์‹œ ์ค‘๋…์˜ ์ผ๋ฐ˜์ ์ธ ๊ณต๊ฒฉ ๋ฒกํ„ฐ ์ค‘ ํ•˜๋‚˜๋Š” ํ”„๋ก์‹œ์™€ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ์—์„œ์˜ ๋ฉ”์‹œ์ง€ ๊ตฌ๋ฌธ ๋ถ„์„ ์ฐจ์ด๋ฅผ ์•…์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค; ๊ด€๋ จ ์š”๊ตฌ์‚ฌํ•ญ์€ HTTP/1.1์— ๊ด€ํ•œ Section 6.3๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

7.2. ํƒ€์ด๋ฐ ๊ณต๊ฒฉ

์บ์‹œ์˜ ์ฃผ์š” ์‚ฌ์šฉ ๋ชฉ์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ์„ฑ๋Šฅ ์ตœ์ ํ™”์ด๊ธฐ ๋•Œ๋ฌธ์—, ์บ์‹œ ์‚ฌ์šฉ์€ ์ด์ „์— ์–ด๋–ค ๋ฆฌ์†Œ์Šค๊ฐ€ ์š”์ฒญ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ "์œ ์ถœ"์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ทธ ์‘๋‹ต๋“ค์„ ์บ์‹œํ•˜๊ณ  ๋‚˜์„œ ๋‘ ๋ฒˆ์งธ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ, ๊ทธ ๋‘ ๋ฒˆ์งธ ์‚ฌ์ดํŠธ๋Š” ์ฒซ ๋ฒˆ์งธ ์‚ฌ์ดํŠธ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ์•Œ๋ฉด์„œ ์‘๋‹ต์„ ๋กœ๋“œํ•˜๋ ค ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‘๋‹ต์ด ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์‚ฌ์ดํŠธ ๋˜๋Š” ํŠน์ • ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•œ ๊ฒƒ์œผ๋กœ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ "ํƒ€์ด๋ฐ ๊ณต๊ฒฉ"์€ ์บ์‹œ ํ‚ค์— ์ฐธ์กฐ ์‚ฌ์ดํŠธ์˜ ์ •์ฒด์„ฑ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด). ์ด๋ฅผ ๋•Œ๋•Œ๋กœ "์ด์ค‘ ํ‚คํ™”(double keying)"๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

7.3. ๋ฏผ๊ฐํ•œ ์ •๋ณด์˜ ์บ์‹ฑ

๊ตฌํ˜„ ๋ฐ ๋ฐฐํฌ์ƒ์˜ ๊ฒฐํ•จ(์ข…์ข… ์บ์‹œ ๋™์ž‘์˜ ์˜คํ•ด์—์„œ ๋น„๋กฏ๋จ)์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด(์˜ˆ: ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…)์˜ ์บ์‹ฑ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์›๋ž˜ ๋น„๊ณต๊ฐœ๋กœ ๊ฐ„์ฃผ๋˜๋˜ ์ •๋ณด๋ฅผ ๋ฌด๋‹จ ๋‹น์‚ฌ์ž์—๊ฒŒ ๋…ธ์ถœ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Set-Cookie ์‘๋‹ต ํ—ค๋” ํ•„๋“œ([COOKIE])๊ฐ€ ์บ์‹ฑ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค; Set-Cookie๋ฅผ ๊ฐ€์ง„ ์บ์‹œ ๊ฐ€๋Šฅ ์‘๋‹ต์€ ์ดํ›„์˜ ์š”์ฒญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‘๋‹ต์˜ ์บ์‹ฑ์„ ์ œ์–ดํ•˜๋ ค๋Š” ์„œ๋ฒ„๋Š” ์ ์ ˆํ•œ Cache-Control ์‘๋‹ต ํ—ค๋” ํ•„๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

8. IANA ๊ณ ๋ ค์‚ฌํ•ญ

๋‹ค์Œ ๋“ฑ๋ก์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ์ž๋Š” "IETF (iesg@ietf.org) - Internet Engineering Task Force"์ž…๋‹ˆ๋‹ค.

8.1. ํ•„๋“œ ์ด๋ฆ„ ๋“ฑ๋ก

IANA๋Š” "Hypertext Transfer Protocol (HTTP) Field Name Registry"๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฉฐ, ์ด๋Š” Section 18.4 of [HTTP]์— ์„ค๋ช…๋œ ๋Œ€๋กœ์ด๋ฉฐ, ์•„๋ž˜ ํ‘œ์— ๋‚˜์—ด๋œ ํ•„๋“œ ์ด๋ฆ„๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

Table 1
ํ•„๋“œ ์ด๋ฆ„ ์ƒํƒœ ์„น์…˜ ๋น„๊ณ 
Age permanent 5.1
Cache-Control permanent 5.2
Expires permanent 5.3
Pragma deprecated 5.4
Warning obsoleted 5.5

8.2. ์บ์‹œ ์ง€์‹œ์–ด ๋“ฑ๋ก

IANA๋Š” "Hypertext Transfer Protocol (HTTP) Cache Directive Registry"๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ์„น์…˜ 5.2.4์— ๋”ฐ๋ฅธ ๋“ฑ๋ก ์ ˆ์ฐจ์™€ ์•„๋ž˜ ํ‘œ์— ์š”์•ฝ๋œ ์บ์‹œ ์ง€์‹œ์–ด ์ด๋ฆ„๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Table 2
์บ์‹œ ์ง€์‹œ์–ด ์„น์…˜
max-age 5.2.1.1, 5.2.2.1
max-stale 5.2.1.2
min-fresh 5.2.1.3
must-revalidate 5.2.2.2
must-understand 5.2.2.3
no-cache 5.2.1.4, 5.2.2.4
no-store 5.2.1.5, 5.2.2.5
no-transform 5.2.1.6, 5.2.2.6
only-if-cached 5.2.1.7
private 5.2.2.7
proxy-revalidate 5.2.2.8
public 5.2.2.9
s-maxage 5.2.2.10

8.3. Warn ์ฝ”๋“œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

IANA๋Š” "Hypertext Transfer Protocol (HTTP) Warn Codes" ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋‹ค์Œ ์ฃผ์„์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฉฐ, Warning์ด ํ์ง€๋˜์—ˆ๋‹ค๊ณ  ๋ช…์‹œํ–ˆ์Šต๋‹ˆ๋‹ค:

The Warning header field (and the warn codes that it uses) has been obsoleted for HTTP per [RFC9111].

9. ์ฐธ๊ณ ๋ฌธํ—Œ

9.1. ๊ทœ๋ฒ”์  ์ฐธ๊ณ ๋ฌธํ—Œ

[HTTP]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., โ€œHTTP Semanticsโ€, STD 97, RFC 9110, DOI 10.17487/RFC9110, June 2022.
[RFC2119]
Bradner, S., โ€œKey words for use in RFCs to Indicate Requirement Levelsโ€, BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.
[RFC5234]
Crocker, D., Ed. and P. Overell, โ€œAugmented BNF for Syntax Specifications: ABNFโ€, STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008, <https://www.rfc-editor.org/info/rfc5234>.
[RFC7405]
Kyzivat, P., โ€œCase-Sensitive String Support in ABNFโ€, RFC 7405, DOI 10.17487/RFC7405, December 2014, <https://www.rfc-editor.org/info/rfc7405>.
[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>.

9.2. ์ •๋ณด์„ฑ ์ฐธ๊ณ ๋ฌธํ—Œ

Barth, A., โ€œHTTP State Management Mechanismโ€, RFC 6265, DOI 10.17487/RFC6265, April 2011, <https://www.rfc-editor.org/info/rfc6265>.
[HTTP/1.1]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., โ€œHTTP/1.1โ€, STD 99, RFC 9112, DOI 10.17487/RFC9112, June 2022.
[RFC2616]
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, โ€œHypertext Transfer Protocol -- HTTP/1.1โ€, RFC 2616, DOI 10.17487/RFC2616, June 1999, <https://www.rfc-editor.org/info/rfc2616>.
[RFC5861]
Nottingham, M., โ€œHTTP Cache-Control Extensions for Stale Contentโ€, RFC 5861, DOI 10.17487/RFC5861, May 2010, <https://www.rfc-editor.org/info/rfc5861>.
[RFC7234]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., โ€œHypertext Transfer Protocol (HTTP/1.1): Cachingโ€, RFC 7234, DOI 10.17487/RFC7234, June 2014, <https://www.rfc-editor.org/info/rfc7234>.
[RFC8126]
Cotton, M., Leiba, B., and T. Narten, โ€œGuidelines for Writing an IANA Considerations Section in RFCsโ€, BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, <https://www.rfc-editor.org/info/rfc8126>.

๋ถ€๋ก A. ์ˆ˜์ง‘๋œ ABNF

์•„๋ž˜์— ์ˆ˜์ง‘๋œ ABNF์—์„œ, ๋ชฉ๋ก ๊ทœ์น™์€ Section 5.6.1 of HTTP์— ๋”ฐ๋ผ ํ™•์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Age = delta-seconds

Cache-Control = [ cache-directive *( OWS "," OWS cache-directive ) ]

Expires = HTTP-date

HTTP-date = <HTTP-date, see [HTTP], Section 5.6.7>

OWS = <OWS, see [HTTP], Section 5.6.3>

cache-directive = token [ "=" ( token / quoted-string ) ]

delta-seconds = 1*DIGIT

field-name = <field-name, see [HTTP], Section 5.1>

quoted-string = <quoted-string, see [HTTP], Section 5.6.4>

token = <token, see [HTTP], Section 5.6.2>

๋ถ€๋ก B. RFC 7234๋กœ๋ถ€ํ„ฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ์ƒ์ถฉํ•˜๋Š” ์บ์‹œ ์ง€์‹œ์–ด์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋ช…ํ™•ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. (Section 4.2.1)

Location ๋ฐ Content-Location ํ—ค๋” ํ•„๋“œ์— ์žˆ๋Š” URI๋“ค์˜ ์บ์‹œ ๋ฌดํšจํ™”๋Š” ๋” ์ด์ƒ ํ•„์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. (Section 4.4)

Location ๋ฐ Content-Location ํ—ค๋” ํ•„๋“œ์— ์žˆ๋Š” URI๋“ค์˜ ์บ์‹œ ๋ฌดํšจํ™”๋Š” ์›์ (origin)์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค; ์ด์ „์—๋Š” ํ˜ธ์ŠคํŠธ(host) ๊ธฐ๋ฐ˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. (Section 4.4)

์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Age ํ—ค๋” ํ•„๋“œ ๊ฐ’ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋ช…ํ™•ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. (Section 5.1)

์ด ๋ช…์„ธ์„œ์—์„œ ์ •์˜ํ•œ ์ผ๋ถ€ ์บ์‹œ ์ง€์‹œ์–ด๋Š” ๊ฐ’์˜ ์ธ์šฉํ˜•(quoted form)์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋” ๊ฐ•ํ•œ ๊ธˆ์ง€๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์ด๋Š” ์ƒํ˜ธ์šด์šฉ์„ฑ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ™•์žฅ ์บ์‹œ ์ง€์‹œ์–ด์˜ ์†Œ๋น„์ž๋Š” ๋” ์ด์ƒ ํ† ํฐ๊ณผ ์ธ์šฉ ๋ฌธ์ž์—ด ํ˜•์‹์˜ ๋‘˜ ๋‹ค๋ฅผ ์ˆ˜์šฉํ•ด์•ผ ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ, ์•Œ๋ ค์ง€์ง€ ์•Š์€ ํ™•์žฅ์˜ ๊ฒฝ์šฐ์—๋„ ์ ์ ˆํžˆ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ํ•„์š”๋Š” ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค. (Section 5.2)

public ๋ฐ private ์บ์‹œ ์ง€์‹œ์–ด๊ฐ€ ๋ช…ํ™•ํ•ด์ ธ์„œ, ์ด๋“ค์ด ์–ด๋–ค ์กฐ๊ฑด์—์„œ๋„ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š์Œ์„ ๋ถ„๋ช…ํžˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. (Section 5.2.2)

must-understand ์บ์‹œ ์ง€์‹œ์–ด๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค; ์ด ์ง€์‹œ์–ด๊ฐ€ ์—†์œผ๋ฉด ์บ์‹œ๋Š” ์ƒˆ ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•  ์˜๋ฌด๊ฐ€ ๋” ์ด์ƒ ์—†์Šต๋‹ˆ๋‹ค. (Section 5.2.2.3)

Warning ์‘๋‹ต ํ—ค๋”๊ฐ€ ํ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Warning์ด ์ง€์›ํ•˜๋˜ ์ •๋ณด์˜ ๋Œ€๋ถ€๋ถ„์€ ์‘๋‹ต์„ ๊ฒ€์‚ฌํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๊ณ , ๋‚จ์€ ์ •๋ณด๋Š” ์ „์ ์œผ๋กœ ๊ณ ์ง€์ (advisory)์ด์—ˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ์บ์‹œ๋‚˜ ์ค‘๊ฐœ์ž์— ์˜ํ•ด ๋„๋ฆฌ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (Section 5.5)

๊ฐ์‚ฌ์˜ ๊ธ€

Appendix "Acknowledgements" of HTTP๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒ‰์ธ

A C E F G H M N O P R S V W

์ €์ž ์—ฐ๋ฝ์ฒ˜

Roy T. Fielding (editor)
Adobe
345 Park Ave
San Jose, CA 95110
United States of America
Email: fielding@gbiv.com
URI: https://roy.gbiv.com/
Mark Nottingham (editor)
Fastly
Prahran
Australia
Email: mnot@mnot.net
URI: https://www.mnot.net/
Julian Reschke (editor)
greenbytes GmbH
Hafenweg 16
48155 Mรผnster
Germany
Email: julian.reschke@greenbytes.de
URI: https://greenbytes.de/tech/webdav/