멱등성이란 어떠한 값에 대해 여러번 동일한 연산을 수행하였을 때,
호출 횟수에 구애받지 않고 동일한 결과값을 내어주는 성질이다.
HTTP 메소드에서도 동일하게 적용될 수 있다.
동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니며,
서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다 말한다.
멱등성을 따질 때는 서버의 상태만 바라보면 되므로 HTTP 응답 상태는 신경쓰지 않아도 된다.
{
"operation" : "add",
"age" : 1
}
안전한 메소드는 서버의 상태를 벼경시키지 않는 HTTP 메소드를 의미한다. GET
, OPTIONS
, HEAD
와 같이 조회에 사용되는 메소드를 안전하다 말할 수 있다. 안전한 모든 메소드는 멱등성을 가지지만 그 역은 성립하지 않는다.
PUT
과 DELET
메소드는 멱등성을 가지지만 PUT
은 리소스를 수정하고 DELETE
는 제거하므로 안전한 메소드라 할 수 없다.
따라서 멱등성은 요청에 대한 서버 상태가 같은지가 중요하다 볼 수 있다.