HyperText Transter Protocol
- HyperText โก HTML, ์ฆ ๋งํฌ์ ์ธ์ด๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ ๋ฌธ์๊ฐ ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์์ ๋ปํจ
- Transfer โก HTML๋ก ๋ง๋ ์นํ์ด์ง ๋ฌธ์(ํ์ผ)๋ฅผ ๋ณด๋ธ๋ค
- Protocol โก ์ปดํจํฐ๋ผ๋ฆฌ ์ด๋ป๊ฒ htmlํ์ผ์ ์ฃผ๊ณ ๋ฐ์์ง์ ๋ํ ์ํต๋ฐฉ์ ๋๋ ์ฝ์
โ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋(Request & Response), HTTP ๊ท์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์ํตํ ์ ์๋ค.(์ํต๋ฐฉ์, ์ฝ์)
๐ http vs https
http(HyperText Tranfer Protocol)
์ธํฐ๋ท์์ ์น ์๋ฒ์ ์ฌ์ฉ์ ์ปดํจํฐ์ ์ค์น๋ ์น ๋ธ๋ผ์ฐ์ ์ฌ์ด์ ๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ ์ํ ํต์ ๊ท์ฝ์ด๋ค.
http ์๋ฒ๋ ๊ธฐ๋ณธ ํฌํธ์ธ80๋ฒ ํฌํธ์์ ์๋น์ค ๋๊ธฐ ์ค์ด๊ณ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )๊ฐ TCP 80 ํฌํธ๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ๋ฉด ์๋ฒ๋ ์์ฒญํด ์๋ตํ๋ฉด์ ์๋ฃ(์ ๋ณด)๋ฅผ ์ ์กํ๋ค.
์ํธํ ๋์ง ์์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ฅผ ๊ฐ์ฒญํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ๋ค.HTTP๋
TCP/IP์์์ ์๋ํ๋ค. HTTP๋ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ Stateless ํ๋กํ ์ฝ์ด๋ฉฐ Method, Path, Version, Headers, Body ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
https(HyperText Transfer Protocol over Secure Socket Layer)
http์ ๊ฑฐ์ ์ ์ฌํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ๋ณด์ ์์๊ฐ ์ถ๊ฐ๋์๋ค๋ ๊ฒ์ด ์ฐจ์ด์ ์ด๋ค.
https๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ชจ๋ ํต์ ๋ด์ฉ์ด์ํธํ๋๋ค.HTTPS๋
HTTP์ ๋ฐ์ดํฐ ์ํธํ๊ฐ ์ถ๊ฐ๋ ํ๋กํ ์ฝ์ด๋ค. HTTPS๋ HTTP์ ๋ค๋ฅด๊ฒ443๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋คํธ์ํฌ ์์์ ์ค๊ฐ์ ์ 3์๊ฐ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋๋ก ๊ณต๊ฐํค ์ํธํ๋ฅผ ์ง์ํ๊ณ ์๋ค.[ ๊ณต๊ฐํค/๊ฐ์ธํค ]
HTTPS๋ ๊ณต๊ฐํค/๊ฐ์ธํค ์ํธํ ๋ฐฉ์์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ์๋ค. ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ ์๋ก๋ฅผ ์ํ 1์์ ํค์ด๋ค.
- ๊ณต๊ฐํค: ๋ชจ๋์๊ฒ ๊ณต๊ฐ๊ฐ๋ฅํ ํค
- ๊ฐ์ธํค: ๋๋ง ๊ฐ์ง๊ณ ์๊ณ ์์ด์ผ ํ๋ ํค
๊ณต๊ฐํค์ ๊ฐ์ธํค๋ก ์ํธํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
๊ณต๊ฐํค ์ํธํ: ๊ณต๊ฐํค๋ก ์ํธํ๋ฅผ ํ๋ฉด ๊ฐ์ธํค๋ก๋ง ๋ณตํธํํ ์ ์๋ค. ๐ ๊ฐ์ธํค๋ ๋๋ง ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก, ๋๋ง ๋ณผ ์ ์๋ค.
๊ฐ์ธํค ์ํธํ: ๊ฐ์ธํค๋ก ์ํธํํ๋ฉด ๊ณต๊ฐํค๋ก๋ง ๋ณตํธํํ ์ ์๋ค. ๐ ๊ณต๊ฐํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐ๋์ด ์์ผ๋ฏ๋ก, ๋ด๊ฐ ์ธ์ฆํ ์ ๋ณด์์ ์๋ ค ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.๊ฐ์ธ ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด HTTPS๋ฅผ ์ด์ฉํด์ผ ํ์ง๋ง, ๋จ์ํ ์ ๋ณด ์กฐํ ๋ฑ๋ง์ ์ฒ๋ฆฌํ๊ณ ์๋ค๋ฉด HTTP๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
(1) Request / Response (Front ์์ฒญ/ Back ์๋ต)
(2) Stateless (์ํ๊ฐ ์์)
ex) ์ฒซ ๋ฒ์งธ ํต์ ์ ๋ํ ์ ๋ณด(๋ก๊ทธ์ธ)๊ฐ ๋จ์์์ง ์๊ธฐ ๋๋ฌธ์, ํ๋ก ํธ์์ ๋ ๋ฒ์งธ ํต์ ์ ๋ณด๋ผ ๋(๋์์ ์์ฒญ), ์ฒซ ๋ฒ์งธ ํต์ ์ ๋ํ ์ ๋ณด๋ ๋ค์ ๋ณด๋ด์ผ ํ๋ค.
(ํ์๋ง ๋์์์ ์์ฒญํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ์ธ ์ ๋ณด ํ์ - front๊ฐ ํ ํฐ ์ ๋ณด ํจ๊ป ๋ณด๋ด์ค)
โก ๊ณ ์ ํToken์ ์ด์ฉํ์ฌ ๊ณ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ ์ ์๋ค.

