์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Security
- Firebase
- JPA
- BBangting
- springboot
- Community-App
- ์์ฒญ
- API
- BPM
- ์ฑ๊ฐ๋ฐ
- ๊น์ํ
- MySQL
- kotlin
- Inflearn
- docker
- log
- Spring
- MVC
- Mapping
- PROJECT
- Logging
- HTTP
- Today
- Total
yeon's blog
[HTTP ์น ๊ธฐ๋ณธ ์ง์] HTTP ๋ฉ์๋ - HTTP ๋ฉ์๋์ ์์ฑ ๋ณธ๋ฌธ
๐ฑ HTTP Method์ ์์ฑ
1. ์์ (Safe Methods)
ํธ์ถํด๋ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค.
- GET์ ๋จ์ํ ์กฐํ๋ง ํ๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค. ํ๋ฒ ํธ์ถํด๋ ์ฌ๋ฌ๋ฒ ํธ์ถํด๋ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์์์ ์์ ํ๋ค.
- POST, PUT, PATCH, DELETE๋ ์์ ํ์ง ์๋ค.
- ๋ง์ฝ์ ๊ทธ๋๋ ๊ณ์ ํธ์ถํด์ ์๋ฒ์์ ๋ก๊ทธ๊ฐ ๊ณ์ ์๊ฒ๋์ ์๋ฒ ์ฅ์ ๊ฐ ์ผ์ด๋ ๋
- → ์์ ์ ๊ทธ๋ฐ ๋ถ๋ถ๊น์ง ๊ณ ๋ คํ์ง ์๋๋ค. ์์ ์ ํด๋น ๋ฆฌ์์ค๋ง ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ด๋ค.
2-1. ๋ฉฑ๋ฑ(Idempotent Methods)
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
- GET์ ํ ๋ฒ ์กฐํํ๋ ๋ ๋ฒ ์กฐํํ๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ์กฐํ๋๋ค.
- PUT์ ๊ฒฐ๊ณผ๋ฅผ ๋์ฒดํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ํด๋ ์ต์ข ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
- DELETE๋ ๊ฒฐ๊ณผ๋ฅผ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ํด๋ ์ญ์ ๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
- PUT์ ๋ฉฑ๋ฑ์ด ์๋๋ค. ๋ ๋ฒ ํธ์ถํ๋ฉด ๊ฐ์ ๊ฒฐ์ ๊ฐ ์ค๋ณตํด์ ๋ฐ์ํด์ ์๋ก์ด ๋ฆฌ์์ค๋ก ๊ตฌ๋ณ์ด ๋๋ค.
์ฌ์ฉ์ 1 : GET โก๏ธ usernae: A, age: 20
๋ฉฑ๋ฑ์ ์ธ๋ถ ์์ธ์ผ๋ก ์ค๊ฐ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ๊น์ง ๊ณ ๋ คํ์ง ์๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ์์ฒญ์ ๋๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ์์ฒญํ์ ๋๋ง ๋ฉฑ๋ฑํ๋ค.
์ฆ, ๋ฉฑ๋ฑ์ ๋์์ฑ ๋ฌธ์ ๊น์ง ๊ณ ๋ คํ์ง ์๋๋ค.
2-2. ๋ฉฑ๋ฑ์ ํ์ฉ
์๋ ๋ณต๊ตฌ ๋งค์ปค๋์ฆ๋ก ํ์ฉํ ์ ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ DELETE๋ฅผ ํธ์ถํ๋๋ฐ ์๋ฒ์์ ์ ๋๊ณ ์๋์ง ์ ๋๊ณ ์๋์ง ์๋ต์ด ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์๋ DELETE๋ฅผ ์ฌ์๋ ํด๋ ๋ฉฑ๋ฑํ๋ค. ์ค๋ฌด์์ ์ด๋ฐ ์ ๋ฐ์ ์ผ๋ก ์๋ ๋ณต๊ตฌ ๋งค์ปค๋์ฆ์ ๋ง์ด ์ฌ์ฉํ๋ค.
Q: ์ฌ์์ฒญ ์ค๊ฐ์ ๋ค๋ฅธ ๊ณณ์์ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํด๋ฒ๋ฆฌ๋ฉด?
- ์ฌ์ฉ์1: GET -> username: A, age: 20
- ์ฌ์ฉ์1: GET -> username: A, age: 20
- ์ฌ์ฉ์1: GET -> username: A, age: 20
A: ๋ฉฑ๋ฑ์ ์ธ๋ถ ์์ธ์ผ๋ก ์ค๊ฐ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ ๊น์ง๋ ๊ณ ๋ คํ์ง ์๋๋ค!
3. ์บ์๊ฐ๋ฅ(Cacheable Methods)โจโจโจ
์น ๋ธ๋ผ์ฐ์ ์ ์ฉ๋์ด ํฐ ์ด๋ฏธ์ง๋ฅผ ํ๋ฒ ์์ฒญ์ ํ๋ฉด ๊ทธ ๋ค์์ ๋๊ฐ์ด ์ฉ๋์ด ํฐ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ ํ์์๋ค. ๋๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์์ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ฉด ์ค๋ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋์ ๋ก์ปฌ PC์ ์น ๋ธ๋ผ์ฐ์ ์ ์ฅ์ ํ๊ณ ์์ ๋ ์บ์๋ผ๊ณ ํ๋ค.
์บ์๋ GET, HEAD, POST, PATCH ๊ฐ๋ฅ ํ์ง๋ง ์ค์ ๋ก๋ GET, HEAD ์ ๋๋ง ์บ์๋ก ์ฌ์ฉํ๋ค. POST, PATCH๋ ์บ์๋ฅผ ํ๋ ค๋ฉด ๋ณธ๋ฌธ ๋ด์ฉ์ผ๋ก ๋ฆฌ์์ค๋ ์บ์ ํค๊ฐ ๋ง์์์ผ ๋๋๋ฐ ๋ณต์กํด์ ๊ตฌํ์ด ์ฝ์ง ์๋ค. GET, HEAD๋ URI๋ง ์บ์ ํค๋ก ์บ์ํด์ ๊ฐ๋จํ๋ค.