[HTTP] HTTP Request

ds-k.fe·2021년 6월 17일
0

HTTP

목록 보기
2/2

HTTP Protocol

웹에서 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 사용되는 통신 규약

  • Stateless(상태가 없는) 프로토콜
    -> HTTP는 특정 상태를 담고 있지 않으며, 이전 요청이나 다음 요청을 기억하지 않음

HTTP Request Methods

GET

존재하는 자원에 대한 요청
서버로부터 resource를 보내달라고 요청하며, 서버(혹은 DB)의 resource는 클라이언트로 전달만 될 뿐, 변경되지 않는다.

POST

새로운 자원을 생성
서버에게 resource를 생성할 때 사용, 서버(혹은 DB)에서 새로운 resource를 생성할 수 있다.

DELETE

존재하는 자원에 대한 삭제
서버(혹은 DB)에 있는 resource를 삭제할 수 있다.

PUT & PATCH

존재하는 자원에 대한 변경(PUT은 생성도 가능)
서버(혹은 DB)에 있는 resource를 변경할 수 있다.

! POST와 PUT의 구분

멱등성(Idempotence)
여러번 수행해도 결과가 같은 성질

  • 멱(冪) : [수학] 같은 수(數)나 문자를 여러 번 곱함. 또는 그 값.

POST 메소드로 반복 요청을 보낼 경우, 같은 정보여도 리소스를 생성하기 위한 메소드이기 때문에 요청한 횟수마다 새로운 리소스를 생성한다.
반면 PUT 메소드로 반복 요청을 보내도, 서버(혹은 DB) 자원에 있는 동일한 리소스를 반환한다. 다만, 요청에 변경 사항이 있다면, 해당 리소스를 변경한다.

  • PUT은 멱등하고, POST는 멱등하지 않다.

! PUT과 PATCH의 차이

PUT과 PATCH는 둘다 데이터의 수정을 위한 메소드이지만,
둘 간에는 차이점이 있다.

  • PUT 메소드
    변경 사항에 대한 일부분만 보낸 경우, 나머지는 default값으로 수정된다. 즉, 바뀌지 않는 속성도 함께 보내줘야 데이터를 유지할 수 있다.
// in data..
  { "name" : "kkakka",
    "age" : 8,
  }
  
// PUT request
  { 
    "age" : 7
  }
// result ...
  {
    "name" : null,
    "age" : 7
  }  
  • PATCH 메소드
    변경사항의 일부분만 보내도, 데이터에서 새롭게 바뀐 부분만 반영된다.
// in data..
  { "name" : "kkakka",
    "age" : 8,
  }
  
// PATCH request
  { 
    "age" : 7
  }
// result ...
  {
    "name" : "kkakka",
    "age" : 7
  }  

0개의 댓글