๐ค๋ฐฐ์ ์์ฝํ๊ธฐ
๋ฉฑ๋ฑ์ฑ์ด๋?
ํ ๋ฒ ํธ์ถํ๋ ๋ ๋ฒ ํธ์ถํ๋ 100๋ฒ ํธ์ถํ๋ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ์ ๊ฒ์ ๋งํ๋๋ฐ HTTP ๋ฉ์๋์์๋ GET, PUT, DELETE๊ฐ ๋ฉฑ๋ฑํฉ๋๋ค.
โ๏ธ API URI ์ค๊ณ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ฆฌ์์ค ์๋ณ์ด๋ค!
URI๋ ๋ฆฌ์์ค๋ง ์๋ณํ๋ค.
๋ฆฌ์์ค์ ํด๋น ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก ํ๋ ํ์๋ฅผ ๋ถ๋ฆฌ
- ๋ฆฌ์์ค: ํ์
- ํ์: ์กฐํ, ๋ฑ๋ก, ์ญ์ , ๋ณ๊ฒฝ
๋ฆฌ์์ค๋ ๋ช ์ฌ, ํ์๋ ๋์ฌ
โ๏ธHTTP ๋ฉ์๋ ์ข ๋ฅ
GET : ๋ฆฌ์์ค ์กฐํ
POST : ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ฃผ๋ก ๋ฑ๋ก์ ์ฌ์ฉ
PUT : ๋ฆฌ์์ค๋ฅผ ๋์ฒด, ํด๋น ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ์์ฑ
PATCH : ๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
DELETE : ๋ฆฌ์์ค ์ญ์
OPTIONS : ๋์ ๋ฆฌ์์ค์ ๋ํ ํต์ ๊ฐ๋ฅ ์ต์ (๋ฉ์๋)์ ์ค๋ช (์ฃผ๋ก CORS์์ ์ฌ์ฉ)
โ GET
- ๋ฆฌ์์ค ์กฐํ
- ์๋ฒ์ ์ ๋ฌํ๊ณ ์ถ์ ๋ฐ์ดํฐ๋ query(์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ, ์ฟผ๋ฆฌ ์คํธ๋ง)์ ํตํด์ ์ ๋ฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์์ง๋ง, ์ง์ํ์ง ์๋ ๊ณณ์ด ๋ง์์ ๊ถ์ฅํ์ง ์์
โ POST
- ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๋ฉ์์ง ๋ฐ๋๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญ ๋ฐ์ดํฐ ์ ๋ฌ
- ์๋ฒ๋ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค. (๋ฉ์ธ์ง ๋ฐ๋๋ฅผ ํตํด ๋ค์ด์จ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค. )
- ์ฃผ๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ก ์ ๊ท ๋ฆฌ์์ค ๋ฑ๋ก, ํ๋ก์ธ์ค ์ฒ๋ฆฌ์ ์ฌ์ฉํ๋ค.
***
1. ์ ๋ฆฌ์์ค ์์ฑ(๋ฑ๋ก)
2. ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
3. ๋ค๋ฅธ ๋ฉ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ ๋งคํ ๊ฒฝ์ฐ
***
โ PUT
๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ์์ ํ ๋์ฒด, ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ์์ฑํ๋ค. (์ฝ๊ฒ ๋งํ๋ฉด ๋ฎ์ด๋ฒ๋ฆฐ๋ค. )
โ๏ธํด๋ผ์ธํธ๊ฐ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ค. (ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ URI๋ฅผ ์ง์ ํ๋ค. )
โ PATCH
๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
โ DELETE
๋ฆฌ์์ค ์ ๊ฑฐ
โ๏ธ HTTP ๋ฉ์๋์ ์์ฑ
1. ์์ (Safe Methods)
- ํธ์ถํด๋ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค.
โถGET๋ง ์์ ํจ
2. ๋ฉฑ๋ฑ (Idempotent Methods)
- ํ ๋ฒ ํธ์ถํ๋ ๋ ๋ฒ ํธ์ถํ๋ 100๋ฒ ํธ์ถํ๋ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ๋ค.
โถGET: ํ๋ฒ ์กฐํํ๋ , ๋ ๋ฒ ์กฐํํ๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์กฐํ๋๋ค.
โถPUT : ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํด๋ ์ต์ข ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
โถDELETE : ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํด๋ ์ญ์ ๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
(POST๋ ๋ฉฑ๋ฑ ์๋!! ์ค๋ณต ๋ฐ์ํ๋๊น!)
๋ฉฑ๋ฑ์ ํ์ฉํ๋ ์์
=> ์๋ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ!
์๋ฒ๊ฐ ์ ์ ์๋ต์ ๋ชป์ฃผ์์ ๋, ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ์์ฒญ์ ๋ค์ ํด๋ ๋๋๊ฐ์ ๋ํ ํ๋จ ๊ทผ๊ฑฐ๋ก ์ธ ์ ์๋ค.
3. ์บ์๊ฐ๋ฅ (Cacheable Methods)
์๋ต ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์บ์ํด์ ์ฌ์ฉํด๋ ๋๋๊ฐ?
GET, HEAD, POST, PATCH ์บ์ ๊ฐ๋ฅ
์ค์ ๋ก๋ GET, HEAD ์ ๋๋ง ์บ์๋ก ์ฌ์ฉํ๋ค. (POST, PATCH๋ ๊ตฌํ์ด ์ฝ์ง ์์)
๐ ์๋ชป๋ ๊ฐ๋ ์ ๋ฌ์ด ์๋ค๋ฉด ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค. ์ ์ ์ฑ์ฅ์ ํฐ ๋์์ด ๋ฉ๋๋ค๐ค
'๐ฌComputer Science > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] HTTP ์ํ์ฝ๋ โก๏ธ (0) | 2023.01.13 |
---|---|
[TIL] ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก (0) | 2023.01.10 |
[TIL] HTTP์ HTTP์ ํน์ง (0) | 2023.01.05 |
[TIL] ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ ํ๋ฆ (0) | 2023.01.04 |
[TIL] URI ์ ์ฒด ๋ฌธ๋ฒ, URI vs URL vs URN (0) | 2023.01.04 |