-
핸들러 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