코드 저장소

공부에는 끝이 없다!

HTTP

HTTP - HTTP 일반 헤더(1)

VarcharC2K 2024. 1. 19. 22:36

HTTP 헤더 개요

HTTP 헤더의 구성은 다음과 같다.

header-field = field-name ":" OWS field-value OWS
(OWS : 띄어쓰기 허용)

ex) Host: www.google.com

*field-name은 대소문자 구분이 없다.

 

HTTP 헤더에는 HTTP 전송에 필요한 모든 부가 정보가 들어가게 되며 메시지 바디의 내용, 크기, 압축,인증, 요청 클라이언트, 서버 정보 등 무수한 정보를 넣을 수 있다.

 

과거 RFC2616에서는 헤더를 크게 4가지로 분류하였는데 다음과 같이 나뉜다.

  • General 헤더 : 메시지 전체에 적용되는 정보 (ex. Connenction)
  • Request 헤더 : 요청 정보 (ex. user-Agent)
  • Response 헤더 : 응답 정보 (ex. Server)
  • Entity 헤더 : 엔티티 바디 정보 (ex. Content-Type)

Message Body는 엔티티 본문을 전달하는데 사용 되어 요청이나 응답에서 전달할 실제 데이터를 넣었는데, 엔티티 헤더는 엔티티 본문의 데이터를 해석할 수 있는 정보를 제공하는데 사용되었다.

그런데 2014년 RFC7230~7235로 스펙이 나눠지며 엔티티 바디라는 용어가 사라지게 된다.

변경된 RFC723x에서는 엔티티라는 용어 대신 표현(Representation)이라는 용어가 생겨났으며 표현은 표현 메타데이터와 표현 데이터를 합친것을 의미한다.

따라서, 최신 스펙(RFC723x)에서는 메시지 본문을 통해 표현 데이터를 전달하며 이런 본문을 페이로드(payload)라고 부른다.

표현은 요청이나 응답에서 전달할 실제 데이터를 말하며 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다.

그럼 표현에 대해서 자세하게 한번 알아보자.


표현(Representation)이란?

표현이란 쉽게 말하자면 어떤 리소스가 있을때 이것을 html 형식으로 전송하겠다, 혹은 json 형식으로 전송하겠다와 같이 특정 리소스를 클라이언트와 서버가 주고 받을때 서로가 이해할 수 있는 형태로 정의하는 것을 말한다.

추상적인 리소스를 특정 형태로 표현한다고 하여 표현이라고 부르는 것이다.

 

따라서, 표현을 사용하기 위해선 우선 표현 데이터의 형식을 알려주어야 한다.

표현 형식을 알려주는 필드는 4가지가 있다.

  • Content-Type : 표현 데이터의 형식
  • Content-Encoding : 표현 데이터의 압축 방식
  • Content-Language : 표현 데이터의 자연 언어
  • Content-Length : 표현 데이터의 길이(Payload 헤더)

또한, 표현 헤더는 전송과 응답 둘 다 사용할 수 있다.

'HTTP' 카테고리의 다른 글

HTTP - HTTP 일반 헤더(3)  (1) 2024.01.23
HTTP - HTTP 일반 헤더(2)  (0) 2024.01.23
HTTP - HTTP 상태코드 (2)  (0) 2024.01.17
HTTP - HTTP 상태코드 (1)  (1) 2024.01.16
HTTP - HTTP API 설계  (0) 2024.01.15