-
(12) HTTP - HTTP 매서드의 속성HTTP 웹/Http 웹 기본 2021. 6. 26. 18:45
1. HTTP 메서드 속성의 종류
1-1) 속성 종류
- 안전( Safe Methods )
- 호출/사용해도 리소스를 변경하지 않음
※ 계속 호출시, db server에 로그같은 것이 쌓여서 장애가 발생하면?
- 해당 리소스의 변경여부만 Safe의 scope로 생각 - 멱등( Idempotent Methods )
- f( f(x) ) = f(x) : 한번 더 호출하여도 결과가 동일하기에, n번 호출도 1번 호출과 결과가 동일한 것이 멱등
- 멱등 메서드
GET : 한번 / n번 조회도 같은 결과가 조회 됨
PUT : 같은 url 절대 경로에 결과를 대체하므로, 최종 리소스의 결과는 같음
DELETE : 같은 url 절대 경로에 결과를 삭제하므로, 최종 리소스의 삭제는 같음POST : 데이터 + 서버의 State 변하는 작업이 수반되므로, 중복작업이 되어
같은 결과가 발생하는 것이 아닐 수 있음!
해도 되는가에 대한 판단 근거가 될 수 있음
> 멱등성의 Scope
Q : 재요청 중간에 다른 곳에서 리소스를 변경해 버리면?
- 사용자1 : GET -> username : A, age : 20
- 사용자2 : PUT -> username : A, age : 30
- 사용자3 : GET -> username : A, age : 30
> 사용자3은 사용자2의 영향을 받은 데이터를 조회하게 되지만, 외부요인이므로
이러한 외부 요인에 의한 리소스 변경을 멱등성의 scope에 포함하지 않음 - 캐시가능( Cacheable Methods )
응답결과 리소스를 캐시해서 사용할 수 있는지의 여부
( 어디엔가 저장을 하여 바로 다시 꺼내쓸 수 있게 하는 것 )
ex) Image file 같은 경우 - local PC(웹브라우저) / 중간 캐시 서버 등에 저장하여 제공
- GET, HEAD, POST, PATCH 캐시 가능
- 실제로는 GET, HEAD 정도만 캐시로 사용
> POST, PATCH는 본문 body까지 캐시 키로 고려해야 하는데, 구현이 어렵다.
1-2) 메소드 별 속성값
참조
섹션 : HTTP 메서드
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
반응형'HTTP 웹 > Http 웹 기본' 카테고리의 다른 글
(13) HTTP - 헤더 개요 (0) 2021.07.02 (13) HTTP - HTTP 상태코드 (0) 2021.06.30 (11) HTTP - HTTP 매서드 - PUT, PATCH, DELETE (0) 2021.06.26 (10) HTTP - HTTP 매서드 - GET, POST (0) 2021.06.24 (9) HTTP - HTTP API 만들기/설계 (0) 2021.06.22 - 안전( Safe Methods )