ETag ์บ์ฑ ์ ๋ต ๊ฐ์ด๋ ์ฌ์ฉ๋ฒ
์์ฒญ ์์ ๋ณธ๋ฌธ ํฌ๊ธฐ, 304 ์๋ต ํฌ๊ธฐ, ๋ณ๊ฒฝ ์์ด ๋๋๋ ๋น์จ์ ๋ฃ์ผ๋ฉด ์กฐ๊ฑด๋ถ ์์ฒญ์ผ๋ก ์ค์ด๋๋ ์ ์ก๋์ด ๋์ต๋๋ค. ETag ๊ฐ๊ณผ ์ข ๋ฅ๋ฅผ ๊ณ ๋ฅด๋ฉด 200 ์๋ต์์ If-None-Match ๋ฅผ ๊ฑฐ์ณ 304 ๋ก ๋๋๋ ํ๋ฆ์ ๊ทธ๋๋ก ๋ถ์ฌ ์ธ ์ ์๊ฒ ๋ณด์ฌ ์ค๋๋ค.
๊ณ์ฐ ๋ฐฉ์๊ณผ ๊ทผ๊ฑฐ
์ ์ก๋์ 304 ๊ฑด์์ 304 ์๋ต ํฌ๊ธฐ๋ฅผ, ๋๋จธ์ง์ ๋ณธ๋ฌธ ํฌ๊ธฐ๋ฅผ ๊ณฑํด ๋ํ ๊ฐ์ ๋๋ค. ํ๋ฆ๊ณผ strongยทweak ๋น๊ต ๊ท์น์ HTTP ์กฐ๊ฑด๋ถ ์์ฒญ ๊ท๊ฒฉ(RFC 9110)์ ๋ฐ๋์ต๋๋ค(2026๋ 10์ ํ์ธ). 304 ์๋ต ํฌ๊ธฐ๋ ์๋ฒ ํค๋ ๊ตฌ์ฑ๋ง๋ค ๋ฌ๋ผ ๊ณต์ธ๋ ๊ธฐ๋ณธ๊ฐ์ด ์์ด ์ง์ ๋ฃ์ต๋๋ค.
ํ๊ณ์ ์ฃผ์์ฌํญ
๋ณธ๋ฌธ ๋ฐ์ดํธ๋ง ์ ์ ๋ฃ๊ณ TLSยทTCP ๋ถ๊ฐ ๋น์ฉ์ ๋ค๋ฃจ์ง ์์ต๋๋ค. ์ ์ค๋ฅ ์ ์์ธกํ์ง ์๊ณ ์ ๋ ฅํ ๋น์จ์ ๊ทธ๋๋ก ์๋๋ค. ETag ๊ฐ์ ์ค์ ๋ก ๋ง๋ค์ด ์ฃผ์ง๋ ์์ผ๋ฉฐ, max-age ๊ฐ์ ์ง์์ ์กฐ๋ฆฝ์ Cache-Control ์์ฑ๊ธฐ ์ชฝ ๋๊ตฌ๊ฐ ๋งก์ต๋๋ค. 304 ๊ฐ ๋์์๋ ์๋ณต์ ๊ทธ๋๋ก ์ผ์ด๋๋ค๋ ์ ์ ํจ๊ป ๋ณด์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Last-Modified ๋ ์ด ๋จ์๋ผ ๊ฐ์ ์ด์ ๋ ๋ฒ ๋ฐ๋๋ฉด ๋ณ๊ฒฝ์ ๋์นฉ๋๋ค. ๋ด์ฉ ํด์๋ก ๋ง๋๋ ETag ๊ฐ ๋ ์ ํํ๊ณ , ๋์ ํจ๊ป ๋ณด๋ด๋ ๋ฉ๋๋ค.
์์ถ ๋ฐฉ์๋ง ๋ฐ๋๋ ๋ฑ ๋ฐ์ดํธ๋ ๋ฌ๋ผ๋ ๋ด์ฉ์ด ๊ฐ๋ค๊ณ ๋ณผ ๋ ์๋๋ค. ๋ค๋ง weak ๋ Range ์กฐ๊ฑด๋ถ ์์ฒญ์ ์ธ ์ ์์ต๋๋ค.
์ค์ง ์์ต๋๋ค. ์๋ณต์ ๊ทธ๋๋ก ์ผ์ด๋๊ณ ๋ณธ๋ฌธ๋ง ๋น ์ง๋๋ค. ์์ฒญ ์์ฒด๋ฅผ ์ค์ด๋ ค๋ฉด max-age ๋ก ์ ์ ๊ธฐ๊ฐ์ ์ฃผ์ด์ผ ํฉ๋๋ค.