๐ Start Line
POST : HTTP ๋ฉ์๋ โจโจโจuser/login : ์ด๋๋ก ๋ณด๋ผ์ง์ ๋ํ ์ฃผ์(๋ฐฑ์๋์์ ์ ํด๋์)HTTP/1.1 : HTTP ๋ฒ์ ์ ๋ณด๐ Headers (๊ฐ์ฒด๋ก ๊ตฌ์ฑ )
Host : ์ด๋์ ๋ณด๋ด๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋คContent : body์ ์ด๋ค ์ ๋ณด๋ฅผ ๋ด์์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค๐ Body (๊ฐ์ฒด๋ก ๊ตฌ์ฑ )
request ํ ๋, ์ด๋ค ์ ๋ณด๋ฅผ ๋ด์์ง์ ๋ํ ๋ด์ฉ
๐ง HTTP Request Methods
GET
โก body์ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฑ์๋์๊ฒ ๋ฐ์ดํฐ๊ฐ์ (ํ๋ก ํธ๋ก) ๋ณด๋ด๋ฌ๋ผ๋ ์๋ฏธ
โก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ๋ง ํ ๋ ์ฌ์ฉ
โก ์นํ์ด์ง์ ์ ์ํด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋ (ex.๋ก๊ทธ์ธ ์์ฒญ)
โ ๋ก๊ทธ์ธ ์์ฒญํ ๋, ํ ํฐ๋ ํจ๊ป ๋ณด๋ธ๋ค
POST
โก body์ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก (๋ฐฑ์๋์๊ฒ) ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ฌ๋ผ๊ณ ์์ฒญํ๋ ์๋ฏธ
โก ๋ฐ์ดํฐ๋ฅผ ์์ฑ / ์์ ํ ๋ ์ฌ์ฉ
โก Body์ ๋ด๋ ๋ด์ฉ์ด ํต์ฌ! (ex.์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ์์ฒญ)
โ client๊ฐ ํ์ํ ๋ด์ฉ์ body์ ๋ด์์ server์ ๋ณด๋ธ๋ค
DELETE
โก ์๋ฒ์ ์ ์ฅ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉ


