[Spring] HTTP 헤더

zini9188·2023년 2월 21일
0

Spring

목록 보기
16/33

HTTP 헤더란?

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

HTTP 헤더의 사용 목적

클라이언트와 서버 관점에서의 대표적인 HTTP 헤더

Content-Type

가장 많이 사용하는 헤더 정보
application/json과 같이 클라이언트와 서버가 주고받는 HTTP 메서드 바디의 형식이 무엇인지를 알려주는 역할을 한다.

Authorization

클라이언트가 적절한 자격 증명을 가지고 있는지를 확인하기 위한 정보

REST API 기반 애플리케이션의 경우 클라이언트와 서버 간의 로그인 인증에 통과한 클라이언트를 Authorization 헤더 정보를 기준으로 인증에 통과한 클라이언트인지 확인하는 절차를 걸침

User-Agent

여러가지 유형의 클라이언트를 구분하기 위한 헤더로 모바일 기기인지 데스크 탑인지를 확인할 수 있게 해줌

HTTP Request 헤더 정보 얻기

@PostMapping
public ResponseEntity postMember((1)){
	System.out.println("user-agent : " + userAgent);
    return new ResponseEntity<>(HttpStatus.CREATED);
}
  • (1)에 @RequestHeader("user-agent") String userAgent를 사용하여 개별 헤더 정보를 얻을 수 있다.

  • (1)에 @RequestHeader Map<String, String> headers를 사용하여 전체 헤더 정보를 얻을 수 있다.

  • (1)에 HttpServletRequest 객체를 사용하여 헤더 정보를 얻을 수 있고 객체의 getHeader("user-agent")메서드를 사용하여 내용을 확인할 수 있다.

  • (1)에 HttpEntity 객체를 사용하여 헤더 정보를 얻을 수 있고, 객체의 getHeaders().entrySet()을 통하여 엔트리 객체를 순환할 수 있다.

헤더 결과

key: user-agent, value: [PostmanRuntime/7.29.0]
key: accept, value: [*/*]
key: cache-control, value: [no-cache]
key: postman-token, value: [368ad61b-b196-4f75-9222-b9a5af750414]
key: host, value: [localhost:8080]
key: accept-encoding, value: [gzip, deflate, br]
key: connection, value: [keep-alive]
host: localhost:8080
profile
백엔드를 지망하는 개발자

0개의 댓글