HTTP 메서드의 멱등성

이일우·2023년 3월 29일

공부하기

목록 보기
23/42

HTTP Method와 Status code 글 보러가기

멱등성(Idempotence)이란

우리는 평소 멱등성이라는 말을 들어본 적이 없을 수 도 있습니다. 저 또한 이번 http의 기초적인 통신에 대해 공부하며 처음 들은 단어였으며, 자세하게 안 단어도 아니었습니다.
멱등성이란 동일한 작업을 여러 번 수행해도 결과가 동일한 특성을 말합니다.
예를 들면 하나의 숫자에 1을 곱하는것을 여러번 수행하더라도 결과가 동일한 것과 같은 특성을 멱등성이라 합니다. 이 멱등성은 다양한 분야에서 찾아 볼 수 있습니다.

  • 데이터 베이스에서 같은 쿼리를 여러번 실행해도 데이터의 상태가 동일하게 유지된다.
  • 절대값을 구하는 함수는 같은 수에 대해 그 함수를 여러번 실행해도 같은 값이 반환된다.
  • REST API에서 같은 GET요청을 여러번 보내도 리소스는 변하지 않는다.

HTTP Method의 멱등성

HTTP Method의 멱등성은 같은 요청을 여러 번 수행해도 동일한 결과를 반환하는 특성을 말합니다.
멱등성이 있는 HTTP Method를 사용하면, 클라이언트는 여러 번 같은 요청을 보내도 안전하게 요청을 처리할 수 있습니다.
멱등성이 없는 HTTP Method는 같은 요청을 여러 번 보내면, 각각의 요청에 대해 서버가 리소스의 상태나 서버의 상태를 변경하게 됩니다. 이는 보안상의 문제나 데이터의 일관성 등의 문제를 발생시킬 수 있습니다. 멱등하지 않은 메서드에 멱등성을 제공하려면 서버에서 멱등성을 구현해야 합니다.

HTTP Method의 멱등성과 안정성

메서드멱등성안정성
CONNECTXX
DELETEOX
GETOO
HEADOO
OPTIONSOO
POSTXX
PUTOX
PATCHXX
TRACEOO

GET, PUT처럼 리소스를 조회하거나 대체하는 메서드는 멱등합니다.
PUT도 여러번 호출해도 같은 리소스를 업데이트 하기 때문에 결과가 달라지지 않습니다.
DELETE도 여러번 호출하여도 같은 리소스를 삭제하기에 결과가 달라지지 않습니다.
그러나 POST와 PATCH와 같이 서버에 데이터를 추가하는 메서드는 멱등하지 않습니다.

HTTP Method에서는 멱등성 말고도 안정성이라는 속성도 있습니다.
안정성이란 해당 메소드를 실행했을 때 요청한 리소스나 서버의 상태를 변경하지 않는 특성을 의미합니다. 안정성이 있는 메서드는 멱등성도 보장합니다. 그러나 멱등성이 있는 메서드가 항상 안정성을 지니지는 않습니다.

참고자료 출처

멱등성 -MDN
멱등성이 뭔가요 -tosspayments
RFC 7231

0개의 댓글