๐ก ๊ฐ๋จ ์์ฝ : ์ธํฐ๋ท ํต์ ์ IP ํ๋กํ ์ฝ์ ํตํด ์ด๋ค์ง๊ณ , TCP๋ ์ฐ๊ฒฐ ์งํฅ์ ์ด๊ณ ์ ๋ขฐ์ฑ์ด ๋์ ๊ฐ์ ํ์ ๋ฐฉ์, UDP๋ ๊ฐ๋จํ๊ณ ๋น ๋ฅธ ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์์ด์ผ. TCP๋ ์ฐ๊ฒฐ ์ค์ ํ ์์ ํ๊ฒ ๋ฐ์ดํฐ ์ ์กํ๊ณ , UDP๋ ๋น ๋ฅด๊ฒ ์ ์กํ๋ ์์๋ ์๋ฌ์ ๋ํ ๋ณด์ฅ์ ์์ด. ํฌํธ๋ ํ๋ก์ธ์ค ์๋ณ์ ์ฐ์ด๊ณ , DNS๋ ๋๋ฉ์ธ ๋ช ์ IP ์ฃผ์๋ก ๋ณํํด์ค.
- ์ ์ก์ข ๋ฅ
- HTML, TEXT
- IMAGE, ์์ฑ, ์์, ํ์ผ
- JSON, XML (API)
- ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
- ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ HTTP ์ฌ์ฉ
- 1997๋
์ ๋์จ
HTTP/1.1
๋ฒ์ ์ด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋จ
- TCP : HTTP/1.1, HTTP
- UDP : HTTP/3
- ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
- ๋ฌด์ํ ํ๋กํ ์ฝ(์คํ ์ด์ค๋ฆฌ์ค), ๋น์ฐ๊ฒฐ์ฑ
- HTTP ๋ฉ์ธ์ง
- ๋จ์ํจ, ํ์ฅ ๊ธฐ๋ฅ
- Request, Response ๊ตฌ์กฐ
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ต์ ๋๊ธฐ
- ์๋ฒ๊ฐ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ ์๋ต
- ์๋ฒ
- ๋ฐ์ดํฐ
- ๋น์ฆ๋์ค ๋ก์ง
- ํด๋ผ์ด์ธํธ
- UI
- ์ฌ์ฉ์ฑ
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๋ณด์กด x
- ์ฅ์ : ์๋ฒ ํ์ฅ์ฑ ๋์(์ค์ผ์ผ ์์)
- ๋จ์ : ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ ๋ฐ์ดํฐ ์
- ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
- ์ ์: 100๋ง์ ์ ๋๋ค. . (๋ ธํธ๋ถ ์ํ ์ ์ง)
- ๊ณ ๊ฐ: 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
- ์ ์: 200๋ง์ ์ ๋๋ค. ์ ์ฉ์นด๋, ํ๊ธ์ค์ ์ด๋ค ๊ฑธ๋ก ๊ตฌ๋งค ํ์๊ฒ ์ด์?(๋ ธํธ๋ถ, 2๊ฐ ์ํ ์ ์ง)
- ๊ณ ๊ฐ: ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
- ์ ์: 200๋ง์ ๊ฒฐ์ ์๋ฃ๋์์ต๋๋ค. (๋ ธํธ๋ถ, 2๊ฐ, ์ ์ฉ์นด๋ ์ํ ์ ์ง)
- ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
- ์ ์A: 100๋ง์ ์ ๋๋ค.
- ๊ณ ๊ฐ: 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
- ์ ์B: ? ๋ฌด์์ 2๊ฐ ๊ตฌ๋งคํ์๊ฒ ์ด์?
- ๊ณ ๊ฐ: ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
- ์ ์C: ? ๋ฌด์จ ์ ํ์ ๋ช ๊ฐ ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ์๊ฒ ์ด์?
์ํ ์ ์ง
: ์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋๋ฉด ์๋๋ค.(์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋ ๋ ์ํ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ์ ์์๊ฒ ๋ฏธ๋ฆฌ ์๋ ค์ค์ผ ํ๋ค.)
- ์๋ฌด ์๋ฒ๋ ํธ์ถํด๋ ๋๋ค.
๋ฌด์ํ
: ์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋์ด๋ ๋๋ค.
- ๊ฐ์๊ธฐ ๊ณ ๊ฐ์ด ์ฆ๊ฐํด๋ ์ ์์ ๋๊ฑฐ ํฌ์ ํ ์ ์๋ค.
- ๊ฐ์๊ธฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์ฆ๊ฐํด๋ ์๋ฒ๋ฅผ ๋๊ฑฐ ํฌ์ ํ ์ ์๋ค.
- ๋ฌด์ํ์์๋ ๊ณ ๊ฐ์ด ํ์ํ ์ ๋ณด๋ฅผ ๊ทธ๋ ๊ทธ๋ ๋๊ฒจ์ค ๋ง์ง๋ง๋ง๋ก๋ง ๊ตฌ๋งคํ ์ ์๋ฏ์ด
- ์ค๊ฐ์ ์๋ฒ๊ฐ ์ฅ์ ๊ฐ ๋๋ฉด?
- ๋ฌด์ํ๋ ์๋ต ์๋ฒ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์๋ค. -> ๋ฌดํํ ์๋ฒ ์ฆ์ค ๊ฐ๋ฅ(์ค์ผ์ผ ์์)
- ๋ชจ๋ ๊ฒ์ ๋ฌด์ํ๋ก ์ค๊ณ ํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๊ณ ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
- ๋ฌด์ํ
- ์) ๋ก๊ทธ์ธ์ด ํ์ ์๋ ๋จ์ํ ์๋น์ค ์๊ฐ ํ๋ฉด
- ์ํ ์ ์ง
- ์) ๋ก๊ทธ์ธ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ํ๋ค๋ ์ํ๋ฅผ ์๋ฒ์ ์ ์ง
- ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์๋ฒ ์ธ์ ๋ฑ์ ์ฌ์ฉํด์ ์ํ ์ ์ง
- ์ํ ์ ์ง๋ ์ต์ํ๋ง ์ฌ์ฉ
- ์๋ฒ๋ ์ฐ๊ฒฐ์ ๊ณ์ ์ ์ง, ์๋ฒ ์์ ์๋ชจ
- ์๋ฒ๋ ์ฐ๊ฒฐ ์ ์งX, ์ต์ํ์ ์์ ์ฌ์ฉ
HTTP
๋ ๊ธฐ๋ณธ์ด ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ- ์ผ๋ฐ์ ์ผ๋ก ์ด ๋จ์์ ์ดํ์ ๋น ๋ฅธ ์๋๋ก ์๋ต
- 1์๊ฐ ๋์ ์์ฒ๋ช ์ด ์๋น์ค๋ฅผ ์ฌ์ฉํด๋ ์ค์ ์๋ฒ์์ ๋์์ ์ฒ๋ฆฌํ๋ ์์ฒญ์ ์์ญ๊ฐ ์ด ํ๋ก ๋งค์ฐ ์์
- ์) ์น ๋ธ๋ผ์ฐ์ ์์ ๊ณ์ ์ฐ์ํด์ ๊ฒ์ ๋ฒํผ์ ๋๋ฅด์ง๋ ์๋๋ค.
- ์๋ฒ ์์์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์
- TCP/IP ์ฐ๊ฒฐ์ ์๋ก ๋งบ์ด์ผ ํจ -
3 way handshake ์๊ฐ ์ถ๊ฐ
- ์น ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ดํธ๋ฅผ ์์ฒญํ๋ฉด HTML ๋ฟ๋ง ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ, css, ์ถ๊ฐ ์ด๋ฏธ์ง ๋ฑ ๋ฑ ์ ๋ง์ ์์์ด ํจ๊ป ๋ค์ด๋ก๋
- ์ง๊ธ์
HTTP ์ง์ ์ฐ๊ฒฐ(Persistent Connections)
๋ก ๋ฌธ์ ํด๊ฒฐ - HTTP/2, HTTP/3์์ ๋ ๋ง์ ์ต์ ํ
- ๋ค ๋ฐ์ ๋๊น์ง ์ฐ๊ฒฐ์ ์ ์งํด๋
- ์ ๋ง ๊ฐ์ ์๊ฐ์ ๋ฑ ๋ง์ถ์ด ๋ฐ์ํ๋ ๋์ฉ๋ ํธ๋ํฝ
- ์) ์ ์ฐฉ์ ์ด๋ฒคํธ, ๋ช ์ KTX ์์ฝ, ํ๊ณผ ์์ ๋ฑ๋ก
- ์) ์ ๋ 6:00 ์ ์ฐฉ์ 1000๋ช ์นํจ ํ ์ธ ์ด๋ฒคํธ -> ์๋ง๋ช ๋์ ์์ฒญ
- ๋ณดํต ์ฒซ ํ์ด์ง๋ ์ ์ ํ์ด์ง์ธ html(์ํ ์์) โ ๊ทธ ํ ์ด๋ฒคํธ ๋ฒํผ ๋๋ฅด๊ฒ
- start-line = request-line / status-line
- request-line = method SP(๊ณต๋ฐฑ) request-target SP HTTP-version CRLF(์ํฐ)
- HTTP ๋ฉ์๋ (GET: ์กฐํ)
- ์์ฒญ ๋์ (/search?q=hello&hl=ko)
- HTTP Version
- ์ข ๋ฅ: GET, POST, PUT, DELETE...
- ์๋ฒ๊ฐ ์ํํด์ผ ํ ๋์ ์ง์
GET
: ๋ฆฌ์์ค ์กฐํPOST
: ์์ฒญ ๋ด์ญ ์ฒ๋ฆฌ
- absolute-path[?query] (์ ๋๊ฒฝ๋ก[?์ฟผ๋ฆฌ])
- ์ ๋๊ฒฝ๋ก=
"/"
๋ก ์์ํ๋ ๊ฒฝ๋ก - ์ฐธ๊ณ : *, http://...?x=y ์ ๊ฐ์ด ๋ค๋ฅธ ์ ํ์ ๊ฒฝ๋ก์ง์ ๋ฐฉ๋ฒ๋ ์๋ค.
- ์ ๋๊ฒฝ๋ก=
- HTTP ๋ฒ์
- start-line = request-line / status-line
- status-line = HTTP-version SP status-code SP reason-phrase CRLF
- HTTP ๋ฒ์
HTTP ์ํ ์ฝ๋
: ์์ฒญ ์ฑ๊ณต, ์คํจ๋ฅผ ๋ํ๋- 200: ์ฑ๊ณต
- 400: ํด๋ผ์ด์ธํธ ์์ฒญ ์ค๋ฅ
- 500: ์๋ฒ ๋ด๋ถ ์ค๋ฅ
- ์ด์ ๋ฌธ๊ตฌ: ์ฌ๋์ด ์ดํดํ ์ ์๋ ์งง์ ์ํ ์ฝ๋ ์ค๋ช ๊ธ
- header-field = field-name ":" OWS field-value OWS (OWS:๋์ด์ฐ๊ธฐ ํ์ฉ)
- field-name์ ๋์๋ฌธ์ ๊ตฌ๋ฌธ ์์
- HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด
- ์) ๋ฉ์์ง ๋ฐ๋์ ๋ด์ฉ, ๋ฉ์์ง ๋ฐ๋์ ํฌ๊ธฐ, ์์ถ, ์ธ์ฆ, ์์ฒญ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ ) ์ ๋ณด, ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด, ์บ์ ๊ด๋ฆฌ ์ ๋ณด...
- ํ์ค ํค๋๊ฐ ๋๋ฌด ๋ง์
- ํ์์ ์์์ ํค๋ ์ถ๊ฐ ๊ฐ๋ฅ
- helloworld: hihi
- ์ค์ ์ ์กํ ๋ฐ์ดํฐ
- HTML ๋ฌธ์, ์ด๋ฏธ์ง, ์์, JSON ๋ฑ๋ฑ byte๋ก ํํํ ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
- HTTP๋ ๋จ์ํ๋ค. ์คํ๋ ์ฝ์ด๋ณผ๋ง...
- HTTP ๋ฉ์์ง๋ ๋งค์ฐ ๋จ์
- ํฌ๊ฒ ์ฑ๊ณตํ๋ ํ์ค ๊ธฐ์ ์ ๋จ์ํ์ง๋ง ํ์ฅ ๊ฐ๋ฅํ ๊ธฐ์
- HTTP
๋ฉ์์ง
์ ๋ชจ๋ ๊ฒ์ ์ ์ก - HTTP ์ญ์ฌ HTTP/1.1์ ๊ธฐ์ค์ผ๋ก ํ์ต
- ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
- ๋ฌด์ํ ํ๋กํ ์ฝ(์คํ ์ด์ค๋ฆฌ์ค)
- HTTP ๋ฉ์์ง
- ๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
- ์ง๊ธ์ HTTP ์๋