Search
Duplicate

HTTP 메서드 속성

태그
HTTP 메서드
2 more properties

HTTP 메서드의 속성

Safe Methods

호출해도 representation 을 변경하지 않는것을 말합니다. 로그에 관련된건 고려하지 않고 오직 해당 representation 만 고려합니다.

Idempotent Methods

몇번을 호출하든 결과가 똑같은 것을 말합니다. GET, PUT, DELETE 의 경우 같은 요청을 해도 결과는 똑같지만 POST 의 경우는 다릅니다. POST 는 요청 데이터 처리, 주로 등록에 사용한다고 하였습니다. 이러한 요청이 두번 세번 호출되면 어떻게 될까요? 같은 데이터 처리가 중복해서 발생하기 때문에 결과가 달라집니다. 때문에 POST 는 멱등이 아니라고 할 수 있습니다.
멱등이라는 개념은 왜 필요할까요? 멱등은 자동 복구 메커니즘에 활용할 수 있습니다. 즉, 어떤 요청 처리를 처리하지 못했을 때 같은 요청을 다시 해도 되는지에 대한 판단 근거로 사용 될 수 있습니다. 해당 메서드가 멱등성을 가지고 있다면 해도 되겠죠.
하지만 만약 재요청 중간에 리소스가 변경되면 어떻게 될까요? 멱등은 외부 요인에 인한 리소스 변경까지 고려하지는 않습니다. 즉 바뀐 데이터를 조회하게 됩니다. 이러한 경우에는 멱등성을 가진다고 할 수 없습니다.

Cacheable Methods

응답 결과 리소스를 캐시해서 사용해도 될까요? GET, HEAD, POST, PATCH 의 경우는 가능합니다. 하지만 실제로는 GET, HEAD 정도만 캐시로 사용합니다. POST, PATCH 의 경우 본문 내용까지 캐시 키로 고려해야 하는데 구현이 쉽지 않기 때문입니다. 캐시에 대한 자세한 내용은 섹션 8 까지 공부하고 다시 적어보도록 하겠습니다.