rest - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki

HTTP method

  • GET
    • ์š”์ฒญ๋ฐ›์€ URI์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์‘๋‹ตํ•œ๋‹ค
    • ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • POST
    • ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ(CREATE)ํ•œ๋‹ค. ์ƒˆ๋กœ ์ž‘์„ฑ๋œ ๋ฆฌ์†Œ์Šค์ธ ๊ฒฝ์šฐ HTTP ํ—ค๋” ํ•ญ๋ชฉ 'Location : {URI}' ๋ฅผ ํฌํ•จํ•˜์—ฌ ์‘๋‹ตํ•ด์•ผ ํ•œ๋‹ค.
  • DELETE
    • ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•  ๊ฒƒ์„ ์š”์ฒญํ•จ. (์•ˆ์ „์„ฑ ๋ฌธ์ œ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋ฒ„์—์„œ ๋น„ํ™œ์„ฑ)
    • HTTP ๋ช…์„ธ๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ์ง€์ง€ ์•Š๊ณ  ์š”์ณฅ์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์—ฌ ์‚ญ์ œ ์ˆ˜ํ–‰์— ๋Œ€ํ•œ ๋ณด์žฅ์„ ํ•˜์ง€ ๋ชปํ•œ๋‹ค.
  • HEAD
    • GET๋ฐฉ์‹๊ณผ ๋™์ผํ•˜์ง€๋งŒ, ์‘๋‹ต์— BODY๊ฐ€ ์—†๊ณ  ์‘๋‹ต์ฝ”๋“œ์™€ HEAD๋งŒ ์‘๋‹ตํ•œ๋‹ค.
    • ์›น์„œ๋ฒ„ ์ •๋ณดํ™•์ธ, ํ—ฌ์Šค์ฒดํฌ, ๋ฒ„์ ผํ™•์ธ, ์ตœ์ข… ์ˆ˜์ •์ผ์ž ํ™•์ธ๋“ฑ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • PUT
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค ์ˆ˜์ •(UPDATE)ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์˜ ๋ณธ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์š”์ฒญ URL์˜ ์ด๋ฆ„๋Œ€๋กœ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์ด๋ฏธ URL์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋ณธ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ต์ฒดํ•œ๋‹ค.
  • PATCH
    • PUT๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •(UPDATE)ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
    • PUT์˜ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „์ฒด๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์˜๋ฏธ์ง€๋งŒ, PATCH๋Š” ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ์ผ๋ถ€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์šฉ.
  • OPTIONS
    • ์›น์„œ๋ฒ„์—์„œ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ง€์›๋˜๋Š” ๋ฉ”์†Œ๋“œ์˜ ์ข…๋ฅ˜๋ฅผ ํ™•์ธํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ.
  • TRACE
    • ์›๊ฒฉ์ง€ ์„œ๋ฒ„์— ๋ฃจํ”„๋ฐฑ ๋ฉ”์‹œ์ง€ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์‚ฌ์šฉ.
    • ์š”์ฒญ์ด ๋ฐฉํ™”๋ฒฝ, ํ”„๋ฝ์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ์„ ๊ฑฐ์น  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์„œ๋ฒ„์— ์ž์‹ ์˜ ์š”์ฒญ์ด ์–ด๋–ป๊ฒŒ ์ˆ˜์ •๋˜์–ด ๋„๋‹ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

POST vs PUT

PUT์€ ์‹๋ณ„์ž๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. ๊ผญ ์กด์žฌํ•˜๋Š” ์‹๋ณ„์ž์ผ ํ•„์š”๋Š” ์—†๊ณ , ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‹๋ณ„์ž์ผ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.
POST๋กœ ๋™์ผํ•œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด 2๊ฐœ์˜ ์ž์›์„ ์ƒ์„ฑํ•œ๋‹ค. ๋ฐ˜๋ฉด, PUT์œผ๋กœ ๋™์ผํ•œ ์š”์ฒญ์„ 2๋ฒˆ ๋ณด๋‚ผ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ์— ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ์— ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ต์ฒด๋œ๋‹ค.
POST๋Š” ๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๊ณ , PUT์€ ๋ฉฑ๋“ฑ์ด๋‹ค. (๋ฉฑ๋“ฑ์€ ํ•œ ๋ฒˆ ์ ์šฉํ•˜๋‚˜ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ์šฉํ•˜๋‚˜ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„ ์˜๋ฏธ)

PUT vs PATCH

PUT์€ ์ž์›์˜ ์ „์ฒด๋ฅผ ๊ต์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์› ๋‚ด์˜ ๋ชจ๋“  ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ผ๋ถ€ ํ•„๋“œ๋งŒ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ, ๊ทธ ์™ธ ํ•„๋“œ๋Š” ๋น„์–ด ์žˆ๊ฒŒ ๋˜๊ฑฐ๋‚˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ด๋‹ค. PATCH๋Š” ์ž์›์˜ ๋ถ€๋ถ„์„ ๊ต์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ต์ฒดํ•  ํ•„๋“œ๋งŒ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค.

PUT /members/1
{
    name : "hoon",
    age : 28,
}

PATCH  /members/1
{
    name : "jihoon"
}

์ฐธ๊ณ