작년에 들어갔던 프로젝트 요구사항중의 하나가 솔루션의 기초 데이터를 제공하는 공통API개발 있어 2주정도 개발했었다. 당연히 REST 규칙에 맞게 HTTP METHOD를 맞춰서 개발을 하였으나,
PUT
,DELETE
METHOD는 보안에 취약하다는 지적이 있었다. 처음에는 왜 이게 취약한건지는 몰랐지만
이 곳에서 비슷한 고민을 했던 질문이 있었고 어느정도 해결이 되었으나, 메소드를 제대로 사용해보자는 생각으로 정리하게 되었다.
DELETE
는 단어 그대로 서버에 지정된 리소스 삭제를 요청하기위한 메서드이다PUT
은 새로운 리소스 등록 또는 변경을 요청하는 메서드이다. 수정 요청의 용도로 더 많이 쓰인다.
MDN문서에 따르면 DELETE
와 PUT
는 안전함은 No라고 한다.
MDN에서말하는 안전함의 의미는 서버의 상태를 바꾸지않으면 안전하다고한다.
즉, 2개의 메소드는 삭제와 수정 요청은 서버의 상태를 변경하기때문에 안전하지 않다라고 명시를 하는거 같다.그래서 GET
은 주로 서버의 읽기요청을 하기때문에, 안전하다고 한다.
DELETE METHOD(Mozilla MDN)
PUT METHOD(Mozilla MDN)
멱등성(Idempotent)