Web/Spring
HTTP 헤더 조회
Jinn
2023. 10. 29. 07:49
다양한 파라미터로 HTTP 헤더 정보를 조회할 수 있다.
@Slf4j
@RestController
public class RequestHeaderController {
@RequestMapping("/headers")
public String headers(HttpServletRequest request,
HttpServletResponse response,
HttpMethod httpMethod,
Locale locale,
@RequestHeader MultiValueMap<String, String> headerMap,
@RequestHeader("host") String host,
@CookieValue(value = "myCookie", required = false) String cookie) {
log.info("request={}", request);
log.info("response={}", response);
log.info("httpMethod={}", httpMethod);
log.info("locale={}", locale);
log.info("headerMap={}", headerMap);
log.info("header host={}", host);
log.info("myCookie={}", cookie);
return "ok";
}
}
- @RequestHeader MultiValueMap<String, String> headerMap: 모든 HTTP 헤더를 조회한다.
- @RequestHeader("host") String host: 특정 HTTP 헤더를 조회한다. (여기선 Host헤더 조회)
- @CookieValue(value = "myCookie", required = false) String cookie: 특정 쿠키를 조회한다.
MultiValueMap 형식은 하나의 키에 여러 값을 받을 수 있는 Map이다.
?keyA=value1&keyA=value2 이런 요청이 들어왔을 때 사용한다.
MultiValueMap<String, String> map = new LinkedMultiValueMap();
map.add("keyA", "value1");
map.add("keyA", "value2");
List<String> values = map.get("keyA"); // [value1,value2]