๐ HTTP ์์ฒญ ๋ฉ์๋๋?
HTTP ์์ฒญ ๋ฉ์๋(Request Method)๋ ์น์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ ์ ์ํด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๊ฒ์ผ๋ก, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ด๋ค ๋์์ ์์ฒญํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค. ์ฃผ์ HTTP ์์ฒญ ๋ฉ์๋์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
- GET: ์์์ ์กฐํ
- POST: ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก, ํผ ์ ์ถ๊ณผ ๊ฐ์ ๋ฑ๋ก์ ์ฌ์ฉ
- PUT: ๋์ ์์์ ๋ํ๋ด๋ ๋ฐ์ดํฐ๋ฅผ ๋์ฒด ํน์ ์์ฑ
- PATCH: ์์์ ์ผ๋ถ๋ฅผ ์์
- DELETE: ์์์ ์ญ์
๐ค HTTP ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
๋๋ถ๋ถ์ ์ธํฐ๋ท ์น ์ฌ์ดํธ๋ ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ๋ก ์๋ํ๋ค. ์น์์ ์๋ฒ๋ ์น ํ์ด์ง, ์ด๋ฏธ์ง, ๋น๋์ค ๋ฑ์ ์น ์์๋ค์ ์ ์ฅํ๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์น ๋ธ๋ผ์ฐ์ (ex.Chrome, Safari)์ ๊ฐ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋ฌํ ์์๋ค์ ์์ฒญํ๊ณ ์ฌ์ฉํ๋ค. ์ด๋ฐ ๊ตฌ์กฐ์์ HTTP ์์ฒญ ๋ฉ์๋๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ์ด๋ค ์ด์ ์ ๊ฐ์ ธ์ฌ ์ ์์๊น?
HTTP ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์
- ์ฌ์ฉ์ ์ ๋ณด ์กฐํ
• ์์ฒญ ๋ฉ์๋: GET
• URL: https://example.com/users/123
• ์ค๋ช : ์ฌ์ฉ์ ID๊ฐ 123์ธ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์กฐํ - ์๋ก์ด ์ฌ์ฉ์ ๋ฑ๋ก
• ์์ฒญ ๋ฉ์๋: POST
• URL: https://example.com/users
• ์ค๋ช : ์๋ก์ด ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์กํ์ฌ ๋ฑ๋ก - ์ฌ์ฉ์ ์ ๋ณด ์
๋ฐ์ดํธ
• ์์ฒญ ๋ฉ์๋: PUT
• URL: https://example.com/users/123
• ์ค๋ช : ์ฌ์ฉ์ ID๊ฐ 123์ธ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธ
์์ฒญ ๋ฉ์๋๊ฐ ์๋ URL์ ๋์์ ๋ช ์ํ๋ ๋ฐฉ์
- ์ฌ์ฉ์ ์ ๋ณด ์กฐํ
• URL: https://example.com/getUserInfo?id=123
• ์ค๋ช : ์ฟผ๋ฆฌ ์คํธ๋ง์ ํตํด ์ฌ์ฉ์ ID๋ฅผ ์ ๋ฌํ๊ณ , getUserInfo ๊ฒฝ๋ก๋ฅผ ํตํด ์ฌ์ฉ์ ์ ๋ณด ์กฐํ๋ฅผ ๋ช ์ - ์๋ก์ด ์ฌ์ฉ์ ๋ฑ๋ก
• URL: https://example.com/addUser
• ์ค๋ช : addUser ๊ฒฝ๋ก๋ฅผ ํตํด ์๋ก์ด ์ฌ์ฉ์ ๋ฑ๋ก ๋์์ ๋ช ์ - ์ฌ์ฉ์ ์ ๋ณด ์
๋ฐ์ดํธ
• URL: https://example.com/updateUser?id=123
• ์ค๋ช : updateUser ๊ฒฝ๋ก์ ์ฟผ๋ฆฌ ์คํธ๋ง์ ํตํด ์ฌ์ฉ์ ID๋ฅผ ์ ๋ฌํ๊ณ , ์ฌ์ฉ์ ์ ๋ณด ์ ๋ฐ์ดํธ๋ฅผ ๋ช ์
HTTP ์์ฒญ ๋ฉ์๋์ ์ฅ์
- ์๋ฏธ ์ ๋ฌ: ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ HTTP ํ์ค์ ๋ฐ๋ผ ๊ฐ๊ฐ์ ๋ฉ์๋(GET, POST, PUT)๊ฐ ๋ช ํํ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ด, ์๋๋ฅผ ๋ถ๋ช ํ๊ฒ ์ ๋ฌํ ์ ์๋ค. ๋ฐ๋ฉด, URL์ ๋์์ ๋ช ์ํ๋ ๋ฐฉ์์ ๊ฐ๋ฐ์๊ฐ ์์๋ก ์ค์ ํ ๊ฒฝ๋ก๋ฅผ ํตํด ์๋๋ฅผ ์ ๋ฌํ๋ฏ๋ก, ์ธ๋ถ์์ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ด๋ ต๋ค.
- ์ ์ง๋ณด์์ฑ: ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ํ์คํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๋ฏ๋ก, ์๊ฐ์ด ์ง๋๋ ์ผ๊ด๋ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ธฐ ์ฝ๋ค. URL์ ๋์์ ๋ช ์ํ๋ ๋ฐฉ์์ ๊ฐ๋ณ์ ์ธ ๊ท์น์ ์์กดํ๊ธฐ ๋๋ฌธ์, ํ๋ก์ ํธ๊ฐ ์ปค์ง๋ฉด์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์์ง ์ ์๋ค.
๐ HTTP ๋ฉ์๋ - GET
GET ๋ฉ์๋๋ ์๋ฒ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์กฐํํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์์ ํจ๊ณผ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ก๋ค. ์๋ฅผ ๋ค์ด, ์น ํ์ด์ง๋ฅผ ์ด๊ฑฐ๋, ๊ฒ์์ ์ํํ ๋ ์ฃผ๋ก ์ด ์์ฒญ์ด ์ฌ์ฉ๋๋ค. ํด๋น ์์ฒญ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ, ์ถ๊ฐ, ํน์ ์ญ์ ์์ด ๊ฐ์ ธ์ฌ ๋๋ง ์ฌ์ฉํด์ผ ํ๋ค.
GET ๋ฉ์๋์ ๋ณธ๋ฌธ(payload)
๊ธฐ์ ์ ์ผ๋ก HTTP๋ช ์ธ์๋ GET ์์ฒญ์ ๋ณธ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจ์ํค๋ ๊ฒ์ ๊ธ์งํ์ง ์๊ณ ์๋ค. ์ฆ, ๊ฐ๋ฅ์ ํ์ง๋ง, ์ฌ๊ธฐ์๋ ์ค์ํ ๋ฌธ์ ๊ฐ ํ๋ ์๋ค. ๋ฐ๋ก "์๋ฏธ๊ฐ ์ ์๋์ง ์์๋ค"๋ ๊ฒ์ผ๋ก, GET ์์ฒญ์ ๋ณธ๋ฌธ์ ํฌํจ๋ ๋ฐ์ดํฐ๋ ์๋ฒ์ ์ํด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ ์ง ๋ช ํํ์ง ์๋ค.
๋ง์ ์น ์๋ฒ๋ค์ด ์์ฒญ์ ๋ณธ๋ฌธ์ ์์ํ์ง ์๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ณ ์์ฒญ์ ๊ฑฐ๋ถํ ์ ์๋ค. ์ฆ, ๊ธฐ์ ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ๊ฒ์ ์๋์ง๋ง, ์ค์ ๋ก๋ GET ์์ฒญ์ ๋ณธ๋ฌธ์ ํฌํจ์ํค๋ฉด ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, GET ์์ฒญ์๋ ๋ณธ๋ฌธ์ด๋ ํ์ด๋ก๋๋ฅผ ๋ด์ง ์๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. ์๋ฒ๋ก ์ ๋ฌํด์ผ ๋๋ ์ ๋ณด๊ฐ ์๋ค๋ฉด, URL์ ์ฟผ๋ฆฌ ์คํธ๋ง์ ์ฌ์ฉํ๊ฑฐ๋, ๋ค๋ฅธ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๐ฎ HTTP ๋ฉ์๋ - POST
POST ๋ฉ์๋๋ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์์ฒญ ๋ณธ๋ฌธ์ ์ ํ์ Content-Type ํค๋๋ก ๋ํ๋ธ๋ค. GET๊ณผ ๋ฌ๋ฆฌ ์์ ํจ๊ณผ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅ๋ฐ์ง ์์ง๋ง, ์์ฒญ์ ๋ณธ๋ฌธ์ ์ถ๊ฐํ ์ ์๊ณ , ์์ฒญ ์ฑ๊ณต ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ๋ ์๋ต์ ๋ณธ๋ฌธ์ด ์กด์ฌํ๋ค๋ ํน์ง์ด ์๋ค.
POST ์์ฒญ์ ๋ณดํต HTML form์ ํตํด ์๋ฒ์ ์ ์กํ๋ฉฐ, ์ ์ถ๋ ๋ฐ์ดํฐ๋ก ์ธํด ์๋ฒ ์ํ์ ๋ณํ๋ ์๋ก์ด ์์์ ์์ฑ์ด ์ผ์ด๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์ํ์ ๊ธ์ ์์ฑํ๊ฑฐ๋, ํ์ ๊ฐ์ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก POST ์์ฒญ์ ๋ณธ๋ฌธ์๋ ์์ฑํ ์์์ ๋ฐ์ดํฐ๋ฅผ ํฌํจ์ํจ๋ค.
๐ก HTTP ๋ฉ์๋ - PUT
PUT ๋ฉ์๋๋ ์๋ฒ์ ์กด์ฌํ๋ ์์์ ๋์ฒดํ๊ฑฐ๋, ์ง์ ํ URL์ ์์์ด ์์ผ๋ฉด ์๋ก ์์ฑํ ๋ ์ฌ์ฉ๋๋ค. PUT์ ์ฃผ๋ก ์์์ ์ ์ฒด ์ ๋ฐ์ดํธ๋ฅผ ํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์์ฒญ ๋ณธ๋ฌธ์๋ ์ ๋ฐ์ดํธํ ์์์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํฌํจ์ํจ๋ค.
POST ๋ฉ์๋์์ ์ฐจ์ด์
POST์ ๋ฌ๋ฆฌ PUT์ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง๋ค. ์ฆ, PUT ๋ฉ์๋ ์์ฒญ์ ํ ๋ฒ์ ๋ณด๋ด๋, ์ฌ๋ฌ ๋ฒ์ ์ฐ์์ผ๋ก ๋ณด๋ด๋ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ณด์ธ๋ค๋ ํน์ง์ด ์๋ค. ๋ฐ๋ฉด, POST์ ๊ฒฝ์ฐ ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ณด๋ด๋ฉด, ๊ฐ์ ๋ฐ์ดํฐ๋ก ์ฌ๋ฌ ๊ฐ์ ์์์ด ์์ฑ๋ ์ ์๋ค.
๐ HTTP ๋ฉ์๋ - PATCH
PATCH ๋ฉ์๋๋ ์๋ฒ์ ์์์ ๋ํด ๋ถ๋ถ์ ์ธ ๋ณ๊ฒฝ์ ํ ๋ ์ฌ์ฉ๋๋ค.
PATCH๊ฐ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง์ง ์๋ ์ด์
PUT๊ณผ ๋ฌ๋ฆฌ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง์ง ์๋๋ฐ, ์ด๋ ๋์ผํ PATCH ์์ฒญ์ด ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ผ๊ธฐํ ์ ์์์ ๋ปํ์ง๋ง, PATCH๋ฅผ PUT๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํจ์ผ๋ก์จ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง๊ฒ ํ ์๋ ์๋ค.
์นด์ดํฐ ์ฆ๊ฐ ์์ฒญ (๋ฉฑ๋ฑ์ฑ์ด ์๋ ๊ฒฝ์ฐ)
๋ค์ ์์์์๋ ์ฌ์ฉ์์ point ๊ฐ์ ํ๋ ์ฆ๊ฐ์ํค๋ ์์ฒญ์ ๋ณด๋ธ๋ค. ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ณด๋ด๋ฉด point ๊ฐ์ด ๊ณ์ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ฑ์ด ์๋ค๊ณ ๋ณผ ์ ์๋ค.
์ฌ์ฉ์ ํ๋ ์ ๋ฐ์ดํธ ์์ฒญ (๋ฉฑ๋ฑ์ฑ์ด ์๋ ๊ฒฝ์ฐ)
๋ค์ ์์์์๋ ์ฌ์ฉ์์ ์ํ๋ฅผ "active"๋ก ๋ณ๊ฒฝํ๋ PATCH ์์ฒญ์ ๋ณด์ฌ์ค๋ค. ์ด ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ์ํํด๋ ์ฌ์ฉ์์ ์ํ๊ฐ ๊ณ์ ์ ์ง๋๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ฑ์ด ์๋ค.
๋ ์์๋ฅผ ํตํด, PATCH ์์ฒญ์ด ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง ์๋ ์๊ณ ๊ฐ์ง์ง ์์ ์๋ ์์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ดํด๋ณด์๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก, ์์ฒญ์ ์ฑ๊ฒฉ๊ณผ ์๋ฒ์์ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง์ ๋ฐ๋ผ ๋ฉฑ๋ฑ์ฑ์ ์ ๋ฌด๊ฐ ๊ฒฐ์ ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๐๏ธ HTTP ๋ฉ์๋ - DELETE
๋ง์ง๋ง DELETE ๋ฉ์๋๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด, ์ง์ ๋ ์์์ ์ญ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ํด๋น ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋๋ฉด, ์ง์ ๋ ์์์ ์๋ฒ์์ ์ ๊ฑฐ๋๋ค. ์ด ๋ฉ์๋๋ ํนํ RESTful API์์ ์์์ ์ญ์ ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
DELETE ์์ฒญ์ ๋ํ ์๋ต
DELETE ๋ฉ์๋๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉํ ํ์ ์ฌ์ฉํ ์ ์๋ ์๋ต ์ํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
- 202(Accepted): ๋ช ๋ น์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ๊ฒ ๊ฐ์ผ๋ ์์ง์ ์คํํ์ง ์์ ๊ฒฝ์ฐ
- 204(No Content): ๋ช ๋ น์ ์ํํ๊ณ ๋ ์ด์ ์ ๊ณตํ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ
- 200(OK): ๋ช ๋ น์ ์ํํ๊ณ ์๋ต ๋ฉ์์ง๊ฐ ์ดํ์ ์ํ๋ฅผ ์ค๋ช ํ๋ ๊ฒฝ์ฐ
DELETE์ ๋ฉฑ๋ฑ์ฑ
DELETE ๋ฉ์๋๋ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์์์ ๋ํด DELETE ์์ฒญ์ ํ ๋ฒ ๋ณด๋ด์ ๊ทธ ์์์ ์ญ์ ํ ํ, ๊ฐ์ ์์์ ๋ํด ์์ฒญ์ ๋ค์ ๋ณด๋ด๋, ์ฒซ ๋ฒ์งธ ์์ฒญ์ผ๋ก ์ด๋ฏธ ์์์ด ์ญ์ ๋์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ๋ณํ๋ ์๋ค. ์๋ฒ๋ ๋ณดํต ๋ ๋ฒ์งธ์ ๊ทธ ์ดํ์ DELETE ์์ฒญ์ ๋ํด "์ด๋ฏธ ์ญ์ ๋จ"์ ์๋ฏธํ๋ 404(Not Found)์ ๊ฐ์ ํน์ ์ํ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
'CS > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
What's in my bฬถaฬถgฬถ Browser (0) | 2024.09.08 |
---|---|
ARP(Address Resolution Protocol) (0) | 2024.04.15 |
๋คํธ์ํฌ ์ฃผ์(MAC / IP Address) (0) | 2024.04.11 |
๋คํธ์ํฌ ํต์ ๋ฐฉ์ (0) | 2024.04.02 |
DNS(Domain Name Service) (19) | 2024.03.30 |