코드 그라데이션

HTTP 요청 - 기본, 헤더 조회 본문

Spring/MVC 1

HTTP 요청 - 기본, 헤더 조회

완벽한 장면 2023. 10. 8. 00:33

HTTP 요청 - 기본, 헤더 조회

어노테이션 기반의 스프링 컨트롤러는 (정말정말) 다양한 파라미터를 지원한다.

예시를 몇 가지 살펴본다.

 

 

RequestHeaderController

@Slf4j
@RestController
public class RequestHeaderController {

    @RequestMapping("/headers")
    public String headers(HttpServletRequest request,
                          HttpServletRequest response,
                          HttpMethod httpMethod,
                          Locale locale,
                          @RequestHeader MultiValueMap<String, String> headerMap,
                          @RequestHeader("host") String host, // 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 request와 HttpServletRequest response: HTTP 요청과 응답을 처리하는 객체.
  • HttpMethod httpMethod: 현재 요청의 HTTP 메서드 (GET, POST, PUT 등)를 나타냄.
  • Locale locale: 현재 요청의 로캘 (언어 및 국가 정보)을 나타냄
  • @RequestHeader MultiValueMap<string, string> headerMap</string, string> : HTTP 요청의 헤더 정보를 MultiValueMap 형식으로 가져옴.
  • @RequestHeader("host") String host: HTTP 요청 헤더 중 "host" 헤더의 값을 문자열로 가져옴.
  • @CookieValue(value = "myCookie", required = false) String cookie: 쿠키 중 이름이 "myCookie"인 쿠키의 값을 가져오는데, 이 쿠키가 없어도 오류를 발생시키지 않는다.

 

로그 및 리턴

  • 여기서는 로깅을 사용하여 다양한 정보를 기록하고 있습니다. log.info()를 사용하여 각 정보를 로그로 출력함.
  • {}를 사용하여 문자열 템플릿에 변수 값을 삽입한다.
  • 예를 들어, log.info("request={}", request);는 "request=" 뒤에 request 객체의 내용을 출력.
    이를 통해 HTTP 요청, 응답, 메서드, 로캘, 헤더 정보, 쿠키 정보 등을 로그로 남긴다.
  • return "ok" 는 클라이언트에게 응답으로 전송된다.

자세한 내용은 스프링 공식 문서 참고

 

 

참고 1
> @Conroller 의 사용 가능한 파라미터 목록은 다음 공식 메뉴얼에서 확인할 수 있다.
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-annarguments

 

참고 2
> @Conroller 의 사용 가능한 응답 값 목록은 다음 공식 메뉴얼에서 확인할 수 있다.
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-annreturn-
types

728x90

'Spring > MVC 1' 카테고리의 다른 글

HTTP 요청 파라미터 - @RequestParam  (0) 2023.10.08
HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form  (1) 2023.10.08
<추가> Locale이란? By chat GPT  (0) 2023.10.08
요청 매핑 - API 예시  (1) 2023.10.07
요청 매핑  (0) 2023.10.07
Comments