ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 핸들러 URI 패턴
    Spring/Spring MVC 2020. 6. 2. 23:55

     

     

    한 글자가 추가로 오는 경우

     

    • ?는 한문자를 나타내며 랜덤한 글자를 모두 맵핑하게 된다.

    • 따라서 다음과 같은 요청은 /hellos 지만 200응답이 나오게 된다.

    여러 개의 글자가 추가로 오는 경우

     

    • * 를 붙여서 여러 개의 글자를 추가로 맵핑하게 된다.

     

    • 따라서 다음과 같은 테스트는 통과하게 된다.

     

    • 하나의 * 는 하나의 path(/)를 기준으로 하므로 다음과 같은 Test는 실패하게 된다.
    • 여러개의 path(/) 로도 허용하려면 *를 2개 붙여주면 된다.

     

    핸들러 요청을 정규식으로 받아보기

     

     

    • 다음과 같이 정규식과 @PathVariable를 통해 URI Path에 들어있는  name을 받아올 수 있다.

    • 이제 name으로는 영문자만 허용하고 응답 본문으로 "hello seungyeol" 이 나오게 된다.

     

     


     

    • 다음과 같은 두개의 핸들러는 /hello/seungyeol 로 요청을 보낼시에 어떤 응답이 올까?

     

    • **도 가능하지만 조금 더 구체적인 "hello seungyeol"로 오게 된다.

     


    스프링 부트의 URI 확장자 맵핑

     

    • 스프링 부트는 기본적으로 .json, .xml, .zip 등의 핸들러 맵핑을 사용할 수 없도록 해놓았다.

     

    • 그 이유는 예를 들어 .zip이라면 압축 파일 인줄 알고 다운 받게 된다.
    • 이를 이용한 RFD attack으로 인하여 보안 이슈가 발생하게 된다. 
    • 따라서 스프링 부트는 이런 기본 확장자 맵핑을 막아놓았다.

     

    • 이전에는 URI 확장자를 보고 원하는 요청을 판단했지만
    • 요즘은 어떤 타입을 원한다고 요청을 할때에 Accept 헤더에 설정하게 된다.
    • 혹은 요청 파라미터를(?type=123) 쓰는 경우도 있다.

     

     

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

    핸들러, 헤더, 메개변수  (0) 2020.06.06
    핸들러와 Media Type  (0) 2020.06.04
    Http method와 요청 매핑  (0) 2020.06.02
    WebMvcConfigurer 살펴보기  (0) 2020.05.31
    Json 컨버터  (0) 2020.05.28
Designed by Tistory.