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
โก ์๋ฒ์ธก์์ ์ค๋ฅ๊ฐ ๋ฌ์ ๋
์ฐ์์...์๋ด๋ ํจ์ฌ ๊น๋ํ๊ณ ์์ธํ๊ฒ ์ ๋ฆฌ ์ํ์ จ๋๋ฐ์?๐๐