올해 상반기 이직 준비 기간동안 참 많은 기술질문들을 받았다. 그중 매우 높은 비율을 차지한 Http Method에 대해 정리해보려고 한다.
Http 요청이 서버의 상태를 바꾸지 않을때 안전하다고 한다. 읽기 작업에 해당한다. GET, HEAD, OPTIONS가 해당한다.
동일한 요청을 한번 보내는 것과 여러번 보내는 것이 같은 효과를 갖고, 서버의 상태도 동일할때 멱등성을 보장한다고 한다. GET, HEAD, PUT, DELETE가 해당한다.
안전하면 멱등성을 보장하지만, 멱등성을 보장한다고 해서 안전하진 않다. PUT메소드는 전체 수정이라 멱등성을 보장하지만 PATCH 메소드는 멱등성을 보장할 수도 있고, 아닐 수도 있다. 부분변경을 하는 경우는 멱등하지만, PATCH 메소드를 요청할때마다 특정 값을 증가시키거나 감소시키는 경우 멱등성을 보장하지 않는다. 설계에 따라 다르다고 할 수 있다.