본문 바로가기
넓고 얕은 네트워크 지식/http

HTTP 메서드의 속성

by 황원용 2022. 10. 22.
728x90

안전(Safe)

  • 호출해도 리소스를 변경하지 않는다.
  • 안전은 해당 리소스의 변화만 고려함
  • GET, HEAD, OPTIONS, TRACE

멱등(Idempotent)

  • f(f(x)) = f(x)
  • 한 번 호출 하든 100번 호출하든 결과가 똑같다.
    • GET -> PUT -> GET은?
      • 멱등은 외부 요인으로 중간에 리소스가 변경되는 것까지는 고려하지 않는다.
  • 멱등 메서드
  • GET : 항상 같은 결과가 조회
  • PUT : 결과를 대체함(덮어씀). 여러번 같은 요청을 해도 최종 결과는 같음
  • DELETE : 결과를 삭제함. 여러번 같은 요청을 해도 삭제된 결과는 같음
  • POST : 멱등이 아님! 두번 호출하면 같은 결제가 중복해서 발생하면 중복 결제로 오류임
  • 활용 : 자동 복구 메커니즘, 같은 요청을 해도 괜찮을 때

캐시가능(Cacheable)

  • 응답 결과 리소스를 캐시해서 사용해도 되는가?
  • GET, HEAD, POST, PATCH 캐시 가능
  • 실제로는 GET, HEAD 정도만 캐시로 사용함
  • POST,PATCH는 본문 내용까지 캐시 키로 고려해야 하는데 구현이 쉽지 않음
728x90

'넓고 얕은 네트워크 지식 > http' 카테고리의 다른 글

HTTP 상태 코드  (0) 2022.10.25
HTTP API 설계  (0) 2022.10.23
HTTP 메서드  (0) 2022.10.21
HTTP 메시지의 구조  (0) 2022.10.21
HTTP의 특징  (0) 2022.10.21