2022.07.13(Wed)
[TIL] Day56
[SEB FE] Day55
์ด์ ์ผ ์ฌ๋ฆฌ๋ ์์ TIL,, ๋คํธ์ํฌ ๋ ์ด๋ ค์์ ๋จธ๋ฆฌ์ ์ ๋ค์ด์จ๋ค ๐ฅฒ
โฐย ํ์ ๊ตํ ๋ฐฉ์
: ๋ฐ์ ์์ ์์ ์ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์ฉ์ ์ ๋ฏธ๋ฆฌ ํ ๋นํ๊ณ ์ฐ๊ฒฐ
- ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ์๋๊ฐ ๋ค๋ฅธ ์๋์ ์ฐ๊ฒฐ ์ค์ด๋ผ๋ฉด, ํด๋น ์ฐ๊ฒฐ์ด ๋์ด์ ธ์ผ ์๋๋ฐฉ๊ณผ ์ฐ๊ฒฐ ๊ฐ๋ฅ โญ๏ธ
- ํน์ ํ์ ์ด ๋์ด์ง๋ ๊ฒฝ์ฐ์ ์ฒ์๋ถํฐ ์ฌ์ฐ๊ฒฐ ํ์
๐ ๋จ์ : ์ฆ์์ฑ ๋จ์ด์ง
โฐย ํจํท๊ตํ ๋ฐฉ์
:ํจํท
๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์๊ฒ ๋๋์ด ์ ์กํ๋ ๋ฐฉ์
- ๊ฐ ํจํท์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ ๋ณด๊ฐ ์๊ณ , ํจํท์ด ๋ชฉ์ ์ง๋ฅผ ํฅํด ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ์ด๋ ๊ฐ๋ฅ
- ํน์ ํ์ ์ด ์ ์ฉ์ ์ผ๋ก ํ ๋น๋์ง ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ โญ๏ธ
๐ย
IP
(์ธํฐ๋ท ํ๋กํ ์ฝ): ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ ๋ณด๋ฅผIP์ฃผ์
๋ก ํ๊ธฐํ๊ณ , ์ง์ ํ IP์ฃผ์์ํจํท(packet)
๋จ์๋ก ๋ฐ์ดํฐ ์ ์ก
โฐยIP ํจํท
: ์ ์ก ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ฌํ ์ ์กํ๊ธฐ ์ํด์ถ๋ฐ์ง IP
,๋ชฉ์ ์ง IP
์ ๊ฐ์ ์ ๋ณด ํฌํจ
๐ฅฒย IP ํ๋กํ ์ฝ ํ๊ณ
โ ๋น์ฐ๊ฒฐ์ฑ
โ ๋น์ ๋ขฐ์ฑ
โฐย Network Socket
: ํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ ์ ์๋๋ก, ๋คํธ์ํฌ ํ๊ฒฝ์ ์ฐ๊ฒฐํ ์ ์๊ฒ ๋ง๋ค์ด์ง ์ฐ๊ฒฐ๋ถ
โฐย TCP/IP ์ธ๊ทธ๋จผํธ
: IP ํจํท์ ์ถ๋ฐ์ง IP์ ๋ชฉ์ ์ง IP ์ ๋ณด๋ฅผ ๋ณด์ํ ์ ์๋ ์ถ๋ฐ์ง PORT
, ๋ชฉ์ ์ง PORT
, ์ ์ก ์ ์ด
, ์์
, ๊ฒ์ฆ ์ ๋ณด
๋ฑ ํฌํจ
โฐย TCP(Transmission Control Protocol): ์ ์ก ์ ์ด ํ๋กํ ์ฝ
: ์ฅ์น๋ค ์ฌ์ด์ ๋ ผ๋ฆฌ์ ์ธ ์ ์์ ์ฑ๋ฆฝํ๊ธฐ ์ํ์ฌ3way handshake
๋ฅผ ์ฌ์ฉํ๋ ์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ
- ์ฐ๊ฒฐ ์งํฅ (
TCP 3way handshake
; ๊ฐ์ ์ฐ๊ฒฐ)- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
- ์์ ๋ณด์ฅ
- ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ
โฐย TCP 3 way handshake
SYN ํจํท
์ ๋ณด๋ACK
& SYN
๊ฐ ์ค์ ๋ ํจํท ๋ฐ์กACK
์ผ๋ก ์๋ตํ๊ธฐ๋ฅผ waitACK
์ ๋ณด๋ด๋ฉด, ์ด ์ดํ๋ก๋ถํฐ ์ฐ๊ฒฐ ์ฑ๋ฆฝSYN
์ ๋ณด๋ด๊ณ , ์๋ฒ์์ ์๋ต์ด ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ ์ ์ก โ)SYN
(Synchronize), ACK
(Acknowledgment)โย TCP
๋ ๋ฐ์ดํฐ ์ ์ก์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค๋ฉด ์๋ต์ ๋๋ ค์ฃผ๊ธฐ ๋๋ฌธ์ IPํจํท ํ๊ณ์ธ ๋น์ฐ๊ฒฐ์ฑ ๋ณด์ ๊ฐ๋ฅ!
โย IF ํจํท์ด ์์๋๋ก ๋์ฐฉํ์ง ์๋๋ค๋ฉด, TCP ์ธ๊ทธ๋จผํธ ์ ๋ณด๋ฅผ ํ ๋๋ก ํจํท ์ฌ์ ์ก ์์ฒญ ๊ฐ๋ฅ โ IPํจํท ํ๊ณ์ธ ๋น์ ๋ขฐ์ฑ ๋ณด์ ๊ฐ๋ฅ
โฐย UDP(User Datagram Protocol): ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ
:IP ํ๋กํ ์ฝ
+PORT
,์ฒดํฌ์ฌ ํ๋
์ ๋ณด๋ง ์ถ๊ฐ๋ ๋จ์ํ ํ๋กํ ์ฝ
- ๋น ์ฐ๊ฒฐ์งํฅ (
TCP 3way handshake
โ)- ๊ธฐ๋ฅ ๊ฑฐ์ ์์
- ์ ๋ขฐ์ฑ โฌ๏ธ
- ๋จ์ํ๋ฉฐ, ๋น ๋ฅธ ์๋ ๋ณด์ฅ (๐คทโโ๏ธย why?
3 way handshake
๋ฐฉ์ โ)- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ โ
- ์์ ๋ณด์ฅ โ
- ์ฐ์์ฑ์ด ์ค์ํ ์๋น์ค์ ์์ฃผ ์ฌ์ฉ
โ HTTP3
: UDP ์ฌ์ฉ โย ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ ๐
โ CheckSum
: ์ค๋ณต ๊ฒ์ฌ์ ํํ๋ก, ์ค๋ฅ ์ ์ ์ ํตํด ๊ณต๊ฐ์ด๋ ์๊ฐ ์์์ ์ก์ ๋ ์๋ฃ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ๋ ๋จ์ํ ๋ฐฉ๋ฒ
TCP | UDP | |
---|---|---|
์ฐ๊ฒฐ์งํฅ ์ฌ๋ถ | ์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ | ๋น์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ |
์ ์ก ์์ ๋ณด์ฅ | โญ๏ธ | โ |
๋ฐ์ดํฐ ์์ ์ฌ๋ถ ํ์ธ | โญ๏ธ | โ |
์ ๋ขฐ์ฑ & ์๋ | ์ ๋ขฐ์ฑ โฌ๏ธ, ์๋ โฌ๏ธ | ์ ๋ขฐ์ฑ โฌ๏ธ, ์๋ โฌ๏ธ |
ํ๋ง๋๋ก..? | ์ข์ ๊ธฐ๋ฅ ๋ค ๋ค์ด์๋ ๋ฌด๊ฑฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ํ์ ๊ธฐ๋ฅ๋ง ๋ค์ด์๋ ๊ฐ๋ฒผ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
OSI 7๊ณ์ธต | TCP/IP 4๊ณ์ธต | |
---|---|---|
์์ฉ(Application Layer) ex. HTTP, DNS, SSL, SMTP, FIP | - ์ฌ์ฉ์์์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ณ์ธต - ์ฌ์ฉ์๊ฐ ์คํํ๋ ์์ฉ ํ๋ก๊ทธ๋จ | ์ ํ๋ฆฌ์ผ์ด์ |
ํํ(Presentation Layer) ex. GIF, JPEG, MPEG, MIME, ZIP, ASCLL | - ์์ฉ ๊ณ์ธต์ผ๋ก ์ ๋ฌํ๊ฑฐ๋ ์ ๋ฌ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ธ์ฝ๋ฉ ๋๋ ๋์ฝ๋ฉํ๋ ๊ณ์ธต - ๋ฒ์ญ๊ธฐ ์ญํ ์ํ ex. ๋ฌธ์์ฝ๋, ์์ถ, ์ํธํ ๋ฑ์ ๋ฐ์ดํฐ ๋ณํ | ์ ํ๋ฆฌ์ผ์ด์ |
์ธ์
(Session Layer) ex. RPC, SQL, NETBOIS, Sockets | - ์ธ์
์ฐ๊ฒฐ ์ค์ &ํด์ , ์ธ์
๋ฉ์์ง ์ ์ก ๊ธฐ๋ฅ ์ํ ๊ณ์ธต - ์ปดํจํฐ๊ฐ์ ํต์ ๋ฐฉ์์ ๋ํด ๊ฒฐ์ ํ๋ ๊ณ์ธต | ์ ํ๋ฆฌ์ผ์ด์ |
์ ์ก(Transport Layer) ex. TCP, UDP, NETBEUI | - ์ปดํจํฐ๊ฐ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ณ์ธต - ํด๋น ๋ฐ์ดํฐ๋ค์ด ์ค์ ๋ก ์ ์์ ์ผ๋ก ๋ณด๋ด์ง๋์ง ํ์ธํ๋ ์ญํ ex. TCP/UDP ์ฐ๊ฒฐ | ์ ์ก |
๋คํธ์ํฌ(Network Layer) ex. IP, ICMP | - ๋คํธ์ํฌ ๊ฐ์ ๋ฐ์ดํฐ ๋ผ์ฐํ
๋ด๋น โ ๋ผ์ฐํ : ์ด๋ค ๋คํธ์ํฌ ์์์ ํต์ ๋ฐ์ดํฐ๋ฅผ ์ง์ฌ์ง ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ต๋ํ ๋น ๋ฅด๊ฒ ๋ณด๋ผ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ๊ณผ์ ex. IP ํจํท ์ ์ก | ์ธํฐ๋ท |
๋ฐ์ดํฐ ๋งํฌ(Data Link Layer) ex. FDDI, Ethernet, PPP | - ๋คํธ์ํฌ ๊ธฐ๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ๋ฌผ๋ฆฌ์ฃผ์ ๊ฒฐ์ ๊ณ์ธต - ๋ฌผ๋ฆฌ ๊ณ์ธต์์ ๋ค์ด์จ ์ ๊ธฐ ์ ํธ๋ฅผ ๋ชจ์ ๋ฐ์ดํฐ ํํ๋ก ์ฒ๋ฆฌ ex. ๋ธ๋ฆฌ์ง, ์ค์์น, MAC ์ฃผ์ | ๋คํธ์ํฌ ์ธํฐํ์ด์ค |
๋ฌผ๋ฆฌ(Physical Layer) ex. CDMA, GSM, NICs, CSMA/CD, Fiber | - ์์คํ
๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ๊ณผ ์ ๊ธฐ ์ ํธ๋ฅผ ๋ณํ ๋ฐ ์ ์ดํ๋ ๊ณ์ธต - ์ฃผ๋ก ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ๊ณผ ๊ด๋ จ๋ ์ ๋ณด ์ ์ - ๋ค์ด์จ ์ ๊ธฐ ์ ํธ๋ฅผ ๊ทธ๋๋ก ์ ์ ๋ฌํ๋ ๊ฒ์ด ๋ชฉ์ ex. ๋์งํธ/์๋ ๋ก๊ทธ๋ก ์ ํธ ๋ณ๊ฒฝ | ๋คํธ์ํฌ ์ธํฐํ์ด์ค |
Header
: ๋ฐ์ดํฐ๋ฅผ ์๋๋ฐฉ์๊ฒ ๋ณด๋ผ ๋ ๊ฐ ๊ณ์ธต์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ๋ฐ์ดํฐ
๐ย ์ฆ, ์ด๋ ๊ฒ ํค๋๋ฅผ ๋ถ์ฌ๋๊ฐ๋ ๊ฒ โ์บก์ํ
โฐย ๋ฐ์ดํฐ ์บก์ํ
- ๊ฐ ๊ณ์ธต์ ๋ ๋ฆฝ์ โ ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๋ ๋์์ ๋ค๋ฅธ ๊ณ์ธต ์ํฅ โ
- ๋ฐ์ดํฐ ์ ์ก์ธก: ์์ โ ํ์ ๊ณ์ธต์ผ๋ก ๋ฐ์ดํฐ ์ ๋ฌ
โฐย ์ญ์บก์ํ: ์์ ๊ณ์ธต์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉฐ, ๊ฐ ๊ณ์ธต์์ ํค๋๋ฅผ ์ ๊ฑฐํด ๋๊ฐ๋ ๊ฒ
: ์ค์ฉ์ฑ์ ๊ธฐ๋ฐ์ ๋ ํ๋์ ์ธํฐ๋ท ํ์ค
4๏ธโฃย ๊ณ์ธต | ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต | - TCP/UDP๊ธฐ๋ฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ๋ ์ฌ์ฉ ex. FTP, HTTP, SSH |
---|---|---|
3๏ธโฃย ๊ณ์ธต | ์ ์ก ๊ณ์ธต | - ํต์ ๋
ธ๋๊ฐ์ ์ฐ๊ฒฐ์ ์ ์ดํ๊ณ , ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ด๋น ex. TCP/UDP |
2๏ธโฃย ๊ณ์ธต | ์ธํฐ๋ท ๊ณ์ธต | - ํต์ ๋
ธ๋ ๊ฐ์ IP ํจํท์ ์ ์กํ๋ ๊ธฐ๋ฅ ๋ฐ ๋ผ์ฐํ
๋ด๋น ex. IP, ARP, RARP |
1๏ธโฃย ๊ณ์ธต | ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต | - ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์๋ก MAC ์ฌ์ฉ ex. LAN, ํจํท๋ง |
โฐย
Client
: ์๋น์ค ์์ฒญ์ธก
โฐยServer
: ์๋น์ค ์ ๊ณต์ธก
HTTP/1.1
,HTTP/2
๐ยTCP
๊ธฐ๋ฐ ํ๋กํ ์ฝ
HTTP/3
๐ยUDP
๊ธฐ๋ฐ ํ๋กํ ์ฝ
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
๋ฌด์ํ ํ๋กํ ์ฝ (Stateless)
โฐย Stateful
vs Stateless
Stateful
(์ํ์ ์ง)Stateless
(๋ฌด์ํ)๋น์ฐ๊ฒฐ์ฑ (Connectionless)
โฐย
Connection Oriented
(์ฐ๊ฒฐ ์ ์ง ๋ชจ๋ธ)
: TCP/IP์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ ์ฐ๊ฒฐ ์ ์ง โญ๏ธ
โ ์๋ฒ ์์ ๊ณ์ ์๋ชจ
โฐยConnectionless
(์ฐ๊ฒฐ์ ์์งํ์ง ์๋ ๋ชจ๋ธ - ๋น์ฐ๊ฒฐ์ฑ)
: HTTP์์ ์ค์ ๋ก ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋๋ง ์ฐ๊ฒฐ ์ ์งํ๊ณ , ์๋ต์ ์ฃผ๊ณ ๋๋ฉด TCP/IP ์ฐ๊ฒฐ ๋์
โ ์๋ฒ ์ฐ๊ฒฐ ์ ์ง โ, ์ต์ํ์ ์์ ์ฌ์ฉ
โฐย ๋น์ฐ๊ฒฐ์ฑ ํ๊ณ ๊ทน๋ณต
3way handshake
์๊ฐ ์ถ๊ฐ)HTTP/2
, HTTP/3
์์ ๋ ๋ง์ ์ต์ ํHTTP ๋ฉ์ธ์ง
๋จ์ํ๋ฉฐ, ํ์ฅ ๊ฐ๋ฅ
โ HTTP ๋ฉ์์ง
- Header
& Body
๋ก ๊ตฌ๋ถ
โฐย
HTTP Body
: ๋ฐ์ดํฐ ๋ฉ์์ง ๋ณธ๋ฌธ(Message body)์ ํตํด์ ํํ ๋ฐ์ดํฐ ์ ๋ฌ
โPayload
: Message body
โํํ(Representation)
: ์์ฒญ์ด๋ ์๋ต์์ ์ ๋ฌํ ์ค์ ๋ฐ์ดํฐ
โํํ ํค๋
: ํํ ๋ฐ์ดํฐ๋ฅผ ํด์ํ ์ ์๋ ์ ๋ณด ์ ๊ณต
โฐย
HTTP Header
: HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด๋ฅผ ๋ด๊ธฐ ์ํด ์ฌ์ฉ
โ Header ํ์
<field-name>: <field-value>
โยfield-name
์ ๋์๋ฌธ์ ๊ตฌ๋ถ โ
โฐย ํํ ํค๋
Content-Type
: ํํ ๋ฐ์ดํฐ ํ์Text/html; charset-utf-8
application/json
Content-Encoding
: ํํ ๋ฐ์ดํฐ ์์ถ ๋ฐฉ์Content-Language
: ํํ ๋ฐ์ดํฐ์ ์์ฐ ์ธ์ดen
, en-US
Content-Length
: ํํ ๋ฐ์ดํฐ ๊ธธ์ดTransfer-Encoding
(์ ์ก์ ์ด๋ค ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ ์ฌ์ฉํ ๊ฒ์ธ์ง)์ ํจ๊ป ์ฌ์ฉ โย โย ํํ ํค๋๋ ์์ฒญ, ์๋ต ๋ ๋ค ์ฌ์ฉ
โฐย ์์ฒญ(Request)์์ ์ฌ์ฉ๋๋ ํค๋
From
: User Agent์ email ์ ๋ณด
Referer
: ์ด์ ์น ํ์ด์ง ์ฃผ์ (์ ์
๊ฒฝ๋ก ์์ง ๊ฐ๋ฅ)
User-Agent
: User Agent Application ์ ๋ณด
Host
: ์์ฒญํ Host ์ ๋ณด (Domain)
Origin
: ์๋ฒ๋ก POST ์์ฒญ์ ๋ณด๋ผ ๋, ์์ฒญ์ ์์ํ ์ฃผ์
โย ์์ฒญ ๋ณด๋ธ ์ฃผ์ & ๋ฐ๋ ์ฃผ์๊ฐ ๋ค๋ฅด๋ฉด CORS error
๋ฐ์
Authorization
: ์ธ์ฆ ํ ํฐ์ ์๋ฒ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ ํค๋
ํ ํฐ ์ข
๋ฅ + ์ค์ ํ ํฐ ๋ฌธ์
์ ์กโฐย ์๋ต(Response)์์ ์ฌ์ฉ๋๋ ํค๋
Server
: ์์ฒญ์ ์ฒ๋ฆฌํ๋ ORIGIN ์๋ฒ์ SW ์ ๋ณดDate
: ๋ฉ์์ง ๋ฐ์ ๋ ์ง&์๊ฐLocation
: Page Redirection201
(created): Location ๊ฐ์ ์์ฒญ์ ์ํด ์์ฑ๋ Resource URI3xx
(Redirection): Location ๊ฐ์ ์์ฒญ์ ์๋์ผ๋ก ๋ฆฌ๋๋ ์
ํ๊ธฐ ์ํ ๋์ ๋ฆฌ์์คAllow
: ํ์ฉ ๊ฐ๋ฅํ HTTP ๋ฉ์๋405
(Method Not Allowed)์์ ์๋ต์ ํฌํจRetry-After
: User Agent๊ฐ ๋ค์ ์์ฒญ์ ํ๊ธฐ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ์๊ฐ503
(Service Unavailable): ์๋น์ค๊ฐ ์ธ์ ๊น์ง ๋ถ๋ฅ์ธ์ง ์๋ฆผ ๊ฐ๋ฅโฐย ์ฝ๋ด์ธ ํ์ ํค๋
: ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ํํ ์์ฒญ
Accept
: ํด๋ผ์ด์ธํธ ์ ํธ ๋ฏธ๋์ด ํ์
์ ๋ฌAccept-Charset
: ํด๋ผ์ด์ธํธ ์ ํธ ๋ฌธ์ ์ธ์ฝ๋ฉAccept-Encoding
: ํด๋ผ์ด์ธํธ ์ ํธ ์์ถ ์ธ์ฝ๋ฉAccept-Language
: ํด๋ผ์ด์ธํธ ์ ํธ ์์ฐ ์ธ์ดAccept-Language: ko-KR, ko;q=0.9, en-US;q=0.8, en;q=0.7
ย โย ํ์ ํค๋๋ ์์ฒญ์์๋ง ์ฌ์ฉ
โฐย ์บ์(Cache)
: ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ฅ์
๐ย ์บ์์ ๋ฐ์ดํฐ ๋ฏธ๋ฆฌ ๋ณต์ฌ์, ๋ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ ์ ๊ทผ ๊ฐ๋ฅ
โ ๋ธ๋ผ์ฐ์ ์บ์ ์ ์ฅ์ ํค๋์ cache-control
์์ฑ์ ์ด์ฉํด ์บ์ ์ ํจ ์๊ฐ ์ง์ ๊ฐ๋ฅ
๐ย Cache-Control: max-age=60
(60์ด ๋์ ํด๋น ์บ์ ์ ํจ)
๐ฅฒย ์บ์๊ฐ ์์ ๋
๐ย ์บ์ ์ ์ฉ
โฐย IF ์บ์ ์๊ฐ ์ด๊ณผ ๊ฒฝ์ฐ
: ์๋ฒ๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ค์ ์กฐํ โ ์บ์ ๊ฐฑ์ โ ๋ค์ ๋คํธ์ํฌ ๋ค์ด๋ก๋ ๋ฐ์ โ ์บ์ ์ ํจ ์๊ฐ ๋ค์ ์ด๊ธฐํ
โฐย ๊ฒ์ฆ ํค๋(Validator) -
Last Modified
- ์บ์ ์์ ์๊ฐ ์ ์ ์์
- ๋ฐ์ดํฐ๊ฐ ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์๊ฐ ์ ๋ณด๋ฅผ ํค๋์ ํฌํจ
โ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅํ ๋ ๋ฐ์ดํฐ ์ต์ข ์์ ์ผ๋ ์ ์ฅ
โ ์บ์ ์ ํจ์๊ฐ์ด ์ด๊ณผ๋๋๋ผ๋If-Modified-Since
ํค๋๋ฅผ ์ด์ฉํด ์กฐ๊ฑด๋ถ ์์ฒญ ๊ฐ๋ฅ โญ๏ธ
HTTP ํค๋
๋ง ์ ์กโ
ย Last-Modified
& If-Modified-Since
Summary
304 Not Modified
+ ํค๋ ๋ฉํ๋ฐ์ดํฐ๋ง ์๋ต (Body โ)๐ย Last-Modified
& If-Modified-Since
๋จ์
โฐย ETag(Entity Tag)
& If-None-Match
ETag
์ฌ์ฉ ๊ฐ๋ฅETag
๋ง ๋ณด๋ด์ ๊ฐ์ผ๋ฉด ์ ์ง, ๋ค๋ฅด๋ฉด ๋ค์ ๋ฐ๋ ๋ฐฉ์์โย ์๋ฒ์์ ๋ณ๋ ์บ์ ๋ก์ง์ ๊ด๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ โ ETag
์ฌ์ฉ
ETag
๋ฅผ ์์ฑํด ์๋ตETag
๊ฐ์ ๊ฒ์ฆํ๋ If-None-Match
๋ฅผ ์์ฒญ ํค๋์ ์์ฑํด์ ๋ณด๋ETag
๋์ผ โ If-None-Match
๊ฑฐ์ง304 Not Modified
์๋ต โ HTTP Body โย โย ์บ์ ์ ํจ์๊ฐ์ด ์ด๊ณผ๋๋๋ผ๋ If-None-Match
ํค๋๋ฅผ ์ด์ฉํด ์กฐ๊ฑด๋ถ ์์ฒญ ๊ฐ๋ฅ
โฐย Cache-Control (์บ์ ์ง์์ด)
Cache-Control: max-age
: ์บ์ ์ ํจ ์๊ฐ (์ด ๋จ์)Cache-Control: no-cache
: ๋ฐ์ดํฐ๋ ์บ์ํด๋ ๋์ง๋ง, ํญ์ Origin ์๋ฒ์ ๊ฒ์ฆํ๊ณ ์ฌ์ฉCache-Control: no-store
: ๋ฐ์ดํฐ์ ๋ฏผ๊ฐ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ์ ์ฅ โโฐ Expires (์บ์ ๋ง๋ฃ์ผ ์ง์ )
Cache-Control: max-age
๊ถ์ฅmax-age
์ ํจ๊ป ์ฌ์ฉ์ Expires
๋ฌด์๋จ๊ฒ์ฆํค๋(Validator) | ์กฐ๊ฑด๋ถ ์์ฒญ ํค๋ |
---|---|
ETag | If-Match, If-None-Match |
Last-Modified | If-Modified-Since, If-Unmodified-Since |
โฐย
ํ๋ก์(Proxy)
: ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ๋๋ฆฌ๋ก ํต์ ์ ์ํํ๋ ๊ฒ
โฐยํ๋ก์ ์๋ฒ
: ๊ทธ ์ค๊ณ ๊ธฐ๋ฅ์ ํ๋ ์๋ฒ
๐ย ๋ค๋ฅธ ๋คํธ์ํฌ์ ๊ฐ์ ์ ์ ์ ๊ฐ๋ฅ โ
๐ย ๋ณด์, ์บ์ฑ์ ํตํ ์ฑ๋ฅ, ํธ๋ํฝ ๋ถ์ฐ ์ฅ์
โฐย
private ์บ์
: ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๊ณ ์ ์ฅํ๋ ์บ์ (default)
โฐยpublic ์บ์
: ํ๋ก์ ์บ์ ์๋ฒ์ ์บ์
โฐย ํ๋ก์ ์บ์ ๊ด๋ จ Header
Cache-Control: public
- ์๋ต์ด public ์บ์๋ก ์ ์ฅCache-Control: private
- ์๋ต์ด ํด๋น ์ฌ์ฉ์๋ง์ ์ํจ, private ์บ์์ ์ ์ฅCache-Control: s-maxage
- ํ๋ก์ ์บ์์๋ง ์ ์ฉ๋๋ max-ageAge: 60 (HTTP ํค๋)
- ์ ์๋ฒ์์ ์๋ต ํ ํ๋ก์ ์บ์ ๋ด์ ๋จธ๋ฌธ ์๊ฐ(์ด)โฐย ์บ์ ๋ฌดํจํ ๊ฐ๋ฅ Header
Cache-Control: no-cache
: ๋ฐ์ดํฐ๋ ์บ์ํด๋ ๋์ง๋ง, ํญ์ Origin ์๋ฒ์ ๊ฒ์ฆํ๊ณ ์ฌ์ฉ โ ๊ฒ์ฆ ํ 304 ์๋ตCache-Control: no-store
: ๋ฐ์ดํฐ์ ๋ฏผ๊ฐ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ์ ์ฅ โCache-Control: must-revalidate
504(Gateway Timeout)
Pragma: no-cache
: HTTP 1.0 ํ์ ํธํ๐คย IF ํ๋ก์ ์บ์ ์๋ฒ & ์ ์๋ฒ ๊ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋จ์ โ ์์๋ฒ ์ ๊ทผ ๋ถ๊ฐ๋ฅ,
200 OK
504 Gateway Timeout Error