ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Http method와 요청 매핑
    Spring/Spring MVC 2020. 6. 2. 01:38

     

     

    • 해당 핸들러는 RequestMapping을 통해 핸들러 역할을 하게 된다.
    • 이때 메소드를 따로 명시하지 않으면 모든 메서드 요청을 다 허용하게 된다.

     

     

     

     

    • Get만 처리하고 싶다면 method에다 허용하고 싶은 RequestMethod를 설정해주면 된다.

    • 이제 Post요청을 보내보면 405로 Method NotAllowed 가 되는 것을 알 수 있다.

     

     

     

    • Get과 Post를 둘다 허용한다면 다음과 같이 할 수 있다.

     


     

    Http 메소드에 대해 알아보자.

     

    Get

    • 클라이언트가 서버에 있는 리소스를 요청할 때 사용한다
    • Get요청에 응답은 캐싱이 가능하다. 캐시와 관련된 헤더를 응답에 싣고 if-not-modified를 통해 조건 Get 가능하다.
    • 브라우저에 히스토리에 남게 된다.
    • 민감한 데이터를 보낼 때는 URL에 다 표기가 되기에 주의해야 한다.
    • 멱등 ( Idempotent )

    ( 동일한 get 요청은 동일한 응답을 return 한다 )

     

    Post

    • 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용한다.
    • 서버에 보내는 데이터를 Post 요청 본문에 담는다.
    • 캐시 할 수 없다.
    • 본문에 담기 때문에 데이터 길이 제한이 없다.
    • 멱등 ( Idempotent) 이 아니다.

    (같은 Post 요청은 매번 달라질 수 있다. )

     

     

    Post와 Put의 차이?

     

    Post

    • 데이터를 처리할 수 있는 리소스를 가리킨다
    • Idempotent 하지 않을 수도 있다.

    Put

    • URL가 리소스 자체를 가리킨다.
    • 따라서 Idempotent 하다.

     

    Patch

    • Put과의 차이점만 실어서 보내게 된다.
    • 리소스의 일부 데이터만 수정하고 싶은 경우 사용하게 된다.

     


     

    하나의 요청만 허락하고 싶은 경우?

     

    • 다음과 같이 @GetMapping @PostMapping 등을 통해 가능하다.

     

     

     

    • 또는 @RequestMapping을 클래스 레벨에 설정해서
    • 이 컨트롤러 안에 모든 핸들러의 Get 요청 응답만 처리하도록 할 수 있다.

    'Spring > Spring MVC' 카테고리의 다른 글

    핸들러와 Media Type  (0) 2020.06.04
    핸들러 URI 패턴  (0) 2020.06.02
    WebMvcConfigurer 살펴보기  (0) 2020.05.31
    Json 컨버터  (0) 2020.05.28
    HTTP 메세지 컨버터와 String  (0) 2020.05.28
Designed by Tistory.