๋ชฉ์ฐจ
HTTP ๋?
HTTP๋ HTML ๋ฌธ์์ ๊ฐ์ ๋ฆฌ์์ค๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํด์ฃผ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ (ํด๋ผ์ด์ธํธ-์๋ฒ ํ๋กํ ์ฝ)
* ํ๋ก์ : ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์์ ๋์ํ๋ ๊ฒ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ๋ถ๋ฅด๋ ๋ง, ํ๋จ์ ๊ธฐ๋ฅ๋ค์ ์ํ ํ ์ ์๋ค.
- ์บ์ฑ (์บ์๋ ๊ณต๊ฐ ๋๋ ๋น๊ณต๊ฐ๊ฐ ๋ ์ ์์ต๋๋ค (์: ๋ธ๋ผ์ฐ์ ์บ์))
- ํํฐ๋ง (๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ค์บ, ์ ํด ์ปจํ ์ธ ์ฐจ๋จ(์๋ ๋ณดํธ) ๊ธฐ๋ฅ)
- ๋ก๋ ๋ฐธ๋ฐ์ฑ (์ฌ๋ฌ ์๋ฒ๋ค์ด ์๋ก ๋ค๋ฅธ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ํ์ฉ)
- ์ธ์ฆ (๋ค์ํ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ ์ ์ด)
- ๋ก๊น (์ด๋ ฅ ์ ๋ณด๋ฅผ ์ ์ฅ)
HTTP ํน์ง
- ๋ฌด์ํ(Stateless) : HTTP๋ ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ณ ,๊ฐ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋จ, ์๋ฒ๋ ์์ฒญ ๊ฐ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์งํ์ง ์์ผ๋ฏ๋ก ํจ์จ์ ์ด์ง๋ง, ์ํ๋ฅผ ์ ์ฅํด์ผ ํ ๊ฒฝ์ฐ ์ฟ ํค, ์ธ์ ๋๋ ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ : ํด๋ผ์ด์ธํธ๋ ์์ฒญ(Request)์ ๋ณด๋ด๊ณ , ์๋ฒ๋ ์๋ต(Response)์ ๋ฐํํฉ๋๋ค.
- ํ ์คํธ ๊ธฐ๋ฐ ํ๋กํ ์ฝ : ์์ฒญ๊ณผ ์๋ต ๋ฉ์์ง๊ฐ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํํ๋ก ์์ฑ๋ฉ๋๋ค.
- ํ์ฅ์ฑ : ํค๋๋ฅผ ์ถ๊ฐํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ(์ธ์ฆ, ๋ฐ์ดํฐ ํ์ ์ง์ ๋ฑ)์ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
- ์บ์ฑ ์ง์ : HTTP๋ ์บ์ฑ์ ํตํด ๋ฐ์ดํฐ ์ ์ก ํจ์จ์ฑ์ ๋์ ๋๋ค.
- ๋ณด์ : HTTPS(SSL/TLS๋ฅผ ์ฌ์ฉํ๋ HTTP) ๋์ .
- ์๋ : ํด๊ฒฐ: HTTP/2, HTTP/3.
HTTP ๊ตฌ์กฐ
- ์์ฒญ ๋ฉ์ธ์ง (Request Message)
- HTTP ๋ฉ์๋
- ์์ฒญ URL (๊ฐ์ ธ์ค๋ ค๋ ๋ฆฌ์์ค์ ๊ฒฝ๋ก)
- HTTP ํ๋กํ ์ฝ ๋ฒ์
- Header ( ์๋ฒ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ์ ํ์ ํค๋ )
- Body ( POST์ ๊ฐ์ ๋ช ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ํ, ์ ์ก๋ ๋ฆฌ์์ค๋ฅผ ํฌํจํ๋ ์๋ต์ ๋ณธ๋ฌธ)
- ์๋ต ๋ฉ์ธ์ง (Response Messge)
`HTTP/1.1 404 Not Found.`
- HTTP ํ๋กํ ์ฝ ๋ฒ์ | ์ํ ์ฝ๋ ( ์์ฒญ์ ์ฑ๊ณต ์ฌ๋ถ์, ๊ทธ ์ด์ ) | ์ํ ๋ฉ์์ง ( ์๋ฌด๋ฐ ์ํฅ๋ ฅ์ด ์๋, ์ํ ์ฝ๋์ ์งง์ ์ค๋ช )
- Header ( HTTP ํค๋๋ค , ์์ฒญ ํค๋์ ๋น์ท )
- Body (์ ํ ์ฌํญ์ผ๋ก ๊ฐ์ ธ์จ ๋ฆฌ์์ค๊ฐ ํฌํจ๋๋ ๋ณธ๋ฌธ)
HTTP ์๋ ์๋ฆฌ
๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ(Request) ์ ์๋ต (Response) ์ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
1) ํด๋ผ์ด์ธํธ๊ฐ TCP(Transmission Control Protocol) ์ฐ๊ฒฐ
2) ํด๋ผ์ด์ธํธ๊ฐ HTTP ๋ฉ์์ง๋ฅผ ์๋ฒ์๊ฒ ์์ฒญ
3) ์๋ฒ๋ ์์ฒญ์ ๋ฐ์ ํด๋น ์์ ์ ์ํํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์์ฑ
4) ์๋ฒ๋ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฐํ
5) ํด๋ผ์ด์ธํธ๊ฐ TCP ์ฐ๊ฒฐ์ ๋ซ๊ฑฐ๋ ๋ค๋ฅธ ์์ฒญ๋ค์ ์ํด ์ฌ์ฌ์ฉ
HTTP ๋ฒ์ (Version)
- HTTP/0.9
- HTTP/1.0
- ๊ธฐ๋ณธ์ ์ธ ์์ฒญ๊ณผ ์๋ต.
- ์ฐ๊ฒฐ ์ฌ์ฌ์ฉ ๋ถ๊ฐ.( ๊ฐ ์์ฒญ/์๋ต์ ๋ํด ๋ณ๋์ TCP ์ฐ๊ฒฐ์ ์ผ = ๋นํจ์จ์ )
- HTTP/1.1
- ์ฐ๊ฒฐ ์ฌ์ฌ์ฉ (Keep-Alive) = ์ง์์ ์ธ ์ฐ๊ฒฐ์ ๊ฐ๋
- ๋ ๋์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ.
- ํค๋ ์ค๋ธ ๋ผ์ธ(HOL) ์ฐจ๋จ → ํ์ดํ๋ผ์ด๋ ๊ฐ๋
- HTTP/2
- ์บก์ํ๊ฐ ๋์ด์์ด์ /2 ๋ฒ์ ๋ถํฐ๋ ์ธ๊ฐ์ด ์ฝ์ ์ ์๋ค.
- ๋ฉํฐํ๋ ์ฑ(๋์์ ์ฌ๋ฌ ์์ฒญ ์ฒ๋ฆฌ).
- ํค๋ ์์ถ์ผ๋ก ํจ์จ์ฑ ์ฆ๊ฐ.
- HTTP/3
- UDP ๊ธฐ๋ฐ์ QUIC ํ๋กํ ์ฝ ์ฌ์ฉ.
- ๋น ๋ฅธ ์ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํฐ ์ ์ก.
https://axios-http.com/kr/docs/intro
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
https://docs.tosspayments.com/resources/glossary/http-protocol