Post

HTTP 메서드의 멱등성

HTTP 메서드의 멱등성

멱등성이란?

연산을 여러번 적용하더라도 결과가 달라지지 않는 성질을 멱등성이라고 한다. HTTP 메서드의 멱등성은 동일한 요청을 한 번 보내는 것과 여러번 보내는 것이 서로 동일한 효과를 지니며, 서버의 상태도 동일하게 남을 경우에 멱등하다고 말할 수 있다. 대표적으로 멱등한 메서드는 GET , HEAD , PUT , DELETE , TRACE , OPTIONS 가 있다.

멱등성은 어떻게 사용되는가?

전송 커넥션이 끊어졌을 때, 멱등성은 클라이언트가 다시 같은 요청을 해도 되는가에 대한 판단 근거가 될 수 있다. 멱등하다면 요청을 재시도할 때 같은 서버의 상태를 보장하기 때문에 문제가 없다. 하지만, 멱등하지 않다면 재시도 요청시 중복 요청을 보내 문제를 발생 시킬 수 있다.

예를 들어, 사용자가 결제하는 시점에 타임아웃으로 인해 정상 응답을 못받는 상황을 생각해 볼 수 있다. 해당 경우에서 멱등하지 않은 결제 API 경우에는 결제가 성공했는지 수동으로 확인하고 요청해야한다. 하지만, 멱등한 결제 API의 경우에는 안심하고 여러 번 요청할 수 있으며 중복 요청으로 발생하는 문제 (중복 문제)를 방지할 수 있다.

References

This post is licensed under CC BY 4.0 by the author.