cache-control HTTP ํค๋ ํ๋๋ ํด๋ผ์ด์ธํธ(์: ๋ธ๋ผ์ฐ์ ) ๋ฐ ๊ณต์ ์บ์(์: ํ๋ก์, CDN)์์ ํน์ ๋ฆฌ์์ค์ ๋ํด ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค.
๋ถ์ธ ์ฑ๋ช ํ๊ตญ์ด ์ค๋ ฅ์ด ๋ถ์ ํ์ฌ ์ด ๊ธ์ด ๊ตฌ๊ธ ๋ฒ์ญ๊ธฐ๋ฅผ ์ฃผ๋ก ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ถ์ ํํ ๋ฌธ๋ฒ๊ณผ ์ดํ๊ฐ ์์์ ์์ต๋๋ค. ์ด ์ ์ํด ๋ถํ๋๋ฆฌ๋ฉฐ, ์ถํ์ ๋ค์ ๊ฒํ ํ์ฌ ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โ โ
[์น ๋ธ๋ผ์ฐ์ ] [๊ณต์ ํ ์บ์] [์ต์ฒ ํ ์๋ฒ]ํต์ฌ๋ก
์บ์ ์ง์๋ฌธ์ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ง์์ด๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ง๋ง ์ผ๋ถ ๊ตฌํ์์๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์ฌ๋ฌ ์ง์๋ฌธ์ ์ผํ๋ฅผ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. (์:
cache-control: private, max-age=180) - ์ง์๋ฌธ์ ์ ํ์ ์ธ์๋
max-age=180๊ณผ ๊ฐ์ด ๋ฑํธ๋ก ๊ตฌ๋ถ๋์ด์ผ ํฉ๋๋ค.
์ง์๋ฌธ
์ง์๋ฌธ์ cache-control ํค๋์ ์
๋ ฅํ ์ ์๋ ์ ํจํ ๊ฐ์
๋๋ค.
max-age
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
max-age max-age์๋ต์ max-age=N์ ์๋ต์ด ์๋ฒ์์ ์์ฑ๋ ํ(ํด๋ผ์ด์ธํธ์์ ์์ ๋์ง ์์) Age ํค๋๋ ๋์ผํ ๋ฆฌ์์ค์ ๋ํ ํ์ ์์ฒญ์ ์ํด ๋ธ๋ผ์ฐ์ ์ ํฌํจ๋ฉ๋๋ค.
Cache-Control: max-age=604800
Age: 888s-maxage
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
s-maxages-maxage๋ ๊ณต์ ์บ์์์ ์ ํจ์ฑ/์ต์ ์ฑ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ์ธ ์บ์์์๋ ๋ฌด์๋๋ฉฐ ๊ณต์ ์บ์์ ์ง์ ๋ ๊ฒฝ์ฐ max-age ๋ฐ Expires ํค๋๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
Cache-Control: s-maxage=604800no-store
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โno-store ์ง์์ด๊ฐ ํฌํจ๋ ์๋ต์ ๋ธ๋ผ์ฐ์ ์ ๊ณต์ ์บ์๋ฅผ ํฌํจํ ์ด๋ ๊ณณ์๋ ์ ์ฅํ ์ ์์ต๋๋ค. ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ป์ผ๋ ค๋ฉด ๋์ผํ ์์ฑ์ ๋ํ ์์ฒญ์ด ์๋ฒ์ ๋๋ฌํด์ผ ํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ์ฆ ํ ํฐ๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด์ ์ฌ์ฉ๋ฉ๋๋ค.
no-cache
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โ
์ฌ๊ฒ์ฆ ์ฌ๊ฒ์ฆ์ด ์ง์์ด๋ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์บ์์์ ๊ฒ์ํ ํ ์ฆ์ ์ฌ์ฉํด์๋ ์ ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฌ์ฉํ๊ธฐ ์ ์ ๋จผ์ ์๋ฒ์์ ์ ํจ์ฑ์ ๋ค์ ๊ฒ์ฆํด์ผ ํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์บ์๋ ๋ฆฌ์์ค์ E-Tag๋ฅผ ์๋ฒ์ E-Tag์ ๋น๊ตํ์ฌ ์ํ๋ฉ๋๋ค.
must-revalidate
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โ
์ฌ๊ฒ์ฆ ์ฌ๊ฒ์ฆmust-revalidate๋ ์๋ต์ด ์บ์์ ์ ์ฅ๋์ด ํ์ ์์ฒญ์ ์ฌ์ฌ์ฉ๋ ์ ์์์ ๋ํ๋
๋๋ค. ๊ทธ๋ฌ๋ ์๋ต์ด ์ค๋๋๋ฉด ์ฌ์ฉํ๊ธฐ ์ ์ ์๋ณธ ์๋ฒ์์ ์ ํจ์ฑ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก max-age์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
Cache-Control: max-age=604800, must-revalidateproxy-revalidate
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ
์ฌ๊ฒ์ฆmust-revalidate์ ๋์ผํ ๋์์ด์ง๋ง ๊ณต์ ์บ์์๋ง ์ ์ฉ๋ฉ๋๋ค. ๊ฐ์ธ๋ธ๋ผ์ฐ์ ์บ์๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
private
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โprivate ์๋ต ์ง์๋ฌธ์ ์๋ต์ด ํด๋ผ์ด์ธํธ์ ๋ก์ปฌ ์บ์์๋ง ์ ์ฅ๋ ์ ์๊ณ ๊ณต๊ฐ์ ์ผ๋ก ๊ณต์ ๋๋ ์บ์์๋ ์ ์ฅ๋ ์ ์์์ ๋ํ๋
๋๋ค.
Cache-Control: privatepublic
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โpublic ์๋ต ์ง์๋ฌธ์ ์๋ต์ด ๋ก์ปฌ ์บ์์ ๊ณต์ ์บ์ ๋ชจ๋์ ์ ์ฅ๋ ์ ์์์ ๋ํ๋
๋๋ค.
Cache-Control: publicno-transform
ํด๋ผ์ด์ธํธ <------ CDN <------ ์๋ฒ
โ โ
์ฒ๋ฆฌ ๋ฐ ๋ณํ ์ฒ๋ฆฌ ๋ฐ ๋ณํ์ด ์ง์๋ฌธ์ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ๊ณผ ๊ฐ์ ์ค๊ฐ์์ ์ํ ๋ณ๊ฒฝ์ด๋ ๋ณํ ์์ด ๋ฆฌ์์ค๊ฐ ์๋ ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ์ ์ ๊ณต๋์ด์ผ ํจ์ ๋ํ๋ ๋๋ค.