HTTP ๋ฉ์๋ - GET, POST, PUT, PATCH, DELETE in Start line
by rlaehddnd0422ํ์ ์ ๋ณด ๊ด๋ฆฌ API๋ฅผ ๋ง๋ค๋ ค๊ณ ํ ๋, 5๊ฐ์ง ์๊ตฌ์ฌํญ์ด ์ฃผ์ด์ง๋ค๊ณ ํด๋ด ์๋ค.
1. ํ์ ๋ชฉ๋ก ์กฐํ
2. ํ์ ์กฐํ
3. ํ์ ๋ฑ๋ก
4. ํ์ ์์
5. ํ์ ์ญ์
API URI๋ฅผ ์ค๊ณํ ๋๋ ์ฐ์ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋์์ ๋ฐฐ์ ํ๊ณ ์ฐ์ ๋ฆฌ์์ค๋ถํฐ ์๋ณํ๋๋ก ํฉ์๋ค.
์ฌ๊ธฐ์์ ๋ฆฌ์์ค๋ 'ํ์' ์ด๊ฒ ์ฃ ?
๋ฆฌ์์ค๋ฅผ ์๋ณํ๊ณ URI ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ํ์ฉํด์ ์ค๊ณ๋ฅผ ํด๋ณด๋ฉด ์ด๋ ๊ฒ ํ ์ ์์ต๋๋ค.
1. ํ์ ๋ชฉ๋ก ์กฐํ /members
2. ํ์ ์กฐํ /members/{id}
3. ํ์ ๋ฑ๋ก /members/{id}
4. ํ์ ์์ /members/{id}
5. ํ์ ์ญ์ /members/{id}
URI๋ ๋ฆฌ์์ค๋ง ์๋ณํ๋๋ก ํด์ฃผ๊ณ ๋์์ ๋ถ๋ฆฌํ๋๋ก ํฉ์๋ค.
๋ฆฌ์์ค : ํ์
๋์ : ์กฐํ, ๋ฑ๋ก, ์ญ์ , ๋ณ๊ฒฝ
์ด์ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋์์ ์ํํ ์ ์์ต๋๋ค.
๋ฉ์๋๋ฅผ ์์๋ด ์๋ค.
HTTP ์ฃผ์ ๋ฉ์๋
- GET : ๋ฆฌ์์ค ์กฐํ
- POST : ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ฃผ๋ก ๋ฑ๋ก์ ์ฌ์ฉ
- PUT : ๋ฆฌ์์ค๋ฅผ ๋์ฒด, ์์ผ๋ฉด ์์ฑ
- PATCH : ๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
- DELETE : ๋ฆฌ์์ค ์ญ์
HTTP ๊ธฐํ ๋ฉ์๋
- HEAD : GET๊ณผ ๋์ผํ์ง๋ง, ๋ฉ์์ง ๋ถ๋ถ์ ์ ์ธํ, ์ํ ์ค๊ณผ ํค๋๋ง ๋ฐํ
- OPTIONS : ๋์ ๋ฆฌ์์ค์ ๋ํ ํต์ ๊ฐ๋ฅ ์ต์ (๋ฉ์๋)์ ์ค๋ช
- CONNECT : ๋์ ๋ฆฌ์์ค๋ก ์๋ณ๋๋ ์๋ฒ์ ๋ํ ํฐ๋์ ์ค์
- TRACE : ๋์ ๋ฆฌ์์ค์ ๋ํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฉ์์ง ๋ฃจํ๋ฐฑ ํ ์คํธ๋ฅผ ์ํ
HTTP - GET
- ๋ฆฌ์์ค ์กฐํ
- ์๋ฒ์ ์ ๋ฌํ๊ณ ์ถ์ ๋ฐ์ดํฐ๋ query๋ฅผ ํตํด์ ์ ๋ฌ
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
HTTP - POST
- ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญ ๋ฐ์ดํฐ ์ ๋ฌ
- ์๋ฒ๋ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ (์ ๊ท ๋ฆฌ์์ค ๋ฑ๋ก, ํ๋ก์ธ์ค ์ฒ๋ฆฌ)
์ด ๋ฆฌ์์ค URI์ POST์์ฒญ์ด ์ค๋ฉด ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๋ฆฌ์์ค๋ง๋ค ๋ฐ๋ก ์ ํด์ผ ํฉ๋๋ค.
POST๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋ฉ๋๋ค.
1. ์๋ฒ๊ฐ ์์ง ์๋ณํ์ง ์์ ๋ฆฌ์์ค ์์ฑ
ex) ์ ๊ท ์ฃผ๋ฌธ ์์ฑ
2. ๊ธฐ์กด ์์์ ๋ฐ์ดํฐ ์ถ๊ฐ
3. HTML ์์์ ์ ๋ ฅ๋ ํ๋์ ๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ก์ธ์ค์ ์ ๊ณต
ex) HTML FORM์ ์ ๋ ฅํ ์ ๋ณด๋ก ํ์ ๊ฐ์ , ์ฃผ๋ฌธ ๋ฑ์ ์ฌ์ฉ
4. ๊ฒ์ํ, ๋ด์ค ๊ทธ๋ฃน, ๋ฉ์ผ๋ง ๋ฆฌ์คํธ, ๋ธ๋ก๊ทธ or ์ ์ฌํ ๊ธฐ์ฌ ๊ทธ๋ฃน์ ๋ฉ์์ง ๊ฒ์
ex) ๊ฒ์ํ ๊ธ์ฐ๊ธฐ, ๋๊ธ ๋ฌ๊ธฐ ๋ฑ
HTTP - PUT
- body ๋ฆฌ์์ค๊ฐ ์๋ฒ์ ์์ผ๋ฉด ๋์ฒด, ์์ผ๋ฉด ์๋ก ์์ฑ. ์ฝ๊ฒ๋งํด ๋ฎ์ด์ฐ๊ธฐ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ URI๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
HTTP - PATCH
- ๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
์๋ฅผ๋ค์ด json ์ age์ usernameํ๋๊ฐ ์๋ค๊ณ ํด๋ด ์๋ค.
์๋ฒ์ members/100์ { age:20, username : "kim" } ์ด ์์๋
PATCH members/100 ... { "age":50 } ์ ์๋ฒ์ ๋ณด๋ด๋ฉด
์๋ฒ์ members/100 { age:50, username : "kim" } ์ผ๋ก ์์ ๋ฉ๋๋ค.
PUT๊ณผ ๋ฌ๋ฆฌ ๊ธฐ์กด ๋ด์ฉ์ด ์ง์์ง์ง ์์ต๋๋ค.
HTTP - DELETE
- ๋ฆฌ์์ค ์ ๊ฑฐ
HTTP ๋ฉ์๋์ ์์ฑ
1. ์์ - ํธ์ถ ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
์์ ๋ฉ์๋ : GET ( ๋ฆฌ์์ค ๋ณ๊ฒฝ x , ์ค๋ก์ง ์กฐํ )
2. ๋ฉฑ๋ฑ - ์ฌ๋ฌ ๋ฒ ํธ์ถํด๋ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ์ต๋๋ค.
๋ฉฑ๋ฑ ๋ฉ์๋ : GET, PUT, DELETE
POST X : ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋ฉด ๊ฐ์ ๊ฒฐ์ ๊ฐ ์ค๋ณตํด์ ๋ฐ์ํ ์ ์์.
PATCH๋ ์ ๋ฉฑ๋ฑํ์ง ์์๊น?
age = age + 1์ ๊ณ์ ํธ์ถํ๋ฉด age๊ฐ์ด ๊ณ์ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ..
ํ์ฉ : ์๋ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ / ์๋ฒ๊ฐ ์ ์ ์๋ต์ ์ฃผ์ง ๋ชปํ์ ๋, ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ์์ฒญ์ ํด๋ ๋๋์ง์ ๋ํ ํ๋จ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉํฉ๋๋ค.
3. ์บ์๊ฐ๋ฅ - ์๋ต ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์บ์ํด์ ์ฌ์ฉํด๋ ๋๋๊ฐ?
์บ์๊ฐ๋ฅ ๋ฉ์๋ : GET, POST, PATCH ์บ์๊ฐ๋ฅ ํ์ง๋ง ์ค์ ๋ก๋ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ GET, HEAD ์ ๋๋ง ์บ์๋ก ์ฌ์ฉ
'๐ CS > HTTP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTTP ์ํ์ฝ๋ / 1~5XX (0) | 2023.02.16 |
---|---|
HTTP ๋ฉ์๋ ํ์ฉ (0) | 2023.02.15 |
HTTP ( HyperText Transfer Protocol) (0) | 2023.02.15 |
URI(Uniform Resource Identifier) - URL, URN (0) | 2023.02.14 |
์ธํฐ๋ท ๋คํธ์ํฌ ํต์ - IP, TCP/UDP, PORT, DNS (0) | 2023.02.14 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422