์ธํ๋ฐ ๊ฐ์ ์ค ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์์ด๋ผ๋ ๊ฐ์์ ๋ํ TIL์ ๋๋ค.
HTTP ๋ฉ์๋
- GET
- POST
- DELETE
- HTTP ๋ฉ์๋์ ์์ฑ
1. GET
์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์กฐํํ๊ฒ ๋ค๋ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. Request ๋ฉ์์ง์ request-target ๋ถ๋ถ์ query๋ฅผ ํตํด์ ์ด๋ค ๋ฆฌ์์ค๋ฅผ ์กฐํํ๊ณ ์ถ์ ์ง ์ ๋ฌํ ์ ์๋ค. ์ ์์ ์ผ๋ก ์๋ฒ์ ์ ๋ฌ๋๋ฉด ์๋ฒ๋ ํด๋น ๋ฆฌ์์ค๋ฅผ Response ๋ฉ์์ง์ ๋ฐ๋ ๋ถ๋ถ์ ๋ฃ์ด์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ค.
2. POST
Request ๋ฉ์์ง์ ๋ฐ๋ ๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ์ฒ๋ฆฌํด๋ฌ๋ผ๋ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. ์์ธํ ์ฌ์ฉ ์์๋ ์๋๋ฅผ ์ฐธ๊ณ ํ์.
- HTML FORM์ ์ ๋ ฅํ ์ ๋ณด๋ก ํ์ ๊ฐ์ , ์ฃผ๋ฌธ ๋ฑ์์ ์ฌ์ฉ
- ๊ฒ์ํ ๊ธ์ฐ๊ธฐ, ๋๊ธ ๋ฌ๊ธฐ
- ์๋ฒ๊ฐ ์์ง ์๋ณํ์ง ์์ ์ ๋ฆฌ์์ค ์์ฑ(๋ฑ๋ก)
- ๊ธฐ์กด ๋ฆฌ์์ค์ ๋ด์ฉ์ ์ถ๊ฐ
- ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฑ, ๋ณ๊ฒฝ์ ๋์ด์ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌ
ex) ์ฃผ๋ฌธ์์ ๊ฒฐ์ ์๋ฃ -> ๋ฐฐ๋ฌ์์ -> ๋ฐฐ๋ฌ์๋ฃ ์ฒ๋ผ ๊ฐ ๋ณ๊ฒฝ์ด ์๋ ํ๋ก์ธ์ค์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ
์์ ์์๋ฅผ ๋ณด๋ฉด ๋ค์ํ ๋ถ๋ถ์์ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๋ฐ๋ผ์, ๋ฆฌ์์ค URI์ POST ์์ฒญ์ด ์ค๋ฉด ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๋ฆฌ์์ค๋ง๋ค ๋ฐ๋ก ์ ํด์ผ ํ๋ค. ์ด๋ ๋ฑํ ์ ํด์ง ๋์์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํจ์ผ๋ก Request ๋ฉ์์ง์ ๋ฐ๋์ ์ ๋ฌํ ๋ฐ์ดํฐ๊ฐ ์์ง๋ง ๋ค๋ฅธ HTTP ๋ฉ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ ๋งคํ๋ค๋ฉด POST ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ๋งํ์๋ฉด, PUT ๋ฉ์๋์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋ก
(์ ํํ๊ฒ ๋งํ์๋ฉด PUT์ ๋์ฒด์ด์ง๋ง,,,)
ํ๋ค๋ ์ ์์ ๋ ๋ฉ์๋๋ฅผ ํผ๋ํ ์ ์๋ค. ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ POST๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ๋ชจ๋ฅด์ง๋ง, PUT์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ URI๋ฅผ ์ง์ ํ๋ค๋ ๊ฒ์ด๋ค.
POST๋ ์์ฒญ ๋ฉ์์ง์ ๋ฆฌ์์ค ์๋ณ์๋ฅผ ๋ชจ๋ฅด๋ ์ํ๋ก ๋ณด๋ธ๋ค. ์๋ฒ์์ ์ ์์ ์ผ๋ก ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ฉด ํด๋น ๋ฆฌ์์ค์ ์๋ณ์๋ฅผ ์์ฑํด์ ์๋ก ์์ฑ๋ ๋ฆฌ์์ค์ ์์น๋ฅผ ์๋ต ๋ฉ์์ง๋ฅผ ํตํด ๋ณด๋ธ๋ค.
๋ฐ๋ฉด์, PUT์ ์์ฒญ ๋ฉ์์ง์ ๋ฆฌ์์ค ์๋ณ์๋ฅผ ์ง์ ๋ฃ๋๋ค. ์๋ํ๋ฉด, PUT์ ํด๋น ๋ฆฌ์์ค์ ์์น์ ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ๋์ฒด, ์์ผ๋ฉด ์์ฑ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
3. DELETE
๋ฌธ์ ๊ทธ๋๋ก ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
4. HTTP ๋ฉ์๋์ ์์ฑ
๐ก ์์ (Safe)
๋ฉ์๋๋ฅผ ํธ์ถ์ ํ ๋ ์๋ฒ์ ๋ฆฌ์์ค์ ๋ํ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ์๋ฏธํ๋ค.
๐ก ๋ฉฑ๋ฑ(Idempotent)
๋ฉ์๋๋ฅผ ํ ๋ฒ ํธ์ถํ๋ 100๋ฒ ํธ์ถํ๋ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. GET๊ณผ DELETE๋ ๋ช ๋ฒ์ ํธ์ถํ๋ ์กฐํ, ์ญ์ ์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค๋ ์ ์์ ๋ฉฑ๋ฑ ๋ฉ์๋์ด๋ค. ๋ง์ฝ, ์ค๊ฐ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋์ด์ GET ๋ฉ์๋์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋๋ค๋ฉด ๋ฉฑ๋ฑ์ด ์๋๊ฒ ์๋๊น ํ๋ ์๊ฐ์ ํด๋ณผ ์ ์๋ค. ํ์ง๋ง ๋ฉฑ๋ฑ์ ์ธ๋ถ ์์ธ์ ์ํด์ ์ค๊ฐ์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ๊น์ง๋ ๊ณ ๋ คํ์ง ์๋๋ค.
๋ฐ๋ฉด์, POST๋ ๋ฉฑ๋ฑ ๋ฉ์๋๊ฐ ์๋๋ค. ์๋ํ๋ฉด, ๊ฒฐ์ ์ ๋ํ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๋ POST ๋ฉ์๋๋ผ๋ฉด ์ค๋ณต ๊ฒฐ์ ๋ฅผ ๋ฐ์์ํค๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฌํ ๋ฉฑ๋ฑ์ด๋ผ๋ ๊ฐ๋ ์ ์ด๋์ ํ์ฉ๋๋ ๊ฒ์ธ๊ฐ ํ๋ ๊ถ๊ธ์ฆ์ด ์๊ธธ ์ ์๋ค. ๋ฉฑ๋ฑ์ ์๋ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์๋ฒ๊ฐ TIMEOUT ๋ฑ์ผ๋ก ์ ์ ์๋ต์ ๋ชป์ฃผ์์ ๋, ํด๋ผ์ด์ธํธ ์ชฝ์์ ๊ฐ์ ์์ฒญ์ ๋ฐ๋ณตํด๋ ๋๋๊ฐ์ ๋ํ ํ๋จ ๊ทผ๊ฑฐ๊ฐ ๋ ์ ์๋ค.
๐ก ์บ์๊ฐ๋ฅ(Cacheable)
์๋ต ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์บ์ํด์ ์ฌ์ฉํด๋ ๋๋๊ฐ์ ๋ํ ๋ถ๋ถ์ด๋ค. GET, POST๋ ์บ์ํด์ ์ฌ์ฉํด๋ ๋๋ค. ํ์ง๋ง, POST๋ ๋ณธ๋ฌธ ๋ด์ฉ๊น์ง ์บ์ ํค๋ก ๊ณ ๋ คํด์ผํ๋๋ฐ, ๊ตฌํ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ GET ์ ๋๋ง ์บ์๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
'CS > Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[HTTP] - HTTP ํ๋กํ ์ฝ์ ํน์ง (2) | 2024.11.07 |
---|---|
[HTTP] - URI์ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ (1) | 2024.11.04 |
[HTTP] - ์ธํฐ๋ท ๋คํธ์ํฌ (0) | 2024.11.03 |
[HTTP] - HTTP ํค๋ (0) | 2022.08.09 |
[HTTP] - HTTP ๋ฉ์๋์ ํ์ฉ (0) | 2022.08.05 |
๋๊ธ