Spring MVC HTTP Method
Spring Web MVC
백기선님의 강의인 Spring Web MVC 강의를 듣고 공부한 내용을 정리한 글
HTTP Method
HTTP Method : GET, POST, PUT, PATCH, DELETE …
Spring에서는 위의 HTTP METHOD를 처리해주는 애노테이션이 존재한다.
@RequestMapping은 Spring에서 HTTP 요청을 처리하기 위한 핸들러를 명시하는 애노테이션이다.
스프링에서는 HTTP 메소드를 명시하지않으면 모든 HTTP 메소드를 처리한다.
@RequestMapping에 Root URL에 GET 메소드로 호출되는 응답을 처리하고 싶은 경우 다음과 같이 가능하다.
@RequestMapping(value = "/", method = RequestMethod.GET)
위의 요청은 조금 더 간략화 할 수 있다.
@GetMapping("/")
또한 클래스 레벨에 설정이 가능한데,
@RequestMapping(method = RequestMethod.GET)
public class Test {
...
}
이 경우 클래스 내부에 존재하는 모든 핸들러에 요청을 GET으로 처리한다는 것을 의미한다.
HTTP 메소드 별 특징에 대해서도 간략히 알아보자.
GET 요청
- 클라이언트가 서버의 리소스를 요청할 때 사용.
- 캐싱 가능 (조건적인 GET으로 바뀔 수 있다.)
- 브라우저 기록에 남는다.
- 북마크 할 수 있다.
- 민감한 데이터를 보낼 때 사용하지 말 것 (URL에 다 노출된다.)
- Idemponent - 멱등성을 보장한다. 즉 항상 같은 결과
POST 요청
- 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용한다.
- 서버에 보내는 데이터를 POST 요청 본문에 담는다.
- 캐시할 수 없다.
- 브라우저 기록에 남지 않는다.
- 북마크 할 수 없다.
- 데이터 길이 제한이 없다.
PUT 요청
- URI에 해당하는 데이터를 새로 만들거나 수정할 때 사용한다.
- POST와 다른 점은 “URI”에 대한 의미가 다르다.
- POST의 URI는 보내는 데이터를 처리할 리소스를 지칭한다.
- PUT의 URI는 보내는 데이터에 해당하는 리소스를 지칭한다.
- Idemponent
PATCH
- PUT과 비슷하지만, 기존 엔티티와 새 데이터의 차이점만 보낸다는 차이가 있다.
- Idemponent
DELETE 요청
- URI에 해당하는 리소스를 삭제할 때 사용한다.
- Idemponent
Reference
인프런 백기선님의 스프링 Web MVC