HTTP 프로토콜에서 멱등성(Idempotence)은 여러 번 수행되더라도 결과가 동일한 연산을 의미한다. HTTP 메소드 중에서 GET
, PUT
, DELETE
, HEAD
, OPTIONS
, TRACE
는 멱등성을 가진다고 할 수 있다. 예를 들어, GET
요청을 여러 번 수행해도 서버의 데이터나 상태가 변하지 않는다. 반면, POST
메소드는 데이터를 서버에 제출하여 서버의 상태를 변경할 수 있으므로 멱등하지 않다.
GET
보다 보안적으로 안전하다고 할 수 있다. POST
는 멱등하지 않기 때문에 같은 요청을 여러 번 보내면 동일한 수의 자원이 여러 번 생성될 수 있다.PUT
은 멱등성을 가지기 때문에 같은 PUT
요청을 여러 번 수행해도 하나의 결과만 생성된다.PUT
과 달리 전체 리소스를 교체하지 않고 일부분만을 업데이트한다.HTTP 1.1 표준에서는 기술적으로 GET 요청의 본문을 허용하지만, 이는 권장되지 않는다. 이유는 다음과 같다:
이렇게 HTTP 메소드에 대해 상세하게 설명하면, 각 메소드의 사용 케이스와 기술적 특성을 이해하는 데 도움이 될 것이다.