반응형
GET
- 클라이언트가 서버의 리소스를 요청할 때 사용.
- 캐싱 가능.
- Idempotent (같은 요청에는 같은 응답)
POST
- 클라이언트가 서버의 리소스를 수정 또는 생성할때 사용.
- 캐싱 불가능
- GET과 다르게 idempotent하지 않을 수 있다.
PUT
- URI에 해당하는 데이터를 새로 만들거나 수정할 때 사용.
- Idempotent하다.
POST와 PUT의 차이점 - 두 요청 모두 서버의 리소스를 새로 만들거나 수정할 때 사용할 수 있다. 그러나 다른점이 있다면 idempotent하지 않다는 것이다. idempotent는 같은 요청을 몇번 보내도 항상 같은 결과가 나온다는 것인데 POST의 경우 '/dogs'라는 요청으로 '/dogs/1', '/dogs/2'...과 같이 다른 곳에 리소스가 생길 수 있다. 그러나 PUT의 경우에는 리소스의 위치를 명시해줘야 함으로써 idempotent하다는 것이다. 가령 '/dogs/1'이라고 PUT요청을 보내면 '/dogs/1'의 위치에 리소스를 새로 만들거나 그 위치에 있는 리소스를 수정하겠다는 것이다.
PATCH
- PUT과 비슷, 기존 엔티티와 새로운 데이터를 보내야한다.
- idempotent하다.
DELETE
- URI에 해당하는 리소스를 삭제할 때 사용.
- idempotent하다.
요청메서드로 Mapping
@RequestMapping ( 모든 요청메서드를 허용한다. 단, method속성으로 지정가능.)
// value속성만 가질 때 @Controller public class SampleController { @RequestMapping("/hello") @ResponseBody public String hello() { return "hello"; } } // method속성을 가질 때 @Controller public class SampleController { @RequestMapping(value = "/hello", method = {RequestMethod.GET, RequestMethod.POST} ) @ResponseBody public String hello() { return "hello"; } }
@---Mapping (---에는 각각의 요청 메서드가 들어간다.)
@Controller public class SampleController { @GetMapping("/hello") // @PostMapping("/hello") @ResponseBody public String hello() { return "hello"; } }
반응형
'Web > Spring' 카테고리의 다른 글
[Spring MVC] HandlerMethod - URI패턴 (0) | 2020.01.10 |
---|---|
[Spring MVC] Custom Annotation 만들기 (0) | 2020.01.08 |
[Spring MVC] HEAD와 OPTIONS Request method (0) | 2020.01.08 |
[Spring MVC] 미디어타입 Mapping, headers와 param 속성 (0) | 2020.01.08 |
[Spring MVC] URI 패턴으로 Mapping (0) | 2020.01.08 |