본문 바로가기
SPRING

[SPRING] HTTP 요청 헤더 다루기

by steadyMan 2022. 2. 23.

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라는 키로 중복 데이터를 전송하면 아래와 같이 배열로 조회가 가능하다.

배열로 저장된 데이터

 

댓글