안전(Safe Methods)
- 호출해도 리소스를 변경하지 않는다.
- GET METHOD
- HEAD METHOD
멱등(Idempotent Methods)
- 한 번 호출하든 여러번 호출하든 결과가 똑같다.
- 멱등 메서드
- GET : 몇번을 조회해도 같은 결과가 조회된다.
- PUT : 데이터 전체를 대체하기 때문에 항상 결과가 같다.
- DELETE : 삭제는 여러번 삭제해도 결과는 같다.
주의!
POST 메서드는 멱등이 아니다.
예를들어 결제시스템에서 POST를 두번 호출 할 경우 결제가 중복해서 발생할 수 있다.
멱등이 필요한 이유
- 자동복구 메커니즘
- 서버가 TIMEOUT등으로 정상 응답을 못주었을 때, 클라이언트가 같은 요청을 다시 해도 되는가? 의 판단 근거이다.
멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지 고려하지 않는다.
캐시가능(Cacheable Methods)
- 응답 결과 리소스를 캐시해서 사용해도 되는가?
- GET, HEAD, POST, PATCH 캐시가능
- 일반적으로 GET, HEAD 정도만 캐시로 사용
- POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 어려움