HTTP 요청 매핑하기

핸들러를 HTTP의 구성요소에 따라 매핑하는 방법들

HTTP Method

  • GET
    • 클라이언트가 서버의 리소스를 요청할 때 사용
    • 캐싱할 수 있다. (조건적인 GET으로 바꿀 수 있다.)
    • 브라우저에 기록이 남는다.
    • 북마크 할 수 있다.
    • 민감한 데이터를 보낼 때 사용하면 안된다. (URI에 전부 다 표시된다.)
    • idempotent: 같은 요청에 같은 결과를 보인다.(연산을 여러 번 적용하더라도 결괏값이 달라지지 않는 일.)
  • POST
    • 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용한다.
    • 서버에 보내는 데이터를 POST 요청 본문에 담는다.
    • 캐시할 수 없다.
    • 브라우저 기록에 남지 않는다.
    • 북마크 할 수 없다.
    • 데이터 길이 제한이 없다.
  • PUT
    • URI에 해당하는 데이터를 새로 만들거나 수정할 때 사용한다.
    • POST와 다른 점은 “URI“에 대한 의미가 다르다.
      • POST의 URI는 보내는 데이터를 처리할 리소스를 지정한다.
      • PUT의 URI는 보내는 데이터에 해당하는 리소스를 지칭한다.
    • Idempotent
  • PATCH
    • PUT과 비슷하지만 기존 엔티티와 새 데이터의 차이점만 보낸다.
    • Idempotent
  • DELETE
    • URI에 해당하는 리소스를 삭제할 때 사용한다.
    • Idempotent
  • 스프링 웹 MVC에서 HTTP method 매핑하기

    • @RequestMapping(method=RequestMethod.GET)

    • @RequestMapping(method={RequestMethod.GET, RequestMethod.POST})

    • @GetMapping, @PostMapping

      // 클래스 단위: 하위 메소드도 동일하게 적용된다.
      @RequestMapping(method=RequesteMethod.GET)
      class SampleController {
          ...
      }
          
      // 메소드 단위: 한 메소드에 적용한다.
      @RequestMapping(value="/hello", method=RequestMethod.GET)
      public String hello()
      

댓글남기기