Way to developer
๋ก๊ทธ์ธ
Way to developer
๋ก๊ทธ์ธ
[210715 TIL] HTTP
Choi Rim
ยท
2021๋ 7์ 15์ผ
ํ๋ก์ฐ
0
TIL
http
0
Way to developer
๋ชฉ๋ก ๋ณด๊ธฐ
17/21
ํต์ ๊ณผ HTTP
์ปดํจํฐ๋ค๋ผ๋ฆฌ๋ ์๋ก ์ํตํ๋ ์ธ์ด๊ฐ ์๋ค.
๊ทธ๊ฒ์ด ๋ฐ๋ก HTTP์ด๋ค.
H
yper
T
ext
T
ransfer
P
rotocol
HyperText
๋จ์ํ ํ ์คํธ๊ฐ ์๋๊ณ ๋ฌธ์์ ๋ฌธ์๊ฐ ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์์ ๋ปํจ
Transfer
์ ์กํ๋ค
HTML๋ก ๋ง๋ ์นํ์ด์ง ๋ฌธ์(ํ์ผ)์ ๋ณด๋ธ๋ค.
Protocol
์ปดํจํฐ๋ผ๋ฆฌ ์ด๋ป๊ฒ HTMLํ์ผ์ ์ฃผ๊ณ ๋ฐ์ ์ง์ ๋ํ ์ํต ๋ฐฉ์ ๋๋ ์ฝ์
๊ธ์์ ๊ธ์๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ ๋ฌธ์(HTML)๋ฅผ ์ปดํจํฐ๋ผ๋ฆฌ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ธฐ ์ํ ํต์ ์ฝ์(๊ท์ฝ)
์ฌ์ฉ์๊ฐ Request๋ฅผ ํ๋ฉด ์๋ฒ๊ฐ Response๋ฅผ ๋ณด๋ด์ค๋ค.
HTTP์ ๋๊ฐ์ง ํน์ง
Request & Response
Request : "์๋ฒ์ผ ๋๋ hyerim์ด์ผ ๋ก๊ทธ์ธ ์์ผ์ค๋?"
Response : "๋ก๊ทธ์ธ์ ์ฑ๊ณตํ์ต๋๋ค!"
Stateless
์ํ์์
HTTP ๊ฐ๋ณ ํต์ ์ ๋ชจ๋ ๋ ๋ฆฝ์ ์ด์ด์, ๊ณผ๊ฑฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กดํ์ง ์๋๋ค.
์ฒซ๋ฒ์งธ ํต์
Request : "์๋ฒ์ผ ๋๋ hyerim์ด์ผ ๋ก๊ทธ์ธ ์์ผ์ค๋?"
Response : "๋ก๊ทธ์ธ์ ์ฑ๊ณตํ์ต๋๋ค!"
๋๋ฒ์งธ ํต์
Request : "์๋ฒ์ผ ๋ ์๊น ๋ก๊ทธ์ธ ํ์ด. ๋ก๊ทธ์ธ ์์ผ์ค๋?"
Response : "๋๊ตฌ์ธ์?"
HTTP๋ ๊ธฐ์ต์์ค์ฆ์ ๊ฑธ๋ ค์๋ค..
์ฐ๋ฆฌ์ ์์ฒญ์ ์ฐ์์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๊ทธ๊ฒ์ HTTP๋ ๊ธฐ์ตํ์ง ๋ชปํ๋ค.
์ฅ์ ์ ๊ฐ๊ฐ์ ํต์ ๋ค์ ์ํ๋ฅผ ์ ์ฅํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ ๋์์ธ์ด ๊ฐ๋จํด์ง๋ค.
๋จ์ํ ์๋ต์ ๋ฐ๋ฅธ ์์ฒญ๋ง ๋ณด๋ด๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฒฐํ๋ค.
๋จ์ ์ ๋ณด๋ผ๋๋ง๋ค ํ์ํ ์ ๋ณด๋ค์ ํ๋ฒ์ ๋ด์ ๋ณด๋ด์ฃผ์ด์ผ ํ๋ค.
ํ ํฐ
HTTP๋ ์ด์ ์์ฒญ์ ๊ธฐ์ตํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ์ฅํด์ค๋ค.
ํ ํฐ์ด๋ผ๋ ID์นด๋๋ฅผ ๋ก๊ทธ์ธ ์ฐฝ๊ตฌ์์ ์ฐ์ด์ ๋ค์ด๊ฐ๋ ๊ฒ์ฒ๋ผ!
Request ๋ฉ์ธ์ง ๊ตฌ์กฐ
Start Line
HTTP method
์์ฒญ์ด ์๋ํ ์ก์ ์ ์ ์
GET, POST
Request target
HTTP version
GET / login HTTP /1.1
Headers
์์ฒญ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๋ถ๋ถ
๊ฐ์ฒด, ๋์ ๋๋ฆฌ {key: value} ์ ํํ
Headers : {
Host : www.wecode.co.kr
User-Agent: chrome
Context-Type : application/json
Content-Length : 50
}
Body
์์ฒญ์ ์ค์ ๋ด์ฉ
Response ๋ฉ์ธ์ง ๊ตฌ์กฐ
Status Line
์์ฒญ์ ๋ํ ์ํ๋ฅผ ๋ํ๋
HTTP version
Status Code
Status Text
HTTP/1.1 404 Not Found
Headers
Body
HTTP Request Methods
request method
GET
๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ๋ง ํ ๋ ์ฌ์ฉ
Body์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค.
POST
๋ฐ์ดํฐ๋ฅผ ์์ฑ, ์์ ํ ๋ ์ฌ์ฉ
Body์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค.
DELETE
์๋ฒ์ ์ ์ฅ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉ
Body์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค.
๋ฃ์ ์๋ ์์ง๋ง HTTP ํต์ ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ด๋์ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๋ธ๋ผ์ฐ์ ์ค chrome์ DELETE ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด body๋ฅผ ์ฝ์ด์ค์ง ์๋๋ค.
๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅด์ง๋ง ์์ ํ์ง ์๊ธฐ๋๋ฌธ์ Body์ ๋ด์ง ์๋ ๊ฒ์ด ์ข๋ค.
status code
Success
์๋ต์ด ์ ๋๋ก ๋์์ ๋์ ์ํ ์ฝ๋
200 : OK
201 : Created
Error
์๋ฌ๊ฐ ๋์ ์๋ต์ด ์ ๋๋ก ๋์ง ์์์ ๋์ ์ํ ์ฝ๋
400 : Bad Request
401 : Unauthorized
403 : Forbidden
๊ถํ ์์
404 : Not Found
์์ฒญํ ํ์ด์ง๋ ๋ฐ์ดํฐ๊ฐ ์์
์์ฒญ์ ๋ํ ์๋ต
ํ๋ก ํธ ๋ถ๋ถ์ ๋ํ ์๋ฌ!
Server Error
500 : Internal Server Error
์๋ฒ๊ฐ ํฐ์ก์ด์...
Choi Rim
https://rimi0108.github.io/
ํ๋ก์ฐ
์ด์ ํฌ์คํธ
[210714 TIL] Git, Github
๋ค์ ํฌ์คํธ
[210715 TIL] Database
0๊ฐ์ ๋๊ธ
๋๊ธ ์์ฑ