본문 바로가기

ComputerScience/Network

[API]HTTP methods에서 Idempotency(멱등법칙)이란?

"In the context of REST APIs, when making multiple identical requests has the same effect as making a single request – then that REST API is called idempotent."

Idempotency

수학에서  Idempotency(멱등법칙)이란, 아무리 연산을 여러 번 해도 결과 값이 달라지지 않는 법칙입니다.

예를 들어, 1 * 1 * 1 * 1 * 1 같은 연산입니다.

 

REST API에서 Idempotency란 성공적으로 수행된 요청이 서버 리소스에 미치는 효과가 해당 요청이 몇 번 실행되었는지에 독립적인 것을 의미합니다.

REST API를 설계할 때 API 소비자가 실수를 할 수 있다는 점을 인식해야 합니다. 클라이언트는 API에 중복 요청을 전송할 수 있습니다. API를 구현할 때 중복 요청이 시스템을 불안정하게 만들지 않도록 해야 합니다.

또한, Idempotency는 효율적인 캐싱 및 최적화 전략을 위한 주요 요소입니다. 캐시 및 콘텐츠 전송 네트워크(CDN)는 멱등한 요청의 결과를 저장하고 제공함으로써 서버 부하를 줄이고 응답 시간을 개선할 수 있습니다.

Example

예를 들어 HTTP 메소드들 중에서 DELETE 요청은
N개의 유사한 DELETE 요청을 실행할 때 첫 번째 요청은 리소스를 삭제하고 응답은 200(OK) 또는 204(No Content)가 될 것입니다.

나머지 N-1개의 요청은 404(찾을 수 없음)를 반환할 것입니다.

분명히 응답은 첫 번째 요청과 다르지만, 서버 측에서는 원본 리소스가 이미 삭제되었으므로 어떤 리소스의 상태 변경도 없습니다.

그러므로 DELETE 요청은 Idempotency 합니다.

HTTP methods supported Idempotency

(여기서 is safe란, 서버의 상태를 수정하지 않는 HTTP 방법은 안전한 방법을 의미합니다.)

참고 자료

https://restfulapi.net/idempotent-rest-apis/

 

Idempotency - What is an Idempotent REST API?

A REST API is called idempotent when making multiple identical requests to an API has the same effect as making a single request.

restfulapi.net

https://medium.com/nerd-for-tech/what-is-idempotency-in-rest-apis-and-why-should-you-care-8c0a55 0 e345 f