작성
·
368
·
수정됨
답변 2
2
안녕하세요
저도 궁금해서 찾아보니 아래와 같이 JSP는 GET, POST, HEAD에 대해서만 허용된다는 것을 알 수 있었습니다. 중단점을 찍어서 추적해보니 "JSPServlet" 클래스에서 아래와 같은 오류를 발생시키고 있었습니다.
Method Not Allowed HTTP Status 405 - JSPs only permit GET POST or HEAD
오류를 검색해보니 다음과 같은 링크를 발견할 수 있었습니다.
https://stackoverflow.com/questions/23886941/http-status-405-jsps-only-permit-get-post-or-head
정리하자면, Controller에서 모든 메서드의 요청이 받아지는 것이 맞지만 JSP 페이지를 렌더링하는 과정에서 Method를 검사하고 오류를 반환하는 것입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
재영님의 질문과 유사한 내용의 질문에 답변한 경우가 있어 해당 정보를 공유 드립니다. @RequestMapping
어노테이션을 사용할 때 특정 HTTP 메소드로 제한하지 않으면, 기본적으로 모든 HTTP 메소드(GET, POST, PUT, PATCH, DELETE 등)에 대해 요청을 처리할 수 있습니다. 그러나 재영님의 경우 PUT, PATCH, DELETE 요청이 처리되지 않는 상황에 대한 구체적인 이유는 다양한 요인에 기인할 수 있습니다. 구체적인 상황을 분석하기 위해서는 추가 정보가 필요할 수 있습니다.
이와 관련하여 강의 중에 @RequestMapping
으로 설정한 부분에서 HTTP 메소드를 명시적으로 지정하여 변경하는 예시에 대한 질문이 있었고, 그에 대한 답변이 있으니 아래 링크를 통해 확인해 보시기 바랍니다.
강의명: 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문 제목: 질문있습니다!!
질문 내용과 답변 보기
위의 링크에서 @RequestMapping
과 HTTP 메소드에 대한 더 자세한 내용을 확인하실 수 있습니다.
추가로 응답 헤더의 Allow의 값을 보니 OPTIONS까지 허용되는 것으로 보입니다.
그러나 HEAD와 OPTIONS는 응답 본문이 비어져 오기 때문에 페이지를 반환 받는 용도로는 사용할 수 없을 것 같습니다.
HEAD
: 서버는 헤더 정보만을 반환하고 본문은 반환하지 않음. (리소스의 메타데이터를 확인, 리소스가 존재하는지, 그리고 최근에 변경되었는지 등을 확인할 때 사용)OPTIONS
: 특정 리소스에 대해 서버가 지원하는 HTTP 메서드를 확인하는 데 사용됨. 응답은 일반적으로 리소스에 대해 허용되는 메서드를 나타내는 "Allow" 헤더를 포함하며, 본문은 포함하지 않음.