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]

 

 

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 (inflearn.com)