http 명령 이론적으로는 PUT, DELETE 명령은 각각 요청 URI에 대한 자원의 생성, 삭제를 의미합니다. 그냥 의미론만 따지고 본다면 해당 URI의 자원을 접근할 수 없게 만든다는 의미를 가지고 있기 때문에 사실 보안 상의 문제를 발생 시키는 것이 아는가? 하는 오해를 불러일으키기 쉽습니다. 그러나 클라이언트가 요청을 어떻게 보내든지 처리하는 것은 서버 쪽 마음이기 때문에 이론적인 PUT, DELETE의 의미를 수정하여 처리하는 것은 개발자의 마음이기 때문에 이런 문제가 발생하지 않습니다.(억지로 해킹이 가능하도록 구현할 사람도 없겠죠;;) 웹 서비스의 측면에서 이를 처리할 때 다음과 같이 생각하고 구현하면 됩니다. POST 는 특정 URI 자원의 생성 GET은 특정 URI 자원의 표현을 반환 PUT은 특정 URI 자원을 갱신 DELETE는 특정 URI 자원을 삭제 만약 서버 쪽 도메인 모델이 DBMS라면 각각의 요청을 처리하는 과정이 CRUD라고 생각하면 되는 것입니다. 자, 그렇다면 이런 클라이언트와 서버 쪽에서 REST 기반의 웹 서비스를 구현하려면 무엇이 필요할까요? 자바에서는 Servlet을 지원하고 있습니다. 만약 JSP 환경하에서 정확한 Rest를 구현하려면 Servlet을 통해서 구현하면 됩니다. 사실 서블릿을 일일이 매핑하는 것은 상당히 시간 낭비적이기 때문에 대표 서블릿을 하나만 매핑하고 이 서블릿을 통해서 처리하게 하는 것이 좋겠죠. 아 물론 서버에 접근하는 클라이언트 수가 작다는 가정하에서 입니다. 많다면 명령에 따라서 분배를 좀 해주셔야겠죠. doPost, doGet, doPut, doDelete 등등의 메서드를 사용하면 됩니다. (사실 HTTP 명세에서는 REST의 의미론 외의 OPTION, HEAD, TRACE 등의 명령도 정의 되어 있습니다. http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html ) 클라이언트 측에서 웹 브라우저...