Computer Science/Network

[Network] HTTP Method의 속성

by Donghwan 2021. 11. 10.

안전( Safe )

  • 호출해도 리소스를 변경하지 않는다는 의미입니다.
  • 호출로 인해 리소스의 변경을 일으키지 않는 것을 안전하다고 합니다.
  • GET은 단순 조회이기 때문에 변경이 일어나지 않기 때문에 안전하다고 할 수 있습니다.
  • POST, PUT, PATCH, DELETE는 변경을 시도할 수 있기 때문에 안전하다고 할 수 없습니다.

 

멱등( Idempotent )

  • 같은 요청을 여러번을 하더라도 결과가 똑같아야 합니다. 이때 외부 요인으로 인한 변경은 고려하지 않습니다.
  • GET은 몇번을 조회하든 결과가 같습니다.
  • PUT은 리소스를 대체합니다. 똑같은 요청이라면 결과적으로 같습니다.
  • DELETE은 리소스를 삭제합니다. 결과적으로 삭제된 것은 같습니다.
  • POST 두 번 호출하면 같은 결과가 중복으로 발생할 수 있습니다. 생성을 여러번 요청한다면 중복 생성이 될 수 있습니다.
  • 멱등은 자동 복구 매커니즘에 사용됩니다. 서버가 정상 응답을 주지 못했을 때, 클라이언트가 같은 요청을 다시해도 되는가를 판단하는 기준이 됩니다.

 

캐시카능( Cacheable )

  • 응답 결과 리소스를 캐시해서 사용해도 되는지가 기준이 됩니다.
  • GET, HEAD, POST, PATCH 캐시 가능합니다.
  • 실제로는 GET,HEAD 정도만 캐시로 사용합니다.
  • POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지 않다.

 

728x90
반응형

댓글