[20210704] Http method

http 메서드 종류와 멱등성에 대해 알아보자.

HTTP 메소드 종류

GET

  • 클라이언트가 서버의 리소스를 요청할 때 주로 사용하는 메서드
  • 브라우저에 기록이 남으며 URL에 전송하는 데이터가 표시되므로 민감한 데이터를 보내면 안됨.
  • 멱등성 O, 캐시 가능
  • GET 요청과 같지만 응답에 본문이 없고 헤더만 존재
  • 헤더를 통해 본문 정보를 유추할 때나 응답 상태 코드를 확인만 필요할 때도 유용
  • 멱등성 O, 캐시 가능

POST

  • 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용(검색, 회원가입..)
  • 서버에 리소스를 수정하거나 새로 만들 때 보내는 데이터를 POST 요청 본문에 담음
  • 멱등성 X, 캐시 가능

PUT

  • URL에 해당하는 리소스를 새로 만들거나 수정할 때 사용
  • POST와 가장 큰 차이는 PUT 메서드는 자원의 식별자를 이미 알고있는 상태여야한다는 점
  • 멱등성 O, 캐시 불가능

PATCH

  • PUT은 전체 리소스를 수정할 때 주로 사용되며(PUT 요청 시에는 변경되지 않는 데이터도 모두 전달해야 함), PATCH는 해당 자원의 일부를 수정하는 의미로 사용
  • 멱등성 X, 캐시 가능

DELETE

  • 요청 URL로 지정한 리소스를 삭제할 때 사용
  • HTTP 명세는 서버가 클라이언트에게 알리지 않고 요청을 무시하는 것을 허용하므로 삭제를 보장하지 못함. 따라서 응답을 통해 삭제에 대한 확인을 받는 게 좋음
  • 멱등성 O, 캐시 불가능

멱등성(Idempotent)

  • 특정 메서드를 여러 번 요청해도 한 번 요청할 때와 결과가 같다는 의미(오류와 같은 상황은 예외)
  • GET, PUT, DELETE 같은 경우 해당 URL에 똑같은 요청을 보낼 경우 결과는 같음
  • POST는 리소스에 따라 결과가 달라지므로 멱등성을 지키지 못함