💻본 포스팅은 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한'님의 강의를 듣고 작성되었습니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
[HTTP 헤더 정보 조회 방법]
package hello.springmvc.basic.request;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpMethod;
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
@Slf4j
@RestController
public class RequestHeaderController {
@RequestMapping("/headers")
public String header(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";
}
}
- HttpServletRequest
- HttpServletResponse
- HttpMethod
- HTTP 메서드를 조회한다.
- Locale
- Locale 정보를 조회한다.
- 장소 정보를 조회해주는 듯?
- @RequestHeader MultiValueMap<String, String> headerMap
- 모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다.
- 이때 Map이 아닌 MultiValue 형식으로 조회하는 이유는 키에 키값이 하나만 매핑된 경우는 별로 존재하지 않기 때문이다. 그렇기 때문에 이를 사용한다. (하나의 키에 여러 키값이 존재할 수 있기 때문이다.)
- HTTP header, HTTP 쿼리 파라미터와 같이 하나의 키에 여러 값을 받을 때 사용한다.
- KeyA=value1&KeyA=value2
- @RequestHeader("host") String host
- 특정 HTTP 헤더를 조회한다.
- 속성
- 필수 값 여부: required
- 기본 값 속성: defaultValue
- @CookieValue(value = "myCookie", required = false) String cookie
- 특정 쿠키를 조회한다.
- 속성
- 필수 값 여부: required
- 기본 값: defaultValue
[@Slf4j]
개발자가 편하게 로그를 사용하기 위해서 제공되는 애노테이션이다.
'Back-End > Spring' 카테고리의 다른 글
[Spring MVC][HTTP 요청] - 3. 요청 메시지 - 단순 텍스트, JSON (0) | 2022.03.29 |
---|---|
[Spring MVC][HTTP 요청] - 2. 요청 파라미터 - 쿼리 파라미터, HTML Form, @RequestParam, @ModelAttribute (0) | 2022.03.29 |
[Spring MVC][스프링MVC 기본 기능] - 요청 매핑 (0) | 2022.03.23 |
[Spring MVC][스프링MVC 기본 기능] - 로그 (0) | 2022.03.23 |
[Spring MVC][스프링MVC 구조] - 스프링 MVC (0) | 2022.03.18 |