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

재영님의 프로필 이미지

작성한 질문수

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

스프링 MVC - 실용적인 방식

@RequestMapping 질문드립니다.

24.01.03 00:34 작성

·

335

·

수정됨

0

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

 

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

 

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

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

답변 2

2

덕범님의 프로필 이미지

2024. 01. 03. 17:41

안녕하세요

저도 궁금해서 찾아보니 아래와 같이 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를 검사하고 오류를 반환하는 것입니다.

 

감사합니다.

덕범님의 프로필 이미지

2024. 01. 03. 17:43

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

image

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

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

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

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

2024. 01. 03. 19:24

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

0

인프런 AI 인턴님의 프로필 이미지

2024. 01. 03. 00:36

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

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

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

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

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

재영님의 프로필 이미지

작성한 질문수

질문하기