ํฐ์คํ ๋ฆฌ ๋ทฐ
๊น์ํ๋์ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
GET
- ๋ฆฌ์์ค ์กฐํ
- ์๋ฒ์ ์ ๋ฌํ๊ณ ์ถ์ ๋ฐ์ดํฐ๋ query(์ฟผ๋ฆฌ ํ๋ง๋ฆฌํฐ, ์ฟผ๋ฆฌ ์คํธ๋ง)์ ํตํด์ ์ ๋ฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์์ง๋ง, ์ง์ํ์ง ์๋ ๊ณณ์ด ๋ง์์ ๊ถ์ฅํ์ง ์์
GET /boards?title=hello HTTP/1.1
Host: localhost:8080
POST
- ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญ ๋ฐ์ดํฐ ์ ๋ฌ
- ์๋ฒ๋ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ํตํด ๋ค์ด์จ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ํ
- ์ฃผ๋ก ์ ๊ท ๋ฆฌ์์ค ๋ฑ๋ก, ํ๋ก์ธ์ค ์ฒ๋ฆฌ ๋ฑ์ ์ฌ์ฉ
์คํ ์์ POST
POST ๋ฉ์๋๋ ๋์ ๋ฆฌ์์ค๊ฐ ๋ฆฌ์์ค์ ๊ณ ์ ํ ์๋ฏธ ์ฒด๊ณ์ ๋ฐ๋ผ ์์ฒญ์ ํฌํจ๋ ํํ์ ์ฒ๋ฆฌํ๋๋ก ์์ฒญํฉ๋๋ค.
์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์
- ์ด ๋ฆฌ์์ค URI์ POST์์ฒญ์ด ์ค๋ฉด ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ ํด์ง ๊ฒ์ด ์์
- ์ฆ. ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๋ฆฌ์์ค๋ง๋ค ๋ฐ๋ก ์ ํด์ผํ๊ณ ์ด๊ฑด ๊ฐ๋ฐ์ ์์
- ์ ๋ฆฌ์์ค ์์ฑ
- ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ(๋ด๋ถ ๋ก์ง)
- ๋ค๋ฅธ ๋ฉ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ ๋งคํ ๊ฒฝ์ฐ
POST /boards HTTP/1.1
Content-Type: application/json
{
"title": "hello",
"content": "hi!"
}
PUT
- ์ฝ๊ฒ ๋งํด์ ๋ฎ์ด์ฐ๊ธฐ
- ๋ฆฌ์์ค๋ฅผ ์์ ํ ๋์ฒดํจ
- ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ๋์ฒด
- ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ์์ฑ
- ์ค์! ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค๋ฅผ ์๋ณ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ URI ์ง์
- ์ฆ. boards/10 ๊ฐ์ด 10๋ฒ ๊ฒ์๊ธ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ด์ผํจ.
- ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ ์์ด์ผ ํ๋ค๋ ์ ์์ POST์ ์ฐจ์ด์ ์ด ์์
๋ฆฌ์์ค๋ฅผ ์์ ํ ๋์ฒด
๊ธฐ์กด์ 10๋ฒ ๊ฒ์๊ธ์ด ๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์๋ค๊ณ ํด๋ณด์
{
"title" : "hello",
"content" : "hi"
}
์ด ์ํฉ์์ ๋ค์๊ณผ ๊ฐ์ด PUT ์์ฒญ์ ํ๋ฉด
PUT /boards/10 HTTP/1.1
Content-Type: application/json
{
"title": "hello",
}
10๋ฒ ๊ฒ์๊ธ์ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ ๋์ฒด๋๋ค
{
"title" : "hello",
}
PATCH
- ๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
- PUT๊ณผ ๋ฌ๋ฆฌ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ถ ๋ณ๊ฒฝํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค
- ์๋ ์์ ์ฒ๋ผ ์์ฒญ์ ๋ณด๋ด๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ ์ค title๋ง "hi"๋ก ๋ณ๊ฒฝํ๋ค.
- ์ฃผ์! PATCH๊ฐ ์ง์ ์๋๋ ์๋ฒ๊ฐ ์์ ์ ์์ → POST๋ก ํด๊ฒฐ
PATCH /boards/10 HTTP/1.1
Content-Type: application/json
{
"title": "hi",
}
DELETE
- ๋ฆฌ์์ค ์ญ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ ์์ด์ผํจ
DELETE /boards/10 HTTP/1.1
Host: localhost:8080
{
"title": "hi",
}
๊ธฐํ ๋ฉ์๋
- HEAD: GET๊ณผ ๋์ผํ์ง๋ง ๋ฉ์์ง ๋ถ๋ถ์ ์ ์ธํ๊ณ , ์ํ ์ค๊ณผ ํค๋๋ง ๋ฐํ
- OPTIONS: ๋์ ๋ฆฌ์์ค์ ๋ํ ํต์ ๊ธฐ๋ฅ ์ต์ (๋ฉ์๋)์ ์ค๋ช (์ฃผ๋ก CORS์์ ์ฌ์ฉ)
- CONNECT: ๋์ ์์์ผ๋ก ์๋ณ๋๋ ์๋ฒ์ ๋ํ ํฐ๋์ ์ค์
- TRACE: ๋์ ๋ฆฌ์์ค์ ๋ํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฉ์์ง ๋ฃจํ๋ฐฑ ํ ์คํธ๋ฅผ ์ํ
HTTP ๋ฉ์๋์ ์์ฑ
- ์์ (Safe Methods)
- ๋ฉฑ๋ฑ(Idenpotent Methods)
- ์บ์๊ฐ๋ฅ(Cacheable Methods)
๊ฐ ๋ฉ์๋๊ฐ ๊ฐ์ง๋ ์์ฑ๋ค
https://ko.wikipedia.org/wiki/HTTP
์์ (Safe)
- ํธ์ถํด๋ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค.
๋ฉฑ๋ฑ(Idenpotent)
- f(f(x)) = f(x)
- ํ ๋ฒ ํธ์ถํ๋ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋ ๊ฒฐ๊ณผ๋ ๊ฐ์์ผํจ.
- ๊ฐ์ ์์ฒญ์ ๋ํด์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
- ๋ฉฑ๋ฑ ๋ฉ์๋
- GET: ์ฌ๋ฌ๋ฒ ์กฐํํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์กฐํ๋๋ค.
- PUT: ๊ฒฐ๊ณผ๋ฅผ ๋์ฒด. ๋ฐ๋ผ์ ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํด๋ ์ต์ข ๊ฒฐ๊ณผ๋ ๊ฐ์
- DELETE: ๊ฒฐ๊ณผ๋ฅผ ์ญ์ . ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํด๋ ์ญ์ ๋ ๊ฒฐ๊ณผ๋ ๊ฐ์
- POST: ๋ฉฑ๋ฑ์ด ์๋. ๋ ๋ฒ ํธ์ถํ๋ฉด ๊ฐ์ ๊ฒฐ์ ๊ฐ ์ค๋ณตํด์ ๋ฐ์ํ ์ ์์
- GET์ ๋ํด์
์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด ๋ฉฑ๋ฑ์ด ์๋์ง ์๋?
๋ผ๋ ์๋ฌธ์ ์ด ์๊ธฐ์ง๋ง - ๋ฉฑ๋ฑ์ ์ธ๋ถ ์์ธ์ ์ํด์ ์ค๊ฐ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ๊น์ง ๊ณ ๋ คํ์ง ์๋๋ค.
- ๋ฐ๋ผ์ GET์ ๋ฉฑ๋ฑ์ด๋ผ๊ณ ํํํ ์ ์๋ค.
์บ์ ๊ฐ๋ฅ(Cacheable)
- ์๋ต ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์บ์ํด์ ์ฌ์ฉํด๋ ๋๋๊ฐ?
- GET, HEAD, POST, PATCH ์บ์๊ฐ๋ฅ
- ์ค์ ๋ก๋ GET, HEAD ์ ๋๋ง ์บ์๋ก ์ฌ์ฉํจ
- POST, PATCH๋ ๋ณธ๋ฌธ ๋ด์ฉ๊น์ง ์บ์ ํค๋ก ๊ณ ๋ คํด์ผํ๋๋ฐ ๊ตฌํ์ด ์ฝ์ง ์์.
๋ฐ์ํ
'BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ฆ ๋ ์ค๋ฅด๋ gRPC ํบ์๋ณด๊ธฐ (2) | 2022.12.04 |
---|---|
Nginx 403 (13 Permission denied) ํด๊ฒฐํ๊ธฐ (0) | 2021.10.30 |
JWT (0) | 2021.06.26 |
์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น(SOLID) (0) | 2021.06.12 |
HTTP ์ํ์ฝ๋ (0) | 2021.05.22 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
TAG
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- grpc client
- golang oomkilled
- 2๋ ์ฐจ ์๋ฒ ๊ฐ๋ฐ์
- ์ข์ ์์ง๋์ด
- Aws Reinvent 2023
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- rate limit
- 2023 ํ๊ณ
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- mysql
- ์ข์ ์ฝ๋๋ ๋ฌด์์ธ๊ฐ?
- ํด์
- Go
- ์ข์ ๊ฐ๋ฐ์
- HTTP
- ์ฝ๋ฉํ ์คํธ
- ์คํ/ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ถ์ ์ง๋
- ์ฅ์ ํ๊ณ
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- AWS re:Invent 2023
- kotlin s3 upload
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ์
- mysql ์คํ ๊ณํ
- ํ(Heap)
- Golang
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