본문 바로가기

TIL

[SpringMVC][HTTP헤더]

728x90

HTTP헤더란?

HTTP헤더는 HTTP메세지의 구성 요소중 하나로써 클라이언트의 요청이나 서버의 응답에 포함되어 부가적인 정보를 HTTP메세지에 포함할 수 있도록 해준다.

개발자들이 직접 실무에서 사용하는 대표적인 HTTP헤더 예시 2가지

  • Authorization
    "Authorization"헤더 정보는 클라이언트가 적절한 자격 증명을 가지고 있는지 확인하기 위한 정보이다
    일반적으로 REST API 기반 애플리케이션의 경우 클라이언트와 서버 간의 로그인(사용자ID/비밀번호) 인증에 통과한 클라이언트들은"Authorization"헤더 정보를 기준으로 인증에 통과한 클라이언트가 맞는지 확인하는 절차를 거친다.
  • User-Agent
    실무에서 애플리케이션을 구현하다보면 여러가지 유형의 클라이언트가 하나의 서버 애플리케이션에 요청을 전송하는 경우가 많다
    어떤 사용자는 데스크탑 또는 노트북 컴퓨터에 있는 웹브라우저를 사용해서 서버에 요청을 보내고, 또 어떤 사용자는 스마트폰이나 태블릿 등 모바일에서 요청을 보내는데 이 경우 데스크 탑에서 들어오는 요청과 모바일에서 들어오는 요청을 구분해서 응답 데이터를 다르게 보내줘야되는 경우가 있을 수 있다.
    예를들면, 모바일 화면과 데스크 탑 또는 노트북 화면 크기의 차이가 많이 나기 때문에 더 큰 화면에서 더 많은 정보를 보여주기 위해 각각 데이터의 종류와 크기가 다를 수 있다 이경우 User-Agent정보를 이용해서 모바일 에이전트에서 들어오는 요청인지 모바일 이외에 다른 에이전트에서 들어오는 요청인지를 구분해서 처리할 수 있다.

HTTP Request헤더 정보 얻기

Spring MVC는 HTTP 헤더 정보를 읽어오는 몇가지 방법을 제공하고있다.

  • HTTP Request 헤더(Header) 정보 얻기
    • @RequestHeader 애너테이션을 이용해서 개별 헤더 정보 및 전체 헤더 정보를 얻을 수 있다.
    • HttpServletRequest 또는 HttpEntity 객체로 헤더 정보를 얻을 수 있다.
  • HTTP Response 헤더(Header) 정보 추가
    • ResponseEntity와 HttpHeaders를 이용해 헤더 정보를 추가할 수 있다.
    • HttpServletResponse 객체를 이용해 헤더 정보를 추가할 수 있다.

심화 학습

 
728x90

'TIL' 카테고리의 다른 글

[Spring][JPA][Persistence Context]  (0) 2022.11.01
[SpringMVC][Rest Client]  (0) 2022.10.31
[Spring Data JDBC][DDD]  (0) 2022.10.28
[도메인 엔티티 및 테이블 설계][Sample]  (0) 2022.10.27
[SpringMVC][Spring Data JDBC]  (0) 2022.10.27