์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ ๋ฑ
์ ์ ๊ฐ๋ : OSI 7๊ณ์ธต, TCP/IP, UDP
์ ์ ํ์ต : IP ์ฃผ์, ๋๋ฉ์ธ ๋ค์ ์์คํ (DNS), ํฌํธ
์ฒดํฌ๋ฆฌ์คํธ
1. HTTP์ ๋ํด ์ค๋ช ํ ์ ์๋๊ฐ?
2. HTTP์ ํต์ ํ๋ฆ์ ์ค๋ช ํ ์ ์๋๊ฐ?
DNS, TCP/IP
DNS
*DNS ์๋ฒ๋ ์ด๋ป๊ฒ IP ์ ๋ณด๋ฅผ ์ ์กํ๋๊ฐ?
https://aws.amazon.com/ko/route53/what-is-dns/
- ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ด ์ฃผ์ ํ์์ค์ www.example.com์ ์ ๋ ฅ
- www.example.com์ ๋ํ ์์ฒญ์ ์ผ๋ฐ์ ์ผ๋ก ์ผ์ด๋ธ ์ธํฐ๋ท ๊ณต๊ธ์ ์ฒด, DSL ๊ด๋์ญ ๊ณต๊ธ์ ์ฒด ๋๋ ๊ธฐ์ ๋คํธ์ํฌ ๊ฐ์ ์ธํฐ๋ท ์๋น์ค ์ ๊ณต์ ์ฒด(ISP)๊ฐ ๊ด๋ฆฌํ๋ DNS ํด์๊ธฐ๋ก ๋ผ์ฐํ
- ISP์ DNS ํด์๊ธฐ๋ www.example.com์ ๋ํ ์์ฒญ์ DNS ๋ฃจํธ ์ด๋ฆ ์๋ฒ์ ์ ๋ฌ
- ISP์ DNS ํด์๊ธฐ๋ www.example.com์ ๋ํ ์์ฒญ์ .com ๋๋ฉ์ธ์ TLD ์ด๋ฆ ์๋ฒ ์ค ํ๋์ ๋ค์ ์ ๋ฌ ํ example.com ๋๋ฉ์ธ๊ณผ ์ฐ๊ด๋ 4๊ฐ์ Amazon Route 53 ์ด๋ฆ ์๋ฒ์ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์๋ต
- ISP์ DNS ํด์๊ธฐ๋ Amazon Route 53 ์ด๋ฆ ์๋ฒ ํ๋๋ฅผ ์ ํํด www.example.com์ ๋ํ ์์ฒญ์ ํด๋น ์ด๋ฆ ์๋ฒ์ ์ ๋ฌ
- Amazon Route 53 ์ด๋ฆ ์๋ฒ๋ example.com ํธ์คํ ์์ญ์์ www.example.com ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์น ์๋ฒ์ IP ์ฃผ์ 192.0.2.44 ๋ฑ ์ฐ๊ด๋ ๊ฐ์ ๋ฐ๊ณ ์ด IP ์ฃผ์๋ฅผ DNS ํด์๊ธฐ๋ก ๋ฐํํฉ๋๋ค.
- ISP์ DNS ํด์๊ธฐ๊ฐ ๋ง์นจ๋ด ์ฌ์ฉ์์๊ฒ ํ์ํ IP ์ฃผ์๋ฅผ ํ๋ณด. ํด์๊ธฐ๋ ์ด ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ ๋ก ๋ฐํํฉ๋๋ค. ๋ํ, DNS ํด์๊ธฐ๋ ๋ค์์ ๋๊ตฐ๊ฐ๊ฐ example.com์ ํ์ํ ๋ ์ข ๋ ๋น ๋ฅด๊ฒ ์๋ตํ ์ ์๋๋ก ์ฌ์ฉ์๊ฐ ์ง์ ํ๋ ์ผ์ ๊ธฐ๊ฐ example.com์ IP ์ฃผ์๋ฅผ ์บ์ฑ(์ ์ฅ), Time to Live(TTL) ์ฐธ์กฐ
- ์น ๋ธ๋ผ์ฐ์ ๋ DNS ํด์๊ธฐ๋ก๋ถํฐ ์ป์ IP ์ฃผ์๋ก www.example.com์ ๋ํ ์์ฒญ์ ์ ์กํฉ๋๋ค. ์ฌ๊ธฐ๊ฐ ์ฝํ ์ธ ๊ฐ ์๋ ๊ณณ์ผ๋ก, ์๋ฅผ ๋ค์ด ์น ์ฌ์ดํธ ์๋ํฌ์ธํธ๋ก ๊ตฌ์ฑ๋ Amazon S3 ๋ฒํท ๋๋ Amazon EC2 ์ธ์คํด์ค์์ ์คํ๋๋ ์น ์๋ฒ์ ๋๋ค.
- 192.0.2.44์ ์๋ ์น ์๋ฒ ๋๋ ๊ทธ ๋ฐ์ ๋ฆฌ์์ค๋ www.example.com์ ์น ํ์ด์ง๋ฅผ ์น ๋ธ๋ผ์ฐ์ ๋ก ๋ฐํ, ์ฌ์ฉ์์๊ฒ ํ์
ํจํท ๊ตํ ๋ฐฉ์
vs ํ์ ํต์ ๋ฐฉ์ : ์ ํด์ง ๊ฒฝ๋ก๋ก๋ง ํต์ ~ ํธ๋ํฝ ๋ฑ์ ์ํด ํจ์จ์ด ์ ํ๋จ
๋ฐ์ดํฐ๋ฅผ ํจํท ๋จ์๋ก ์ชผ๊ฐ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก, ๊ฐ ํจํท์ ๊ณ ์ ๋ฒํธ์ ๋ฐ๋ผ ์ต์ข ์์ ์ง์์ ์ฌ๊ฒฐํฉ
*๊ฐ ํจํท์ ์ ์ก ๋น์ ๊ฐ์ฅ ํจ์จ์ ์ธ ๊ฒฝ๋ก๋ก ํต์ ํ๊ธฐ ๋๋ฌธ์ ์ต์ ์ ํจ์จ์ ์ ์งํ ์ ์๋ค
TCP/IP
IP : ํจํท์ ๊ฐ์ฅ ํจ์จ์ ์ผ๋ก ์ ์กํ๊ธฐ ์ํ ์ธํฐ๋ท ํ๋กํ ์ฝ, ํจํท ์ ๋ฌ์ฌ๋ถ์ ์์๋ฅผ ๋ณด์ฅํ์ง ์๋๋ค.
TCP : ํจํท์ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํ ์ ์ก ํ๋กํ ์ฝ
๊ธฐ๋ฒ -> ํ๋ฆ์ ์ด/ ํผ์ก์ ์ด
ํ๋ฆ์ ์ด : ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ์ฒ๋ฆฌ ์๋์ ์ฐจ์ด๋ฅผ ์กฐ์ ~ ์ก์ ์ ์๋๊ฐ ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฐ์(๋ฐ์ดํฐ ์์ค)
-> ์ก์ ์ธก์ ์์ ์ธก์ ๋ฐ์ดํฐ์ฒ๋ฆฌ ์๋์ ๋ง์ถฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํ๋ค.
ํผ์ก์ ์ด : ํ ๋ผ์ฐํฐ์ ๋ฐ์ดํฐ๊ฐ ๋ชฐ๋ฆด ๊ฒฝ์ฐ, ๋ผ์ฐํฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ๋๊ณ , ํธ์คํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๋ผ์ฐํฐ๋ก ์ฌ์ ์กํ๊ฒ ๋๋ ์ค๋ฒํ๋ก์ฐ, ๋๋ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์๋ค.
~ ๋คํธ์ํฌ ๋ด ํจํท์ ์๊ฐ ๊ณผ๋ํ๊ฒ ์ฆ๊ฐํ๋ ํ์์ ํผ์ก์ด๋ผ๊ณ ํ๋ค. ์ด๋ฅผ ๋ฐฉ์ง, ์ ๊ฑฐํ๋ ๊ธฐ๋ฒ์ ํผ์ก์ ์ด๋ผ๊ณ ํ๋ค.
HTTP
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์์์ ๊ตํํ๊ธฐ ์ํ TCP/IP ๊ธฐ๋ฐ ํต์ ํ๋กํ ์ฝ
ํน์ง :
๋จ๋ฐฉํฅ์ฑ : ์๋ฒ๊ฐ ๋จผ์ ์๋ต์ ๋ณด๋ผ ์ ์๋ค.
๋น์ฐ๊ฒฐ์ฑ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ผ๋ก ์๋ฒ์ ์ฐ๊ฒฐ ๋ฐ ์์ฒญ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ๋๋ฉด ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ค.
์ค์๊ฐ ํต์ ์ ํ ์ ์๋ค.
๋ฌธ์ ์ :
HTTP๋ ํ๋ฌธ ํต์ ์ด๋ฏ๋ก ๋์ฒญ ๊ฐ๋ฅ
ํต์ ์๋๋ฅผ ๊ฒ์ฆํ ์ ์์ด ์์ฅ ๊ฐ๋ฅ
์์ ์ฑ์ ์ฆ๋ช ํ ์ ์์ด ๋ณ์กฐ ๊ฐ๋ฅ
cf) ์ค์๊ฐ ์ฑํ ๋ฑ : ์น์์ผ์ ์ฌ์ฉ
**ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฐ๊ณ ์๋ ๋ฒ์ ์ HTTP/1 (HTTP 1.1). HTTP/3(TCP/IP๊ฐ ์๋ UDP๊ธฐ๋ฐ)๊น์ง ๋ฐํ๋์๋ค.
HTTP ๋ฉ์๋
์ฃผ์ ๋ฉ์๋ : GET, POST, PUT, PATCH, DELETE
์์ : ๊ณ์ ํธ์ถํด๋ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์์
๋ฉฑ๋ฑ : ๋์ผ ์์ฒญ์ ๊ณ์ ํธ์ถํ ๊ฒ๊ณผ ํ๋ฒ ์์ฒญํ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
์บ์๊ฐ๋ฅ : ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์๋ฒ์ ์บ์ฑ(์์์ ์ฅ)ํ ์ ์๋ ๋ฉ์๋, ์ค์ ๋ก๋ ๊ตฌํ์ด ์ด๋ ค์ GET๊ณผ HEAD์๋ง ์บ์ฑ์ด ์ฌ์ฉ๋๋ค๊ณ ํ๋ค.
HTTP ์ํ์ฝ๋
- ์ ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์์ฒญ์ ์ฒ๋ฆฌ ์ํ๋ฅผ ์๋ต์์ ์๋ ค์ฃผ๊ธฐ ์ํ ์ ๋ณด
- ์ข
๋ฅ
- 1xx (Informational): ์์ฒญ์ด ์์ ๋์ด ์ฒ๋ฆฌ์ค
- 2xx (Successful): ์์ฒญ ์ ์ ์ฒ๋ฆฌ
- 200 OK : ์์ฒญ ์ฑ๊ณต
- 201 Created : ์์ฒญ ์ฑ๊ณตํด์ ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋จ
- 202 Accepted : ์์ฒญ์ด ์ ์๋์์ผ๋ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ง ์์์
- 204 No Content : ์๋ฒ๊ฐ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ์ง๋ง, ์๋ต ํ์ด๋ก๋ ๋ณธ๋ฌธ์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์์
- 3xx (Redirection): ์์ฒญ์ ์๋ฃํ๋ ค๋ฉด ์ถ๊ฐ ํ๋์ด ํ์ (๋ณดํต ๋ฆฌ๋ค์ด๋ ์
์ฒ๋ฆฌ)
- 301 Moved Permanently : ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ๋ ์ ์์
- 302 Found : ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ๋ ์ ์์
- 303 See Other : ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณ๊ฒฝ
- 304 Not Modified : ์บ์๋ฅผ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- 307 Temporary Redirect : ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง(์์ฒญ ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋๋ค.)
- 308 Permanent Redirect : ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง(์ฒ์ POST๋ฅผ ๋ณด๋ด๋ฉด ๋ฆฌ๋ค์ด๋ ํธ๋ POST ์ ์ง)
- 4xx (Client Error): ํด๋ผ์ด์ธํธ ์ค๋ฅ, ์๋ชป๋ ๋ฌธ๋ฒ๋ฑ์ผ๋ก ์๋ฒ๊ฐ ์์ฒญ์ ์ํํ ์ ์์
- 400 Bad Request : ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ์์ฒญ์ ํด์ ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์
- 401 Unauthorized : ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ๋ฆฌ์์ค์ ๋ํ ์ธ์ฆ์ด ํ์ํจ
- 403 Forbidden : ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ์ง๋ง ์น์ธ์ ๊ฑฐ๋ถํจ
- 404 Not Found : ์์ฒญ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์
- 5xx (Server Error): ์๋ฒ ์ค๋ฅ, ์๋ฒ๊ฐ ์ ์ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํจ
HTTP ํต์ ํ๋ฆ
1. ์น ๋ธ๋ผ์ฐ์ ์ ์ฌ์ฉ์๊ฐ URL ์ ๋ ฅ
2. ๋๋ฉ์ธ ๋ค์ ๋ถ๋ถ์ DNS ์๋ฒ์ ๊ฒ์, DNS ์๋ฒ์์ IP์ฃผ์๋ฅผ ๋ฐํ
3. ํ์ด์ง URL ์ ๋ณด์ ๋ฐํ๋ IP์ฃผ์๋ฅผ ํฌํจํ๋ HTTP ์์ฒญ ๋ฉ์ธ์ง๋ฅผ ์์ฑ ํ TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ํด๋น IP์ฃผ์์ ์ปดํจํฐ๋ก ์ ์ก
4. ์์ฒญ ๋ฉ์ธ์ง๋ฅผ ๋ฐ์ ์ปดํจํฐ๋ ์น ํ์ด์ง URL ์ ๋ณด ์ค PATH์ HTTP ๋ฉ์๋์ ๋ง๋ ์ฝ๋ ์คํ ํ ์๋ต ๋ฐ์ดํฐ ๋ฐํ
5. ๋ฐํ๋ ์๋ต ๋ฐ์ดํฐ๋ HTTP ํ๋กํ ์ฝ์ ๋ง์ถฐ HTTP ์๋ต ๋ฐ์ดํฐ๋ก ๋ณํ, ์์ฒญ ์ปดํจํฐ๋ก TCP ํ๋กํ ์ฝ์ ํตํด ๋ฐํ
cf) ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์
1. HTML, CSS ํ์ผ์ ํ์ฑํด DOM Tree, CSSOM Tree๋ฅผ ๋ง๋ ๋ค.
2. ๋ ํธ๋ฆฌ๋ฅผ ๊ฒฐํฉํด Rendering Tree ์์ฑ
3. Rendering Tree์์ ๊ฐ ๋ ธ๋์ ์์น์ ํฌ๊ธฐ ๊ณ์ฐ
4. ๊ฐ ๋ ธ๋๋ฅผ ํ๋ฉด์์ ์ค์ ํฝ์ ๋ก ๋ณํํ๊ณ ๋ ์ด์ด๋ฅผ ๋ง๋ ๋ค.
5. ๋ ์ด์ด๋ฅผ ํฉ์ฑํ์ฌ ์ค์ ํ๋ฉด์ ๋ํ๋ธ๋ค.
HTTP ๋ฉ์ธ์ง์ ๊ตฌ์กฐ
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
1. Start line(์๋ต : Status line)
HTTP ์ํ ์ฝ๋, HTTP ๋ฒ์ , ์์ฒญ ํ๊ฒ
2. Header
1) ์์ฒญ ํค๋ :
-General
-Request
-Entity
2) ์๋ต ํค๋ :
-General
-Response
-Entity
3. ๋ณธ๋ฌธ :
์์ฒญ ๋ฉ์ธ์ง : ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๊ฒฝ์ฐ์๋ง ์์ฑ๋จ(POST ๋ฑ) ~ GET, DELETE ๋ฑ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ์์ฒญ์๋ ๋ณธ๋ฌธ์ด ์๋ค.
์๋ต ๋ฉ์ธ์ง : ์ํ ์ฝ๋ 201, 204์ ๊ฒฝ์ฐ, ์๋ต ๋ฉ์ธ์ง ๋ณธ๋ฌธ์ด ์๋ค.
'๊ฐ๋ฐ๊ณต๋ถ > CS๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS ๊ฐ์ 3. ํ๋ก์ธ์ค ์๋ช ์ฃผ๊ธฐ์ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ (1) | 2023.10.03 |
---|---|
CS ๊ฐ์ 2. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ (0) | 2023.07.23 |
CS ๊ฐ์ 1. CPU์ ๋ฉ๋ชจ๋ฆฌ (0) | 2023.07.19 |
๋ก๋๋ฐธ๋ฐ์ฑ/ ์ค์ผ์ผ ์ / ์ค์ผ์ผ ์์ : ์๋ฒ์ ๋ถ์ฐ ์ ์์ฌ ๊ฒฐ์ ์ ๋ํด (0) | 2023.03.15 |
Usecase Diagram (0) | 2022.12.07 |