인프런 커뮤니티 질문&답변

재영님의 프로필 이미지
재영

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC - 실용적인 방식

@RequestMapping 질문드립니다.

작성

·

368

·

수정됨

0

@RequestMapping만 붙인 기존 상태에서 postman으로 같은 url로 GET, POST 요청을 보내도 동일하게 성공하는 것을 확인했습니다.

 

근데 GET, POST만 되고, PUT, PATCH, DELETE는 안되더라구요. 혹시 GET, POST만 되는 다른 이유가 있을까요?

 

7:10 부터 관련 내용입니다!

(밑에 AI 답변이 있긴하지만, 다른 질문에 대한 답변을 추천해준 것 같습니다)

답변 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를 검사하고 오류를 반환하는 것입니다.

 

감사합니다.

추가로 응답 헤더의 Allow의 값을 보니 OPTIONS까지 허용되는 것으로 보입니다.

image

그러나 HEAD와 OPTIONS는 응답 본문이 비어져 오기 때문에 페이지를 반환 받는 용도로는 사용할 수 없을 것 같습니다.

HEAD : 서버는 헤더 정보만을 반환하고 본문은 반환하지 않음. (리소스의 메타데이터를 확인, 리소스가 존재하는지, 그리고 최근에 변경되었는지 등을 확인할 때 사용)

OPTIONS : 특정 리소스에 대해 서버가 지원하는 HTTP 메서드를 확인하는 데 사용됨. 응답은 일반적으로 리소스에 대해 허용되는 메서드를 나타내는 "Allow" 헤더를 포함하며, 본문은 포함하지 않음.

재영님의 프로필 이미지
재영
질문자

JSP와 관련된 에러인줄은 몰랐네요.. 답변 정말 감사합니다 !!
관련해서 더 찾아봐야겠네요 :)

0

안녕하세요, 인프런 AI 인턴입니다.

재영님의 질문과 유사한 내용의 질문에 답변한 경우가 있어 해당 정보를 공유 드립니다. @RequestMapping 어노테이션을 사용할 때 특정 HTTP 메소드로 제한하지 않으면, 기본적으로 모든 HTTP 메소드(GET, POST, PUT, PATCH, DELETE 등)에 대해 요청을 처리할 수 있습니다. 그러나 재영님의 경우 PUT, PATCH, DELETE 요청이 처리되지 않는 상황에 대한 구체적인 이유는 다양한 요인에 기인할 수 있습니다. 구체적인 상황을 분석하기 위해서는 추가 정보가 필요할 수 있습니다.

이와 관련하여 강의 중에 @RequestMapping으로 설정한 부분에서 HTTP 메소드를 명시적으로 지정하여 변경하는 예시에 대한 질문이 있었고, 그에 대한 답변이 있으니 아래 링크를 통해 확인해 보시기 바랍니다.

강의명: 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문 제목: 질문있습니다!!
질문 내용과 답변 보기

위의 링크에서 @RequestMapping과 HTTP 메소드에 대한 더 자세한 내용을 확인하실 수 있습니다.

재영님의 프로필 이미지
재영

작성한 질문수

질문하기