HTTP 메소드의 안정성과 멱등성

HTTP 메소드의 안정성과 멱등성

프로젝트
프로젝트
카테고리
Dev
작성일
2023-08-28
태그
TIL
작성자
꾸생
상태
공개

멱등성이란?

notion image
동일한 요청을 한 번 만 보내건 여러 번 보내던 같은 효은 효과를 주고, 서버 상태도 동일하게 유지될 때, 멱등성을 가진다고 한다. HTTP 메서드에서 멱등성을 가진다라고 표현하는데, 올바르게 메서드를 구현한 경우 GET, HEAD, PUT, DELETE 메서드만 멱등성을 가진다.
📌 DELETE의 경우만 두 번째 호출에서 404를 반환하지만 결과적으로 서버는 동일하게 유지되므로 멱등성을 가진다.
멱등성을 가진다라는 의미는 어느정도 안정성이 있다고 볼 수 있다. 하지만 무조건 안전하다는 의미는 아니기 때문에 안전한 메소드 설계에 힘을 써야한다.
다른 메소드는 익숙하므로 생략..

PUT 메소드

첫 메소드 요청을 보냈을 때 데이터가 없다면 생성할 것이고 기존 데이터가 존재한다면 수정하는 메소드다. 기존에 데이터가 있든 없든 이후 수정되는 서버의 상태는 동일하므로 멱등성을 띈다.

PATCH 메소드

양날 검과 같은데, 설계에 따라 멱등성을 띄고 안 띌 수 있다. PATCH 메소드는 데이터를 수정하는데, 개발자가 일정 값으로 수정되도록 설계한다면 멱등성을 띈다. 반대로 요청마다 값을 1씩 더한다거나 DB에 요청한 날짜가 포함된다는 등. 이 처럼 설계한다면 멱등성이 없는 것이다.

HTTP 메소드 안정성

HTTP 메소드
안정성 여부
GET
O
POST
X
PUT
X
PATCH
X
DELETE
X

Reference