Skip to content

Latest commit

ย 

History

History
37 lines (27 loc) ยท 4.3 KB

GetVsPost.md

File metadata and controls

37 lines (27 loc) ยท 4.3 KB

GET

์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. GET ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๋ฉด XML์ด๋‚˜ JSON๊ณผ ํ•จ๊ป˜ 200(ok) HTTP Status Code๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋งŒ์•ฝ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฃผ๋กœ 404(Not found) ์—๋Ÿฌ๋‚˜ 400(Bad Request) ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

HTTP ๋ช…์„ธ์— ์˜ํ•˜๋ฉด GET ์š”์ฒญ์€ ์˜ค๋กœ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์ˆ˜์ •ํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์ด์œ ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผ๋œ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ๋ณ€ํ˜•์˜ ์œ„ํ—˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ GET ์š”์ฒญ์€ ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฆ‰, ๊ฐ™์€ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•˜๋”๋ผ๋„ ๋ณ€ํ•จ์—†์ด ํ•ญ์ƒ ๊ฐ™์€ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ GET์„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ์˜ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์— ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

POST

์ฃผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ(Create)ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ POST๋Š” ํ•˜์œ„ ๋ฆฌ์†Œ์Šค๋“ค(๋ถ€๋ชจ ๋ฆฌ์†Œ์Šค์˜ ํ•˜์œ„ ๋ฆฌ์†Œ์Šค)์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ Creation์„ ์™„๋ฃŒํ•˜๋ฉด 201(Created) HTTP Status Code๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

POST ์š”์ฒญ์€ ์•ˆ์ „ํ•˜์ง€๋„ ์•Š๊ณ  ๋ฉฑ๋“ฑ์„ฑ์ด ์žˆ์ง€๋„ ์•Š๋‹ค. ๋‹ค์‹œ ๋งํ•ด์„œ ๊ฐ™์€ POST ์š”์ฒญ์„ ๋ฐ˜๋ณตํ•ด์„œ ํ–ˆ์„ ๋•Œ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‘ ๊ฐœ์˜ ๊ฐ™์€ POST ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ resource๋ฅผ ๋ฐ˜ํ™˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

GET vs POST

  • 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ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. (๊ฐ™์€ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณด๋‚ด๋„ ๋‹ค๋ฅธ ์‘๋‹ต์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.)

Ref