이전 포스팅에서 안전한 HTTP 메소드에 관해 포스팅하며,
"멱등성"에 대해 언급했다.
도대체 멱등성이란 무었일까?

사실 별로 알고 싶진 않다...
멱등성의 사전적 의미
연산을 여러 번 적용하더라도 결괏값이 달라지지 않는 성질
영어로는 Idempotent라고 한다.
필자는 사실 대학을 미국에서 나왔는데, 어떻게 읽는지도 몰라 네이버 사전 음성 버튼을 여러번 눌렀다.

아이뎀포턴트라고 한단다...
단어는 어려운데 막상 뜻을 알고나면 이해는 쉽다.
이전 포스팅에서 멱등성을 가지는 메서드로는 아래와 같다고 했다.
- PUT
- DELETE
- 안전한 메소드들
즉, 해당 메소드들은 아무리 반복해서 요청을 서버에 보내더라도 결과는 맨 처음 요청과 달라지지 않는다는 것이다.
멱등성이 필요한 이유
그렇다면 멱등성이 왜 필요한 것일까?
이유는 HTTP가 "통신"이라는 성질을 가지고 있기 때문이다.
모든 통신은 실패할 가능성이 있다.
예를들어, 데이터를 업데이트하려고 PUT 요청을 보냈는데 어떠한 이유로 통신이 끊겨 서버로 부터
성공적으로 업데이트가 되었는지 회신을 받지 못했다고 하자.
이럴 때 다시 PUT 요청을 보내야 한는데, 문제는 서버에서 이미 업데이트를 하고 결과 전송까지 모두
끝내버렸다면 어떻게 해야 할까?
다행히 PUT은 멱등성을 가지기 때문에 다시 한번 확인삼아 요청을 보낸다 한들 그 결과가 달라지지 않으니
안심하고 여러번 호출해서 사용할 수 있다.
'HTTP' 카테고리의 다른 글
[Socket.io] Socket.io란 무엇인가? (0) | 2022.03.05 |
---|---|
HTTP MIME (0) | 2021.11.18 |
HTTP 상태 코드 (0) | 2021.11.18 |
HTTP PUT과 PATCH 메소드의 차이 (0) | 2021.11.18 |
HTTP 요청 메서드 (0) | 2021.11.18 |