๐ Start Line (์๋ต ์ํ line - 200 OK๋ ์์ฒญ์ด ์ ์ฒ๋ฆฌ๋์๋ค๋ ๋ป)
HTTP/1.1 : HTTP ๋ฒ์ ์ ๋ณด200 : ์์ฒญ(Request)์ ์ ์ฒ๋ฆฌํ์ ๋OK : status message (Status Code์ ๋ํด ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ๋ฉ์์ง)๐ Headers
Host : ์ด๋ค ์ปดํจํฐ๊ฐ ๋ณด๋๋์ง์ ๋ํ ์ฃผ์Server : ์๋ฒ์ ์ฃผ์Content-Type : body์ ๋ํ ์ฝํ
์ธ ํ์
Content-Length : body์ ๋ํ ์ฝํ
์ธ ๊ธธ์ด๐ Body
์ ๋๋ก ์ ๋ฌ๋์์ ๋, SUCCESS ๋ฑ์ ๋ฉ์์ง๊ฐ return
token(์๋ฒ์์ ๋ฐ๊ธํ ํ ํฐ, ์ฌ์ฉ์์ ๋ํ ์ธ์ํ์ ๊ฐ์ ์ญํ )์ ๋ํ ๋ด์ฉ ์ ๋ฌ
โก ์ธ์ฆ&์ธ๊ฐ์ ๊ด๋ จ๋ ๋ด์ฉ ํฌํจ
๐ง Status Code
200โก ์์ฒญ(Request)์ ์ ์ฒ๋ฆฌํ์ ๋ return
201โก ์์ฒญ(Request)ํ ๋ body์ ๋ด๊ธด ๋ด์ฉ์ด server์ ์ ์ ์ฅ๋์ ๋ return๐ช Client์ธก error
400โก ์์ฒญ์ด ์๋ชป๋์์ ๋(client์ธก์์ ์๋ชป๋ ์ ๋ณด(์ ๋ ฅ)๋ก ์์ฒญ์ ํ์ ๋) return (Bad Request)
401โก ์์ฒญ(Request)์ ๋ํด ๊ถํ์ด ์์ด์ ์ฒ๋ฆฌํ์ง ๋ชปํ์ ๋ return (Unauthorized)
ex. ํ์์ด ์๋ ์ฌ๋์ด ๋ก๊ทธ์ธ์ ์๋ํ์ ๋
403โก ์์ฒญ(Request)์ ๋ํด ๊ถํ์ด ์์ด์ ์ฒ๋ฆฌํ์ง ๋ชปํ์ ๋ return (Forbidden)
ex. ๋ฎ์ ๋ฑ๊ธ์ ๊ฐ์ง user๊ฐ ๋์ ๋ฑ๊ธ์ user๋ง ์ด์ฉํ ์ ์๋ ์๋น์ค์ ์ ๊ทผํ ๋
(error๋ฉ์์ง๋ ๋ฐฑ์๋์์ ์ง์ ํ๋ค. ์ ๊ทผ ๊ถํ์ ๋ํด ๋ง๋๋ค)
404โก ์์ฒญ(Request)์ ๋ํด ์๋ฒ์์ ์ฐพ์ ์ ์๋ ๋ฐ์ดํฐ์ผ ๋ return (Not Found)
ex. ์ฃผ์๋ฅผ ์๋ชป ์ ๋ ฅ ํ์ ๋๐ช Server์ธก error
500โก ์๋ฒ์ธก์์ ์ค๋ฅ๊ฐ ๋ฌ์ ๋
์ฐ์์...์๋ด๋ ํจ์ฌ ๊น๋ํ๊ณ ์์ธํ๊ฒ ์ ๋ฆฌ ์ํ์ จ๋๋ฐ์?๐๐