๐ ํ์ต ๋ชฉํ
- HTTP์ ํน์ง์ธ Stateless๋ฅผ ์ค๋ช ํ ์ ์๋ค.
- Request, Response ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํ ์ ์๋ค.
- HTTP request method์ ์ข ๋ฅ๋ฅผ ์๊ณ ์๋ก์ ์ฐจ์ด์ ์ ์ค๋ช ํ ์ ์๋ค.
- ๋ํ์ ์ธ Status code์ ์ข ๋ฅ๋ฅผ ์ค๋ช ํ ์ ์๋ค.
HTTP๋ HyperText Transfer Protocol์ ์ฝ์๋ก ์ปดํจํฐ ๊ฐ์ HTMLํ์ผ์ ์๋ก๊ฐ์ ์ํต์ ์คํด ์์ด ์ ๋ฌํ ์ ์๋๋ก ๋ง๋ค์ด์ง ์ํต ๊ท์ฝ์ ๋๋ค.
Stateless๋ HTTP์ ํน์ง์ค์ ํ๋๋ก ์ ์ ์ํ๊ฐ ์ ์ง๋์ง ์์์ ์๋ฏธํฉ๋๋ค. ์นดํ์์ ์๋ฃ๋ฅผ ์ฃผ๋ฌธํ ๋์ ๋ฉ๋ด์ ๋ํ ๊ฐ๊ฒฉ, ์ฌ์ด์ฆ ์ ๋ณด, ์ง๋ถ ๋ฐฉ์์ด ์ธ ๋จ๊ณ์ ์ง๋ฌธ์ ํตํด์ ์ฃผ๋ฌธ์ ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด, Stateless ์ํ์์๋ ๊ฐ๊ฐ์ ๋ํ ์ง๋ฌธ์ ๋๋ต๋ง ํ ๋ฟ, ๋ง์ง๋ง ๋จ๊ณ์์ ์ง๋ถํ ๋ ์์ ์ง๋ฌธํ ๋ฉ๋ด์ ๊ทธ์ ์ฌ์ด์ฆ ์ ๋ณด๋ ์ ์ฅ๋์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. HTTP๊ฐ Statelessํ ํน์ง์ ์ง๋๋ค ๋ณด๋, ํด๋ผ์ด์ธํธ๊ฐ ์ํ๋ ์๊ตฌ๋ฅผ ํ ๋, ํ๋ฒ์ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ผํฉ๋๋ค. ํ๋ง๋๋ก ์์ฝํด์, ๋ ๋ฆฝ์ ์ธ ์ํ์ ํ๋ HTTP๊ฐ ๊ณผ๊ฑฐ์ ํ๋ Request์ ๊ดํ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ๋งค Request๊ณผ์ ์์ ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ ์ ๋ณด๋ง์ ์๋ฒ์์ ์ฒ๋ฆฌํ์ฌ ๋ณด๋ด์ค๋ค๋ ํน์ง์ด ๋ฐ๋ก Stateless์ ๋๋ค.
HTTP request๋ ์ฌ์ค ํ๋ก ํธ์๋(ํด๋ผ์ด์ธํธ) ์์ ๋ฐฑ์๋(์๋ฒ)์ ์ผ(๋ฐ์ดํฐ ์ฒ๋ฆฌ)์ ์์ํ๊ฒ ํ๊ธฐ ์ํด ๋ณด๋ด๋ ๋ฉ์ธ์ง ์ ๋๋ค. ์ด ๋ฉ์ธ์ง์ ๊ตฌ์กฐ๋ ํฌ๊ฒ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
GET /login HTTP/1.1
# ํด์: GET ๋ฉ์๋๋ก login ์ด๋ผ๋ ์์ฒญ ํ๊ฒ์ HTTP 1.1 ๋ฒ์ ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๊ฒ ๋ค!
Headers: {
Host:
User-Agent:
Content-Type:
Content-Length:
Authorization:
}
ex) ๋ก๊ทธ์ธ ์์ ์๋ฒ์ ๋ณด๋ผ ์์ฒญ์ ๋ด์ฉ
Body: {
"user_email":"wecode@gmail.com" "user_password": "wecode"
}
HTTP/1.1 404 Not Found
# ํด์: HTTP 1.1 ๋ฒ์ ์ผ๋ก ์๋ตํ๊ณ ์๋๋ฐ, ํ๋ก ํธ์๋์์ ๋ณด๋ธ ์์ฒญ(ex. ๋ก๊ทธ์ธ ์๋)์ ๋ํด์
# ์ ์ ์ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์(Not Found) 404 ์ํ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ธ๋ค.
HTTP/1.1 200 SUCCESS
# ํด์: HTTP 1.1 ๋ฒ์ ์ผ๋ก ์๋ตํ๊ณ ์๋๋ฐ, ํ๋ก ํธ์๋์์ ๋ณด๋ธ ์์ฒญ์ ๋ํด์ ์ฑ๊ณตํ๊ธฐ ๋๋ฌธ์
# 200 ์ํ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ธ๋ค.
HTTP Request Method๋ ์์ฒญ์ด ์๋ํ ์ก์ ์ ์ ์ํ๋ค๊ณ ์๊ธฐํ๊ณ , ์ข ๋ฅ์๋ 3๊ฐ์ง๊ฐ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ์๋ฌ | ์ฑ๊ณต | ์๋ฒ์๋ฌ |
---|---|---|
400: Bad Request(์์ฒญ์ด ์๋ชป๋จ) | 200: OK(์ ๋๋ก ์ ๊ทผํ์๋, ์ฃผ๋ก GET๋ฉ์๋) | 500: Internal Server Error(ํด๋น์๋ฒ์์ ์๋ฌ๊ฐ ๋ ๊ฒฝ์ฐ) |
401: UnAuthorized(์ธ์ฆ์ด ๋์ง ์์ ์ฌ์ฉ์์ ์ ๊ทผ) | 201: Created(์ ์์ฑ์ด ๋์์๋, ์ฃผ๋ก POST๋ฉ์๋) | |
403: Forbidden(๊ถํ์ด ์๋ ์ฌ์ฉ์์ ์ ๊ทผ) | 204: No Content(์์ฒญ์ ์ฑ๊ณตํด ์๋ต ๋ฉ์์ง๊ฐ ์๋ ๊ฒฝ์ฐ, ์ฃผ๋ก DELETE๋ฉ์๋) | |
404: Not Found(์์ฒญํ URI๊ฐ ์กด์ฌํ์ง ์์) |
์ฌ์ค ์ฌ๋๋ค๋ผ๋ฆฌ๋ ์ธ์ด๊ฐ ๋ค๋ฅด๊ณ ๋ฌธํ๋ค๋ฅด๋ฉด ์ํต๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ ํ ์ ๋ฐ์ ์๋ ๋ฒ์ด๋ค. ์ปดํจํฐ๋ผ๊ณ ๋ค ํต์ผ๋ ํ์ฌ์์ ๋์ค์ง๋ ์๊ณ OS๋ฑ๋ ๋ค๋ฅด๋ค. ํ์ง๋ง ์ธํฐ๋ท์ ๋ค ์ฐ๊ฒฐ๋์๊ธฐ๋๋ฌธ์, ํผ๋์ค๋ฝ์ง ์๊ธฐ ์ํด ๊ท์ฝ์ด ํ์ํ๋ค๋๊ฒ์ ์๊ฒ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ๊ฐ๋ฐ์๋ก์จ HTTP์ ๋ํ ์ง์์ด ์์ง๋์ด์์ง ์์ผ๋ฉด, ๊ณค๋ํ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.