-
(HTTP) 11 - HTTP 메서드 속성 (안전, 멱등, 캐시가능)개발/HTTP 2024. 10. 31. 13:32
■ HTTP 메서드 속성 3가지
- 안전 (Safe Methods)
- 멱등 (Idempotent Methods)
- 캐시가능 (Cacheable Methods)
■ 안전 (Safe Methods)
안전하다는 것은 호출해도 리소스 변경하지 않는다는 것이다.
GET 은 단순 조회이므로 안전하다.
DELETE, PUT, PATCH 안전하지 않다. (변경이 있음)
■ 멱등 (Idempotent Methods)
몇 번 호출하든 결과가 똑같은 것
PUT 의 경우 같은 요청을 하면 몇 번을 하든 최종 결과는 같다.
DELETE 도 삭제하면 계속 삭제된 결과 똑같음
POST 는 두 번 호출하면 두 번 결제한다 -> 결과 같지 않음 (멱등하지 않음)
멱등하기 때문에 같은 요청을 해도 된다.
즉 서버 응답 못 줬을 때 클라이언트가 동일한 요청을 해도 결과에 변화가 없다.
멱등은 외부 요인으로 인해 중간 리소스 변경되는 것까지 고려하지 않는다.
서버에서 변경된 것을 체크해줘야 한다.
동일한 사용자가 똑같은 요청을 했다는 가정만 한다.
웹 브라우저가 크기가 큰 파일 등을 로컬 PC에 저장하고 있는데 이를 캐시라고 한다.
이를 통해 다시 해당 파일에 접근할 때 빠르게 접근 가능하다.
GET, HEAD, POST, PATCH 는 캐시 가능
실제는 GET, HEAD 정도만 캐시 사용
왜냐하면 POST, PATCH 를 캐시 하려면 본문 내용까지 캐시 키로 고려해야 하는데
대부분 구현이 안돼있다.
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'개발 > HTTP' 카테고리의 다른 글
(HTTP) 13 - HTTP API 설계 예시 (문서, 컬렉션, 스토어, 컨트롤 URI) (0) 2024.10.31 (HTTP) 12 - HTTP 메서드 활용 (0) 2024.10.31 (HTTP) 10 - HTTP 메서드 (GET, POST, PUT, PATCH, DELETE) (0) 2024.10.31 (HTTP) 9 - HTTP 메시지 (0) 2024.10.31 (HTTP) 8 - connectionless (비연결성) (2) 2024.10.31