SPRING

[SPRING] HTTP 요청 헤더 다루기

steadyMan 2022. 2. 23. 23:07

HTTP 요청 헤더에는 상당히 많은 정보가 포함되어 있습니다.

애노테이션을 기반으로 요청헤더를 조회하는 방법들에 대하여 학습한 내용을 정리합니다. 

 

개인적인 학습의 정리글입니다. 

 

HTTP 요청 헤더 데이터 조회 

HttpMethod: Enum 클래스로 HTTP 요청 메소드를 조회한다.

Locale : 클라이언트의 국가언어정보를 조회한다. 

@RequestHeader : 헤더 정보를 조회할때 사용하는 애노테이션이다. 

@CookieValue : 쿠키정보를 조회할때 사용하는 애노테이션으로 required, defaultValue 등을 입력할 수 있다.

@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";
}

 

요청 log 결과

 

MultiValueMap사용시 헤더정보이기 때문에 <String, String>으로 입력해야 하며 중복이 허용되지 않는 Map에서 

중복된 키값의 데이터를 배열로 저장할 수있다.

Ex) 요청헤더에 gameCode라는 키로 중복 데이터를 전송하면 아래와 같이 배열로 조회가 가능하다.

배열로 저장된 데이터