๋คํธ์ํฌ
์น ํต์ ์ ํฐ ํ๋ฆ : https://www.google.com/ ์ ์ ์ํ ๋ ์ผ์ด๋๋ ์ผ
๋ธ๋ผ์ฐ์ ๊ฐ URL์ ์ ํ ๊ฐ์ ํ์ฑํด์ HTTP Request Message
๋ฅผ ๋ง๋ค๊ณ , OS์ ์ ์ก ์์ฒญ์ ํฉ๋๋ค.
์ด ๋, Domain์ผ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๊ธฐ ๋๋ฌธ์ DNS Lookup
์ ์ํํฉ๋๋ค.DNS ๋ฃฉ์
๊ณผ์
์ ํฌ๋กฌ์ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ → hosts ํ์ผ → DNS Cache์ ์์๋ก ๋๋ฉ์ธ์ ๋งค์นญ๋๋ ip๋ฅผ ์ฐพ์ต๋๋ค.์ผ๋ฐ์ ์ผ๋ก ์ค๋ช
ํ๋ DNS Lookup์ ๋ฃจํธ ๋๋ฉ์ธ ์๋ฒ์์๋ถํฐ ์๋ธ ๋๋ฉ์ธ ์๋ฒ ์์ผ๋ก ์ฐพ๊ฒ๋ฉ๋๋ค.
์ด ์์ฒญ์ ํ๋กํ ์ฝ ์คํ(์ด๋ผ๋ OS์ ๋ด์ฅ๋ ๋คํธ์ํฌ ์ ์ด์ฉ ์ํํธ์จ์ด์ ์ํด ํจํท)
์ ๋ด๊ธฐ๊ณ ํจํท์ ์ ์ด ์ ๋ณด๋ฅผ ๋ง๋ถ์ฌ LAN ์ด๋ํฐ์ ์ ์กํ๊ณ , LAN ์ด๋ํฐ๋ ์ด๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ณํ์์ผ ์ก์ถํฉ๋๋ค.
ํจํท์ ์ค์์นญ ํ๋ธ ๋ฑ์ ๊ฒฝ์ ํ์ฌ ์ธํฐ๋ท ์ ์์ฉ ๋ผ์ฐํฐ
์์ ISP
๋ก ์ ๋ฌ๋๊ณ , ์ธํฐ๋ท
์ผ๋ก ์ด๋ํฉ๋๋ค. ์ก์ธ์ค ํ์ ์ ์ํด ํต์ ์ฌ์ฉ ๋ผ์ฐํฐ๋ก ์ด๋ฐ๋๊ณ ์ธํฐ๋ท์ ํต์ฌ๋ถ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๊ณ ์ ๋ผ์ฐํฐ๋ค ์ฌ์ด๋ก ๋ชฉ์ ์ง๊น์ง ํจํท์ด ํ๋ฌ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค.ํต์ฌ๋ถ๋ฅผ ํต๊ณผํ ํจํท์ ๋ชฉ์ ์ง์ LAN์ ๋์ฐฉ
ํ๊ณ , ๋ฐฉํ๋ฒฝ์ด ํจํท์ ๊ฒ์ฌ
ํ ํ ์บ์ ์๋ฒ๋ก ๋ณด๋ด์ด ์น ์๋ฒ์ ๊ฐ ํ์๊ฐ ์๋์ง ๊ฒ์ฌ
ํฉ๋๋ค.
์น ์๋ฒ์ ๋์ฐฉํ ํจํท์ ํ๋กํ ์ฝ ์คํ
์ด ํจํท์ ์ถ์ถํ์ฌ ๋ฉ์์ง๋ฅผ ๋ณต์ํ๊ณ ์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๊น๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฒญ์ ๋ํ ์๋ต ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ๋ก ํ์กํ๊ณ , ์ด๋ฅผ ์ ๋ฌ๋ ๋ฐฉ์ ๊ทธ๋๋ก ์ ์กํฉ๋๋ค.
TCP์ UDP์ ์ฐจ์ด์
TCP๋ ์ฐ๊ฒฐ ์งํฅํ ํ๋กํ ์ฝ
์ด๊ณ , UDP๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๊ทธ๋จ ๋จ์๋ก ์ ์กํ๋ ํ๋กํ ์ฝ
์
๋๋ค.
TCP๋ ๊ฐ์ ํ์ ์ ๋ง๋ค์ด ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก(ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด, ์ค๋ฅ ์ ์ด
)ํ๋ ํ๋กํ ์ฝ๋ก ๋ฐ๋ก ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ ์ฐจ๊ฐ ์๋ UDP์ ๋นํด ์๋๊ฐ ๋๋ฆฐํธ์
๋๋ค.
TCP๋ ๊ทธ๋์ ํ์ผ ์ ์ก๊ณผ ๊ฐ์ ์ ๋ขฐ์ฑ์ด ์ค์ํ ์๋น์ค์ ์ฌ์ฉ๋๊ณ , UDP๋ ์คํธ๋ฆฌ๋ฐ, RTP์ ๊ฐ์ด ์ฐ์์ฑ์ด ๋ ์ค์ํ ์๋น์ค์ ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ง๋ง UDP๋ ์ ๋ขฐ์ฑ์ ์์ฒด์์ ๋ณด์ฅํ์ง ์๋ ๊ฒ ๋ฟ์ด์ง, ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก ํ ์ ์์ต๋๋ค. ๊ทธ๋์ HTTP/3์ QUIC์ด๋ผ๋ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, QUIC์ UDP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ฆ, UDP ์์ฒด๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์ง๋ง, ์ถ๊ฐ์ ์ธ ์ ์๋ฅผ ํตํด ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์ง๋ง, ์ถ๊ฐ์ ์ธ ์ ์๋ฅผ ํตํด ์ ๋ขฐ์ฑ์ ๋ณด์ฅ๋ฐ์ ์ ์์ต๋๋ค.
TCP 3, 4 way handshake
TCP ๊ฐ์ํ์ ์ ๋ง๋ค๊ณ ์ ๊ฑฐํ๋ ๊ณผ์ ์ ๋ํด์ ๋ฌป๋ ์ง๋ฌธ
TCP 3 way handshake๋ ๊ฐ์ํ์ ์ ์๋ฆฝํ๋ ๋จ๊ณ์
๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ์ ์กํ ์ ์๋์ง, ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ ์ ์กํ ์ ์๋์ง ํ์ธํ๋ ๊ณผ์ ์
๋๋ค. SYN, ACK ํจํท์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ์์์ ๋์๋ก SYN ํ๋๊ทธ๋ฅผ ์ ์กํ๊ณ , ACK ํ๋๊ทธ์๋ 1 ๋ํ ๊ฐ์ ์ ์กํฉ๋๋ค. ์ ํํ ์์๋ SYN(n) → ACK(n+1), SYN(m) → ACK(m+1) ์์ผ๋ก ์ผ์ด๋ฉ๋๋ค.
์ ์์์ ๋์ ์ง์ ? →
๊ณผ๊ฑฐ์ ์ฌ์ฉ๋ port ๋ฒํธ ์์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์์ฐจ์ ์ธ ์ซ์๋ผ๋ฉด ๊ณผ๊ฑฐ์ ์ฐ๊ฒฐ์์ ์ค๋ ํจํท์ผ๋ก ์ธ์ํ ์ ๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
TCP 4 way handshake๋ TCP ์ฐ๊ฒฐ์ ํด์ ํ๋ ๋จ๊ณ๋ก, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ ํด์ ๋ฅผ ํต์งํ๊ณ ์๋ฒ๊ฐ ์ด๋ฅผ ํ์ธํ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์ด๋ฅผ ๋ฐ์์์ ์ ์กํด์ฃผ๊ณ ์ต์ข ์ ์ผ๋ก ์ฐ๊ฒฐ์ด ํด์ ๋ฉ๋๋ค. ๋จ, ์๋ฒ์์ ์์ผ์ด ๋ซ๊ฒผ๋ค๊ณ ํต์งํด๋ ํด๋ผ์ด์ธํธ ์ธก ์์๋ ์ผ์ ์๊ฐ ๋๊ธฐํ๋๋ฐ, ํน์๋ ํจํท์ด ๋์ค์ ๋์ฐฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
HTTP์ HTTPS ์ฐจ์ด์
HTTP๋ ๋ฐ๋ก ์ํธํ ๊ณผ์ ์ ๊ฑฐ์น์ง ์๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์ ํจํท์ ๊ฐ๋ก์ฑ ์ ์๊ณ , ์์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด HTTPS์ ๋๋ค. ์ค๊ฐ์ ์ํธํ ๊ณ์ธต์ ๊ฑฐ์ณ์ ํจํท์ ์ํธํํฉ๋๋ค.
HTTPS์ ๋ํด์ ์ค๋ช ํ๊ณ , SSL Handshake์ ๋ํด์ ์ค๋ช
HTTPS๋ HTTP์ ๋ณด์ ๊ณ์ธต์ ์ถ๊ฐํ ๊ฒ์
๋๋ค.
HTTPS๋ ์ 3์ ์ธ์ฆ, ๊ณต๊ฐํค ์ํธํ, ๋น๋ฐํค ์ํธํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ 3์ ์ธ์ฆ์ ๋ฏฟ์ ์ ์๋ ์ธ์ฆ๊ธฐ๊ด์ ๋ฑ๋ก๋ ์ธ์ฆ์๋ง ์ ๋ขฐํ๋ ๊ฒ์ด๊ณ , ๊ณต๊ฐํค ์ํธํ๋ ๋น๋ฐํค๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. ๋น๋ฐํค ์ํธํ๋ ํต์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋๋ฐ ์ฌ์ฉํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ TCP 3 way handshake ๋ฅผ ์ํํ ์ดํ Client Hello ๋ฅผ ์ ์กํฉ๋๋ค. ์๋ฒ๋ ์ธ์ฆ์๋ฅผ ๋ณด๋
๋๋ค.
ํด๋ผ์ด์ธํธ๋ ๋ฐ์ ์ธ์ฆ์๋ฅผ ์ ๋ขฐํ๊ธฐ ์ํด์ ๋ฑ๋ก๋ ์ธ์ฆ ๊ธฐ๊ด์ธ์ง ํ์ธํฉ๋๋ค. ์ด ์ธ์ฆ์๋ ์ธ์ฆ๊ธฐ๊ด์ ๊ฐ์ธํค๋ก ์ํธํ๋์ด์๊ณ , ๊ณต๊ฐํค๋ก ๊ฒ์ฆํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฌ์ดํธ์ ์ ๋ณด์ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์๋ฒ๋ ๊ณต๊ฐํค๋ก ํต์ ์ ์ฌ์ฉํ ๋น๋ฐํค๋ฅผ ์ํธํํด์ ์๋ฒ์ ๋ณด๋
๋๋ค. ์๋ฒ๋ ์ด๋ฅผ ๊ฐ์ธํค๋ก ํ์ธํ๊ณ ์ดํ ํต์ ์ ๊ณต์ ๋ ๋น๋ฐํค๋ก ์ํธํ๋์ด ํต์ ํฉ๋๋ค.
GET๊ณผ POST์ ์ฐจ์ด์
GET ์์ฒญ์ ์๋ฒ์ ์กด์ฌํ๋ ์ ๋ณด๋ฅผ ์์ฒญํฉ๋๋ค. ์ด ๋, ๋ฐํ๋๋ ์ ๋ณด๋ ์ ๋ณด ์์ฒด๊ฐ ์๋๋ผ ์ ๋ณด์ ํํ์
๋๋ค.(์ฌ๊ธฐ๋ REST์ ์ฐ๊ด)
์ผ๋ฐ์ ์ผ๋ก Request Body๋ ์ ๋ ฅํ์ง ์๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฉฐ, ๋ ๊ฑฐ์ ์์คํ ์ ๊ฒฝ์ฐ ์์ฒญ์ ๋ฐ์๋ค์ด์ง ์์ ์ ์์ต๋๋ค. ์บ์ฑ์ ์ํํ๊ธฐ ๋๋ฌธ์ ์บ์ฑ๋์ง ์๋ ์์ฒญ์ GET ์์ฒญ์ด ๋ง์ง ์์ ์ ์์ต๋๋ค.
POST ์์ฒญ์ ์๋ฒ์ ์ ๋ณด๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์ฒญํฉ๋๋ค. ์์ HTTP ํต์ ์ POST ์์ฒญ์ผ๋ก ๋ฐ์ดํฐ ์ญ์ , ์์ ๋ form ์์ฒญ์ผ๋ก ๊ฐ์ด ์ํํ์ต๋๋ค. POST ์์ฒญ์ ์๋ฒ์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ฑ์ด ์ ์ง๋์ง ์์ต๋๋ค. ๋ณดํต Request Body์ ์์ฒญํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์กํฉ๋๋ค.
HTTP ๋ฉ์๋์ ์ด๊ฒ์ด ํ๋ ์ญํ
OPTIONS, HEAD, TRACE์ ์กด์ฌ์ ๋ํด์๋ ์์๋ง ๋์! ํนํ TRACE๋ ๋ชฐ๋ผ๋ ๋๋ ๊ฒ ๊ฐ์.....
- OPTIONS : ์๋ฒ๊ฐ ์ด๋ค ๋ฉ์๋๋ฅผ ์ง์ํ๋์ง ์์๋ณผ ๋ ์ฌ์ฉ, ์๋ฒ์๊ฒ ์ค์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ์ ์๋ฒ๋ฅผ ํ
์คํธํ๋ ์ฉ๋
- HEAD : ์์ฒญ์์ ํค๋๋ง ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ ๋จ, ํค๋๊ฐ GET ์์ฒญ์ ํค๋
- TRACE : ํํ ํ
์คํธ ๊ฐ์ ๊ณณ์์ ์ฌ์ฉ๋จ...
- GET ์์ฒญ์ ์๋ฒ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๊ฒ์
๋๋ค.
R
- POST ์์ฒญ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์ฒญํฉ๋๋ค.
C
- PUT ์์ฒญ์ ์๋ฒ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฑฐ๋ ์กด์ฌํ์ง ์์ผ๋ฉด ์์ฑํฉ๋๋ค.
C,U
- DELETE ์์ฒญ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ ๊ฒ์ ์์ฒญํฉ๋๋ค. ์กด์ฌํ์ง ์์๋ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค.
D
- PATCH ์์ฒญ์ ์๋ฒ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ถ ์์ ํฉ๋๋ค.
U
REST๋ ๋ฌด์์ด๊ณ , RESTful ํ๊ฒ API๋ฅผ ๋์์ธํ๋ค๋ ๊ฒ์?
REST๋ Representational State Transfer์ ์ฝ์
์ด๋ค ์์์ ๋ํด CRUD ์ฐ์ฐ์ ์ํํ๊ธฐ ์ํด URI(resource)๋ก HTTP Method๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ณด๋ด๋ฉฐ, ์์ฒญ์ ์ํ ์์์ ํน์ ํ ํํ๋ก ํํ๋ฉ๋๋ค.
REST๋ ๋คํธ์ํฌ ์์์ client์ server ์ฌ์ด์ ํต์ ๋ฐฉ์ ์ค ํ๋์
๋๋ค.
HTTP URI๋ฅผ ํตํด ์์์ ๋ช
์ํ๊ณ , HTTP Method๋ฅผ ํตํด ํด๋น ์์์ ๋ํ CRUD ์ฐ์ฐ์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฆ, REST๋ ์์ ๊ธฐ๋ฐ์ ๊ตฌ์กฐ ์ค๊ณ ์ค์ฌ์ resource๊ฐ ์๊ณ , HTTP Method๋ฅผ ํตํด resource๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋ ์ํคํ
์ณ๋ฅผ ์๋ฏธํฉ๋๋ค.
HTTP ํ์ค ํ๋กํ ์ฝ์ ๋ฐ๋ฅธ ๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ , ๋ณ๋์ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ํ์๊ฐ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
RESTfulํ๊ฒ API๋ฅผ ์ค๊ณํ๋ค๋ ๊ฒ์ ์ดํดํ๊ธฐ ์ฝ๊ณ , ์ฌ์ฉํ๊ธฐ ์ฌ์ด REST API๋ฅผ ๋ง๋๋ ๊ฒ์
๋๋ค. ๋์ผํ URI์ ํ์์ ๋ง๊ฒ POST, GET, DELETE, PATCH, PUT ๋ฑ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ URI path์ ๋ถํ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ง ์์์ผ ํฉ๋๋ค.
https://hyeyun.tistory.com/entry/REST
OSI 7๊ณ์ธต๊ณผ ๊ทธ ์กด์ฌ ์ด์ , TCP/IP 4๊ณ์ธต์ ๋ํด ์ค๋ช
OSI 7๊ณ์ธต์ ๋คํธ์ํฌ ํต์ ์ ๊ตฌ์ฑํ๋ ์์๋ค 7๊ฐ์ ๊ณ์ธต์ผ๋ก ํ์คํ ํ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ์คํํ๋ ๊ฒ์ ์ฅ์ ์ ํต์ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ํ์
ํ ์ ์์ด, ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ฉ์ดํด์ง๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ๋๋ถ๋ถ ์ฌ์ฉํ๋ ๋คํธ์ํฌ๋ TCP/IP 4๊ณ์ธต์
๋๋ค. ํต์ ์ ์ค์ ๋ก ์ฌ์ฉ๋๋ ๊ณ์ธต์ด๊ณ , 1,2๊ณ์ธต์ด 1๊ณ์ธต, 5,6,7๊ณ์ธต์ด 4๊ณ์ธต์ผ๋ก ์ด์๋ฉ๋๋ค.
'์ทจ๋ฝ๊ธฐ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐ์ํ ํ ํฌ์ฝ์ค ๋ฐฑ์๋ 5๊ธฐ] ํ๋ฆฌ์ฝ์ค 1์ฃผ์ฐจ ํ๊ณ (1) | 2022.11.03 |
---|---|
๋ฉด์ ๋ณต๊ธฐ - 2 ๐ (0) | 2022.11.03 |
๋ฉด์ ๋ณต๊ธฐ - 1 ๐ญ (0) | 2022.09.27 |
๋ฉด์ ์ค๋น - 2 (0) | 2022.09.27 |
REST .... ? (0) | 2022.09.19 |