JAVA

HTTP 헤더 조회

Strickland 2024. 4. 29. 22:21

아래의 코드를 보자

RequestHeaderController 

package hello.springmvc.basic.requestmapping;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Locale;

@Slf4j
@RestController
public class RequestHeaderController {

    @RequestMapping("/headers")
    public String headers(Locale locale,
                          @RequestHeader MultiValueMap<String, String> headerMap,
                          @RequestHeader String host,
                          @CookieValue(value = "myCookie", required = false) String cookie
                          ) {

        log.info("locale={}", locale);
        log.info("headerMap={}", headerMap);
        log.info("header host={}", host);
        log.info("myCookie={}", cookie);
        return "ok";
    }
}

출력 결과

 

  • Locale : Locale 정보를 조회한다.
  • @RequestHeader MultiValueMap<String, String> headerMap
    • 모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다.
  • @RequestHeader("host") String host 특정 HTTP 헤더를 조회한다.
    • 속성 필수 값 여부: required 기본 값 속성: defaultValue
  • @CookieValue(value = "myCookie", required = false) String cookie 특정 쿠키를 조회한다.
    • 속성 필수 값 여부: required 기본 값: defaultValue
    • required 가 false 고 해당하는 쿠키 값이 없으면 null 로 들어옴!

 

MultiValueMap MAP과 유사한데, 하나의 키에 여러 값을 받을 수 있다. HTTP header, HTTP 쿼리 파라미터와 같이 하나의 키에 여러 값을 받을 때 사용한다.

MultiValueMap<String, String> map = new LinkedMultiValueMap();
map.add("keyA", "value1");
map.add("keyA", "value2");
//[value1,value2]
List<String> values = map.get("keyA");

'JAVA' 카테고리의 다른 글

HTTP 요청 파라미터 - @ModelAttribute  (0) 2024.04.30
HTTP 요청 파라미터 - @RequestParam  (0) 2024.04.30
요청 매핑  (0) 2024.04.29
@Slf4j  (0) 2024.04.29
빈 스코프  (1) 2024.04.28