# HTTP ๋ฉ”์†Œ๋“œ - GET, POST, PUT, PATCH, DELETE in Start line
Study Repository

HTTP ๋ฉ”์†Œ๋“œ - GET, POST, PUT, PATCH, DELETE in Start line

by rlaehddnd0422

ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ API๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ, 5๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ฃผ์–ด์ง„๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

 

1. ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ

2. ํšŒ์› ์กฐํšŒ

3. ํšŒ์› ๋“ฑ๋ก

4. ํšŒ์› ์ˆ˜์ •

5. ํšŒ์› ์‚ญ์ œ

API URI๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ๋Š” ์šฐ์„  ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘์€ ๋ฐฐ์ œํ•˜๊ณ  ์šฐ์„  ๋ฆฌ์†Œ์Šค๋ถ€ํ„ฐ ์‹๋ณ„ํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋ฆฌ์†Œ์Šค๋Š” 'ํšŒ์›' ์ด๊ฒ ์ฃ ?

 

๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ณ  URI ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์„ค๊ณ„๋ฅผ ํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ /members

2. ํšŒ์› ์กฐํšŒ /members/{id}

3. ํšŒ์› ๋“ฑ๋ก /members/{id}

4. ํšŒ์› ์ˆ˜์ • /members/{id}

5. ํšŒ์› ์‚ญ์ œ /members/{id}

 

URI๋Š” ๋ฆฌ์†Œ์Šค๋งŒ ์‹๋ณ„ํ•˜๋„๋ก ํ•ด์ฃผ๊ณ  ๋™์ž‘์€ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.

๋ฆฌ์†Œ์Šค : ํšŒ์›

๋™์ž‘ : ์กฐํšŒ, ๋“ฑ๋ก, ์‚ญ์ œ, ๋ณ€๊ฒฝ

 

์ด์ œ HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์†Œ๋“œ๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค.

 

HTTP ์ฃผ์š” ๋ฉ”์†Œ๋“œ

  • GET : ๋ฆฌ์†Œ์Šค ์กฐํšŒ
  • POST : ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ
  • PUT : ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒด, ์—†์œผ๋ฉด ์ƒ์„ฑ 
  • PATCH : ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ
  • DELETE : ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

HTTP ๊ธฐํƒ€ ๋ฉ”์†Œ๋“œ

  • HEAD : GET๊ณผ ๋™์ผํ•˜์ง€๋งŒ, ๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„์„ ์ œ์™ธํ•œ, ์ƒํƒœ ์ค„๊ณผ ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜
  • OPTIONS : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ†ต์‹  ๊ฐ€๋Šฅ ์˜ต์…˜(๋ฉ”์†Œ๋“œ)์„ ์„ค๋ช…
  • CONNECT : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋กœ ์‹๋ณ„๋˜๋Š” ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ„ฐ๋„์„ ์„ค์ •
  • TRACE : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฐฑ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰

HTTP - GET

  • ๋ฆฌ์†Œ์Šค ์กฐํšŒ
  • ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” query๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌ
GET /search?q=hello&hl=ko HTTP/1.1 
Host: www.google.com

GET
Response


HTTP - POST

  • ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
  • ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  • ์„œ๋ฒ„๋Š” ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ (์‹ ๊ทœ ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ)

์ด ๋ฆฌ์†Œ์Šค URI์— POST์š”์ฒญ์ด ์˜ค๋ฉด ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๋ฆฌ์†Œ์Šค๋งˆ๋‹ค ๋”ฐ๋กœ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

POST๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

1. ์„œ๋ฒ„๊ฐ€ ์•„์ง ์‹๋ณ„ํ•˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

ex) ์‹ ๊ทœ ์ฃผ๋ฌธ ์ƒ์„ฑ

 

2. ๊ธฐ์กด ์ž์›์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

 

3. HTML ์–‘์‹์— ์ž…๋ ฅ๋œ ํ•„๋“œ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค์— ์ œ๊ณต

