twocowsong

[모든 개발자를 위한 HTTP 웹 기본 지식 - 16] 본문

IT/HTTP

[모든 개발자를 위한 HTTP 웹 기본 지식 - 16]

WsCode 2022. 1. 22. 20:38

HTTP 메서드의 속성

• 안전(Safe Methods)
• 멱등(Idempotent Methods)
• 캐시가능(Cacheable Methods)

  • 안전 (Safe)
    호출해도 리소스를 변경하지않는다. 여러번 호출했을경우 변경이 일어나는것은 안전하지않다. GET은 호출해도 안전하고, POST,DELETE는 안전하지않다.
  • 멱등(Idempotent)
    한번 호출하든 두번 호출하든 100번 호출하든 결과가 똑같다.
    멱등메서드 GET은 한번 조회하든, 100번조회를 하든 똑같같기에 멱등하다. PUT은 완전히 대체하기에 몇번을 시도하든 똑같다. DELETE는 같은 데이터를 한번 삭제하든 100번 삭제하든 똑같다. POST는 멱등이아니다. 두번호출해서 결제가 2번 일어날수도있다.
  • 멱등 활용
    활용 : 자동 복구 메커니즘.
    서버가 timeout등 정상으로 응답을 주지 못하였을경우. 멱등하다면 같은요청을 똑같이 또 시도해도 문제가 없기때문에 멱등을 활용한다.

단 멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지는 고려하지는 않는다.

 

  • 캐쉬가능(Cacheable)
    응답 결과 리소스를 캐시(브라우저에서 저장한 내용)해서 사용해도 되는가?
    GET, HEAD, POST, PATCH 캐시 가능. 실제로는 GET,HEAD 정도만 캐시로 사용. POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지않음.