HTTP와 관련된 레퍼런스를 찾아보면 멱등성이 라는 용어를 쉽게 찾아 볼 수 있습니다. 다소 생소한 표현인 멱등성의 개념과 자주 사용하는 HTTP 메소드를 정리 하겠습니다.
HTTP 메소드를 사용하여 서버에 요청을 보낼 때 마다 같은 응답이 돌아오는 것을 '멱등하다' 라고 표현합니다.
GET 메소드로 서버에 여러번 요청하더라도 같은 URI에 해당하는 리소스를 동일하게 응답 받으므로 멱등합니다.
HEAD 메소드로 서버에 여러번 요청하더라도 status lone과 header를 동일하게 응답 받으므로 멱등합니다.
PUT 메소드는 리소스를 대체할 때 사용하며, 대체된 결과에 따른 응답을 동일하게 응답 받으므로 멱등합니다.
DELETE 메소드를 사용할 경우, "204 No Content" 상태 코드로 동일하게 응답 받으므로 멱등합니다.
POST 메소드를 사용하여 리소스를 추가할 경우, 리소스가 추가된 결과에 따른 응답받기 때문에 멱등하지 않습니다.
POST 메소드를 사용하여 리소스를 변경할 경우, 리소스가 변경된 결과에 따른 응답받기 때문에 멱등하지 않습니다.
HTTP 메소드를 사용할 때 서버에 상태를 변동이 없는 경우 경우 안전하다고 표현합니다.단순히 조회하는 기능만 있는 GET, HEAD 메소드는 안전합니다.
하지만 POST, PUT, PATCH, DELETE와 같이 리소스를 추가하고 수정하는 메소드들은 서버의 리소스를 변경 시키기 때문에 안전하지 않다고 표현합니다.
Reference
https://developer.mozilla.org/ko/docs/Glossary/Idempotent
https://developer.mozilla.org/ko/docs/Glossary/Safe/HTTP