Iyoungman Back-end Developer

HTTP DELETE는 멱등성을 가질까?

2020-05-28

Question

  • 서버로 아래와 같은 DELETE 요청을 보낸다고 생각하자.
DELETE /account/123 HTTP/1.1


  • 서버에 존재하는 자원이라는 가정하에
  • 첫번째 응답은 HTTP 200 번대가 오지만
    재요청하면 응답은 400 번대가 올것이다.
  • 해당 자원이 없기 때문이다.

  • 과연 HTTP Spec에 나온대로 DELETE가 멱등한것이 맞을까?


Answer

  • DELETE 멱등하다.
  • 멱등성에 대해 정확히 이해해야한다.


idempotency - you can send the request more than once without additional changes to the state of the server.

  • Stackoverflow의 답변중 일부는 위와 같다.


Opinion

  • 위 답변에서 서버의 상태(state of server) 가 중요하다고 생각한다.
  • Client가 아닌 Server의 입장에서 생각하면 된다.
  • Server의 경우 첫번째 요청이 와서 해당 자원이 삭제되었든
  • 재요청이 왔을때 해당 자원이 없어 Client에게 에러코드를 응답해줬든
  • 동일한 요청에 대한 상태는 같다.

Comments

Content