ex) HTML FORM์— ์ž…๋ ฅํ•œ ์ •๋ณด๋กœ ํšŒ์› ๊ฐ€์ž…, ์ฃผ๋ฌธ ๋“ฑ์— ์‚ฌ์šฉ

 

4. ๊ฒŒ์‹œํŒ, ๋‰ด์Šค ๊ทธ๋ฃน, ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ, ๋ธ”๋กœ๊ทธ or ์œ ์‚ฌํ•œ ๊ธฐ์‚ฌ ๊ทธ๋ฃน์— ๋ฉ”์‹œ์ง€ ๊ฒŒ์‹œ

ex) ๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ ๋“ฑ

 

POST
Response


HTTP - PUT

  • body ๋ฆฌ์†Œ์Šค๊ฐ€ ์„œ๋ฒ„์— ์žˆ์œผ๋ฉด ๋Œ€์ฒด, ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑ. ์‰ฝ๊ฒŒ๋งํ•ด ๋ฎ์–ด์“ฐ๊ธฐ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค ์œ„์น˜๋ฅผ ์•Œ๊ณ  URI๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HTTP - PATCH

  • ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ 

์˜ˆ๋ฅผ๋“ค์–ด json ์— age์™€ usernameํ•„๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

 

์„œ๋ฒ„์˜ members/100์— { age:20, username : "kim" } ์ด ์žˆ์„๋–„

 

PATCH members/100 ... { "age":50 } ์„ ์„œ๋ฒ„์— ๋ณด๋‚ด๋ฉด 

์„œ๋ฒ„์˜ members/100 { age:50, username : "kim" } ์œผ๋กœ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

 

PUT๊ณผ ๋‹ฌ๋ฆฌ ๊ธฐ์กด ๋‚ด์šฉ์ด ์ง€์›Œ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 


HTTP - DELETE

  • ๋ฆฌ์†Œ์Šค ์ œ๊ฑฐ

 


HTTP ๋ฉ”์†Œ๋“œ์˜ ์†์„ฑ 

1. ์•ˆ์ „ - ํ˜ธ์ถœ ์‹œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ˆ์ „ ๋ฉ”์†Œ๋“œ : GET ( ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ x , ์˜ค๋กœ์ง€ ์กฐํšŒ )

 

2. ๋ฉฑ๋“ฑ - ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๋ฉฑ๋“ฑ ๋ฉ”์†Œ๋“œ : GET, PUT, DELETE

POST X : ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๋ฉด ๊ฐ™์€ ๊ฒฐ์ œ๊ฐ€ ์ค‘๋ณตํ•ด์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ.

 

PATCH๋Š” ์™œ ๋ฉฑ๋“ฑํ•˜์ง€ ์•Š์„๊นŒ?

age = age + 1์„ ๊ณ„์† ํ˜ธ์ถœํ•˜๋ฉด age๊ฐ’์ด ๊ณ„์† ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ..

 

ํ™œ์šฉ : ์ž๋™ ๋ณต๊ตฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ / ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์‘๋‹ต์„ ์ฃผ์ง€ ๋ชปํ–ˆ์„ ๋•Œ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ์š”์ฒญ์„ ํ•ด๋„ ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ํŒ๋‹จ ๊ทผ๊ฑฐ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

3. ์บ์‹œ๊ฐ€๋Šฅ - ์‘๋‹ต ๊ฒฐ๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์บ์‹œํ•ด์„œ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š”๊ฐ€?

์บ์‹œ๊ฐ€๋Šฅ ๋ฉ”์†Œ๋“œ : GET, POST, PATCH ์บ์‹œ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” GET, HEAD ์ •๋„๋งŒ ์บ์‹œ๋กœ ์‚ฌ์šฉ

 

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Study Repository

rlaehddnd0422

ํ™œ๋™ํ•˜๊ธฐ