2021.05.03 - [BASIC] - 01. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํฐ๋ท ๋คํธ์ํฌ
2021.05.03 - [BASIC] - 02. HTTP ์น ๊ธฐ๋ณธ ์ง์ - URI
2021.05.03 - [BASIC] - 03. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ๋ชจ๋ ๊ฒ์ด HTTP
2021.05.03 - [BASIC] - 04. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP API
2021.05.04 - [BASIC] - 05. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก
2021.05.04 - [BASIC] - 06. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP ์ํ์ฝ๋ ์๊ฐ
2021.05.06 - [BASIC] - 07. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP ํค๋ ๊ฐ์
์บ์์ ์กฐ๊ฑด๋ถ ์์ฒญ
์บ์๊ฐ ์์ ๋ - ์ฒซ ๋ฒ์งธ ์์ฒญ์ด๋ ์ฌ๋ฌ๋ฒ ์์ฒญ์ด๋ ๊ฐ์ ์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์๋ตํ๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๋ค -> ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์๋ต์ ๋ณด๋ธ๋ค.
๋ฌธ์ ์
๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ์์ด๋ ๊ณ์ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ค์ด ๋ฐ์์ผ ํ๋ค. -> ์ธํฐ๋ท ๋คํธ์ํฌ๋ ๋งค์ฐ ๋๋ฆฌ๊ณ ๋น์ธ๋ค.
๋ธ๋ผ์ฐ์ ๋ก๋ฉ ์๋๊ฐ ๋๋ ค์ง๋ฉด์ ๋๋ฆฐ ์ฌ์ฉ์ ๊ฒฝํ์ด ์๊ฒจ๋๋ค.
์บ์ ์ ์ฉ - ์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ๊ณ cache-control: max-age=60 ๋ฅผ header์ ๋ฃ๊ณ ์์ฒญ ๋ฆฌ์์ค์ ๊ฐ์ด ์๋ตํด์ค๋ค. ์๋ต์ ๋ฐ์ ํด๋ผ์ธํธ๋ ์๋ต๋ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ธ๋ผ์ฐ์ ์บ์์ ์ ์ฅํ๋ค (์ด๋ ๋ฆฌ์์ค๋ ์๋ฒ๊ฐ max-age๋ก ์ง์ ํ ์๊ฐ๋งํผ ์ ํจํ๊ฒ ๋๋ค)
๋๋ฒ ์งธ ์์ฒญ ํ ๋ ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ๋จผ์ ํ์ธ ํ ์บ์๊ฐ ์ ํจํ ๊ฒฝ์ฐ ๋ฐ๋ก ํด๋น ๋ฆฌ์์ค๋ฅผ ๋ฐ์ ์ ์๋ค (์บ์ ๊ฐ๋ฅ ์๊ฐ๋์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค)
์บ์ ์๊ฐ์ด ์ด๊ณผํ ์ ์๋ฒ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์กฐํํ๊ณ ๊ฐฑ์ ํ๋ค! == ๋ค์ ๋คํธ์ํฌ ๋ค์ด๋ก๋๊ฐ ๋ฐ์ํ๋ค.
์บ์ ์ ํจ ์๊ฐ์ด ์ด๊ณผํด์ ๋ค์ ์์ฒญํ ์
1. ์๋ฒ์์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ค.
2. ์๋ฒ์์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์์๋ค.
2๋ฒ์ ๋ดค์ ๋ ์ฌ ์์ฒญ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ฐ๋๊ฒ์ด ๋นํจ์จ์ ์ด๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฒ์ฆ ํค๋๊ฐ ์ถ๊ฐ๋์๋ค.
๊ฒ์ฆ ํค๋
์บ์ ๋ฐ์ดํฐ์ ์๋ฒ ๋ฐ์ดํฐ๊ฐ ๊ฐ์์ง ๊ฒ์ฆํ๋ ๋ฐ์ดํฐ
if-Modified-Since , Last-modified : Last-Modified ๊ฐ ์ฌ์ฉ
์ฒซ ๋ฒ์งธ ์์ฒญ -> ์๋ฒ์์ Last-Modified ๋ฅผ header์ ์ถ๊ฐ ํด์ค๋ค. ( ํ์ผ์ ๋ง์ง๋ง ์์ ์ผ )
-> ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ธ๋ผ์ฐ์ ์บ์์ ๋ฐ์ดํฐ ์ต์ข ์์ ์ผ์ ๊ธฐ๋กํ๋ค.
๋ ๋ฒ์งธ ์์ฒญ -> ๋ธ๋ผ์ฐ์ ์บ์์ ์ ํจ ์๊ฐ์ด ์ง๋์ ๋ค์ ์์ฒญ์ ํ๊ฒ ๋๋ค
-> ์ด ๋ ๋ถ๋ผ์ฐ์ ๊ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์ดํฐ ์ต์ข ์์ ์ผ์ ํ์ธํ์ฌ ์์ฒญ์ header์ if-modified-since : (๋ ์ง) ๋ฅผ ํฌํจํด์ ์์ฒญํ๋ค.
-> ์๋ฒ์์ ์ต์ข ์์ ์ผ์ ํ์ธํด์ ์ฌ์ ๋ก๋ ํ ์ง ๊ทธ๋๋ก ์จ์ผ ํ ์ง ํ๋จํ๋ค - ์์ ์ด ์์์ 304 Not Modified + ํค๋ ๋ฉํ ์ ๋ณด๋ง ์๋ต (body๋ฅผ ๋น์์) -> ํด๋ผ์ด์ธํธ๋ ์ํ์ฝ๋๋ฅผ ํ์ธํ๊ณ ๋ธ๋ผ์ฐ์ ์บ์์์ ๊บผ๋ด์ ์ด๋ค
* ์์ ์ด ์์ ์ ์์ฒญ์ ๋ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ต
์บ์ ์ ํจ ์๊ฐ์ด ์ด๊ณผํด๋, ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๊ฐฑ์ ๋์ง ์์ผ๋ฉด ์๋ฒ๊ฐ ๋ณด๋ธ ์๋ต ํค๋ ์ ๋ณด๋ก ํด๋ผ์ด์ธํธ๋ ์บ์์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌํ์ฉํ๋ค.
๋คํธ์ํฌ ๋ค์ด๋ก๋๊ฐ ๋ฐ์ํ์ง๋ง ์ฉ๋์ด ์ ์ ํค๋ ์ ๋ณด๋ง์ ๋ฐ๊ฒ ๋๋ค!
์กฐ๊ฑด๋ถ ์์ฒญ ํค๋
๊ฒ์ฆ ํค๋๋ก ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ถ๊ธฐ
if-Modified-Since : Last-modified ์ ๋จ์
- 1์ด ๋ฏธ๋ง ๋จ์๋ก ์บ์ ์กฐ์ ์ด ๋ถ๊ฐ๋ฅ
- ๋ ์ง ๊ธฐ๋ฐ์ ๋ก์ง ์ฌ์ฉ
- ๋ฐ์ดํฐ ์์ ํด์ ๋ ์ง๊ฐ ๋ค๋ฅด์ง๋ง, ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํด์ ๋ฐ์ดํฐ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ์ ๊ฒฝ์ฐ์๋ ์ฌ์ ๋ก๋
- ์๋ฒ์์ ๋ณ๋์ ์บ์ ๋ก์ง์ ๊ด๋ฆฌํ์ง ๋ชปํจ ์) ์คํ์ด์ค๋ ์ฃผ์์ฒ๋ผ ์ํฅ์ด ์๋ ๋ณ๊ฒฝ์์ ์บ์๋ฅผ ์ ์งํ๊ณ ์ถ์ ๊ฒฝ์ฐ
if-None-Match, if-Match : ETag(Entity Tag) ๊ฐ ์ฌ์ฉ
์บ์์ฉ ๋ฐ์ดํฐ์ ์์์ ๊ณ ์ ํ ๋ฒ์ ์ด๋ฆ์ ๋ฌ์๋
๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด ์ด๋ฆ์ ๋ฐ๊พธ์ด์ ๋ณ๊ฒฝํจ (Hash๋ฅผ ๋ค์ ์์ฑ)
--> ์ง์ง ๋จ์ํ๊ฒ ETag๋ง ๋ณด๋ด์ ๊ฐ์ผ๋ฉด ์ ์ง, ๋ค๋ฅด๋ฉด ๋ค์ ๋ฐ๊ธฐ
--> ์บ์ ์ ์ด ๋ก์ง์ ์๋ฒ์์ ์์ ํ ๊ด๋ฆฌํ ์ ์๋ค.
--> ํด๋ผ์ด์ธํธ์์๋ ์บ์ ๋ฉ์ปค๋์ฆ์ ๋ชจ๋ฅธ๋ค.
์) ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์ฃผ๊ธฐ์ ๋ง์ถ์ด ETag๋ฅผ ๋ชจ๋ ๊ฐฑ์ ํ๋ค.
์บ์ ์ ์ด ํค๋
Cache-Control : ์บ์ ์ง์์ด(directives)
max-age : ์บ์ ์ ํจ ์๊ฐ, ์ด ๋จ์
no-cashe : ๋ฐ์ดํฐ๋ ์บ์ํด๋ ๋์ง๋ง, ํญ์ ์(origin) ์๋ฒ์ ๊ฒ์ฆํ๊ณ ์ฌ์ฉ
no-store : ๋ฐ์ดํฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ์ ์ฅํ๋ฉด ์๋จ - ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ์ฉํ๊ณ ์ต๋ํ ๋นจ๋ฆฌ ์ญ์
Cache-Contro- ๊ธฐํ
Cache-Control :public -> ์๋ต์ด public ์บ์์ ์ ์ฅ๋์ด๋ ๋จ
Cashe-Control:private -> ์๋ต์ด ํด๋น ์ฌ์ฉ์๋ง์ ์ํ ๊ฒ, private ์บ์์ ์ ์ฅํด์ผ ํจ
Cashe-Cotrol: s-maxage -> ํ๋ก์ ์บ์์๋ง ์ ์ฉ๋๋ max-age
Age: 60 -> Httml ํค๋, ์ค๋ฆฌ์ง ์๋ฒ์์ ์๋ต ํ ํ๋ก์ ์บ์ ๋ด์ ๋จธ๋ฌธ ์๊ฐ(ํธ)
Pragma: ์บ์ ์ ์ด(ํ์ ํธํ)
HTTP1.0ํ์ ํธํ
Expires : ์บ์ ๋ง๋ฃ์ผ ์ง์ (ํ์ ํธํ)
์บ์ ๋ง๋ฃ์ผ์ ์ ํํ ๋ ์ง๋ก ์ง์
์ง๊ธ์ Cashe-Control: max-age ๊ถ์ฅํ๋ค. -> ์ด๊ฒ ์ฌ์ฉ๋๋ฉด Expires๋ ๋ฌด์
ํ๋ก์ ์บ์
์ ์๋ฒ ์ง์ ์ ๊ทผ(origin ์๋ฒ)
์ฒซ ๋ฒ์งธ ์์ฒญ
์บ์ ๋ฌดํจํ
์บ์๋ฅผ ์ ์ฉ ์ํด๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์์๋ก ์บ์๋ฅผ ์ ์ฅํด๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์คํ ์บ์ ๋ฌดํจํ๋ฅผ ํด์ผํ๋ค
Cache-Control: no-cashe, no-store, must-reavalidate
Pragma: no-cahse(HTTP1.0 ํํ ํธํ)
'๐ป Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
02. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ - ๋คํ์ฑ๊ณผ ์ถ์ํ (0) | 2021.05.10 |
---|---|
01. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ - ๊ฐ์ฒด์ ์บก์ํ (0) | 2021.05.07 |
07. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP ํค๋ ๊ฐ์ (0) | 2021.05.06 |
06. HTTP ์น ๊ธฐ๋ณธ ์ง์ - HTTP ์ํ์ฝ๋ ์๊ฐ (0) | 2021.05.04 |
05. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก (0) | 2021.05.04 |