์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋์ด๋ค. GET ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค๋ฉด XML์ด๋ JSON๊ณผ ํจ๊ป 200(ok) HTTP Status Code๋ฅผ ๋ฐํํ๋ค. ๋ง์ฝ, ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์ฃผ๋ก 404(Not found) ์๋ฌ๋ 400(Bad Request) ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
HTTP ๋ช ์ธ์ ์ํ๋ฉด GET ์์ฒญ์ ์ค๋ก์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋๋ง ์ฌ์ฉ๋๊ณ ์์ ํ ๋๋ ์ฌ์ฉํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์ด๋ฐ ์ด์ ๋ก ์ฌ์ฉํ๋ฉด ์์ ํ๋ค๊ณ ๊ฐ์ฃผ๋๋ค. ์ฆ, ๋ฐ์ดํฐ ๋ณํ์ ์ํ ์์ด ์ฌ์ฉํ ์ ์๋ค๋ ๋ป์ด๋ค. ๊ฒ๋ค๊ฐ GET ์์ฒญ์ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ์ฆ, ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ํ๋๋ผ๋ ๋ณํจ์์ด ํญ์ ๊ฐ์ ์๋ต์ ๋ฐ์ ์ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก GET์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฑ์ ์์ ํ์ง ์์ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ์๋๋ค.
์ฃผ๋ก ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑ(Create)ํ ๋ ์ฌ์ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก POST๋ ํ์ ๋ฆฌ์์ค๋ค(๋ถ๋ชจ ๋ฆฌ์์ค์ ํ์ ๋ฆฌ์์ค)์ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก Creation์ ์๋ฃํ๋ฉด 201(Created) HTTP Status Code๋ฅผ ๋ฐํํ๋ค.
POST ์์ฒญ์ ์์ ํ์ง๋ ์๊ณ ๋ฉฑ๋ฑ์ฑ์ด ์์ง๋ ์๋ค. ๋ค์ ๋งํด์ ๊ฐ์ POST ์์ฒญ์ ๋ฐ๋ณตํด์ ํ์ ๋ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค๋ ๊ฒ์ ๋ณด์ฅํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ ๊ฐ์ ๊ฐ์ POST ์์ฒญ์ ๋ณด๋ด๋ฉด ๊ฐ์ ์ ๋ณด๋ฅผ ๋ด์ ๋ ๊ฐ์ ๋ค๋ฅธ resource๋ฅผ ๋ฐํํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- GET : ๋ชจ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ URL์ ํฌํจํ์ฌ ์์ฒญํ๋ค.
- POST : ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ body์ ํฌํจํ ์ ์๋ค.
์ ๋ชฉ | GET | POST |
---|---|---|
History | ํ๋ผ๋ฏธํฐ๋ค์ URL์ ์ผ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ๋๋ค. | ํ๋ผ๋ฏธํฐ๋ค์ด ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ์ ์ฅ๋์ง ์๋๋ค. |
Bookmarked | ์์ฒญ ํ๋ผ๋ฏธํฐ๋ค์ด URL๋ก ์ธ์ฝ๋ฉ๋๋ฏ๋ก ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ ๊ฐ๋ฅํ๋ค. | ์์ฒญ ํ๋ผ๋ฏธํฐ๋ค์ด request body์ ํฌํจ๋๊ณ request URL์ ๋ํ๋์ง ์์ผ๋ฏ๋ก ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. |
button/re-sumit behavior | GET ์์ฒญ์ด ๋ค์ ์คํ๋๋๋ผ๋ ๋ธ๋ผ์ฐ์ ์บ์์ HTML์ด ์ ์ฅ๋์ด ์๋ค๋ฉด ์๋ฒ์ ๋ค์ submit๋์ง ์๋๋ค. | ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณดํต ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๊ฐ ๋ค์ submit ๋์ด์ผ ํ๋ค๊ณ alert์ ์ค๋ค. |
Encoding type | application/x-www-form-urlencoded | multipart/form-data or application/x-www-form-urlencoded Use multipart encoding for binary data |
Parameters | ์ ์ก ๊ฐ๋ฅํ์ง๋ง URL์ ๋ฃ์ ์ ์๋ ํ๋ผ๋ฏธํฐ ๋ฐ์ดํฐ๊ฐ ์ ํ๋๋ค. 2K ์ดํ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ๋ฉฐ ๋ช๋ช ์๋ฒ๋ค์ 64K๊น์ง ๋ค๋ฃฌ๋ค. | ์๋ฒ์ ํ์ผ ์ ๋ก๋ํ๋ ๊ฒ์ ํฌํจํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์กํ ์ ์๋ค. |
Hacked | script kiddies์ ์ํด ํดํน๋๊ธฐ ์ฝ๋ค. | GET์ ๋นํด ํดํน์ด ์ข ๋ ์ด๋ ต๋ค. |
Restrictions on form data type | ์ค์ง ASCII characters๋ง ํ์ฉ๋๋ค. | ์ ํ์ด ์์ผ๋ฉฐ, binary data๋ ํ์ฉ๋๋ค. |
Security | GET์ POST์ ๋นํด ๋ณด์์ ์ฝํ๋ค. ๊ทธ ์ด์ ๋ ๋ฐ์ดํฐ๊ฐ URL์ ์ผ๋ถ๋ก ์ ์ก๋๊ณ ๊ทธ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ์ ์ฅ๋๋ฉฐ ์๋ฒ๊ฐ plain text๋ก ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ธฐ ๋๋ฌธ์ด๋ค. | POST๋ GET์ ๋นํด ๋ณด์์ด ์กฐ๊ธ ๋ ์์ ํ๋ค. ๊ทธ ์ด์ ๋ ํ๋ผ๋ฏธํฐ๋ค์ด ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ๋ ์๋ฒ ๋ก๊ทธ์ ์ ์ฅ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. |
Restrictions on form data length | form data๊ฐ URL์ ํฌํจ๋๊ณ URL ๊ธธ์ด๊ฐ ์ ํ๋๊ธฐ ๋๋ฌธ์ form data์ ๊ธธ์ด๋ ์ ํ๋๋ค. ์์ ํ URL ๊ธธ์ด๋ 2047 characters์ด๋ ๋ธ๋ผ์ฐ์ ๋ ์น ์๋ฒ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. | ์ ํ์ด ์๋ค. |
Usability | GET ๋ฉ์๋๋ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ค์ ์ ์กํ๋๋ฐ ์ฌ์ฉํด์๋ ์๋๋ค. | POST ๋ฉ์๋๋ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ์กํ๋๋ฐ ์ฌ์ฉ๋๋ค. |
Visibility | GET ๋ฉ์๋๋ ๋ชจ๋์๊ฒ ๋ณด์ฌ์ง๋ค. (๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ๊ทธ๋๋ก ๋ณด์ฌ์ง๊ณ ๊ทธ์ ๋ฐ๋ผ ์ ์ก๊ฐ๋ฅํ ์ ๋ณด์ ์๋ ์ ํ๋๋ค.) | POST ๋ฉ์๋๋ URL์ ๋ณด์ฌ์ง์ง ์๋๋ค. |
Cached | GET ์ idempotentํ๊ธฐ ๋๋ฌธ์ ์บ์๊ฐ ๋๋ค.(๋ฉฑ๋ฑ์ฑ : ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ณด๋ด๋ ํญ์ ๊ฐ์ ์๋ต์ด ๋์จ๋ค.) | POST๋ idempotentํ์ง ์๊ธฐ ๋๋ฌธ์ ์บ์๊ฐ ๋์ง ์๋๋ค. (๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ณด๋ด๋ ๋ค๋ฅธ ์๋ต์ด ์ฌ ์ ์๋ค.) |