HTTP 헤더

오호·2021년 4월 30일
1

네트워크

목록 보기
8/13

1. HTTP 메시지

http 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 크게 두 가지가 있는데 흔히 알고있다시피 request, response로 구분합니다.

HTTP 메시지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 구성되어 있습니다.

2. HTTP 메시지 헤더

프로토콜의 헤더는 프로토콜의 기능을 제공하기 위해 담고 있는 최소한의 정보라고 할 수 있습니다. 헤더에 불필요한 내용이 많으면 데이터의 크기가 커지고 전송속도 또한 보장할 수 없기 때문에 설계할 때 부터 꼭 필요한 내용만 담아야 합니다.

HTTP-MDN

HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며, 이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 합니다.

  • start-line에는 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패가 기록되어 있습니다.

  • 옵션으로 HTTP 헤더 세트가 들어갑니다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어갑니다.

  • 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입됩니다.

  • body에는 요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어갑니다.

네이버

3. HTTP 헤더 필드

HTTP를 구성하는 요소들 중에서 가장 다양한 정보를 가지고 있는 것이 HTTP 헤더필드 입니다.

다양한 헤더 필드가 있는데 다음과 같이 크게 네 분류로 구분할 수 있습니다.

3.1 일반적 헤더 필드(General Header Fields)

  • 리퀘스트/리스폰스 메시지 둘 다 사용되지만 컨텐츠 자체에는 적용되지 않는 헤더 입니다.

3.2 리퀘스트 헤더 필드(Request Header Fields)

  • HTTP 리퀘스트에서 사용되지만 메세지의 컨텐츠와는 관련이 없는 헤더입니다.

3.3 리스폰스 헤더 필드(Response Header Fields)

  • HTTP 리스폰스에서 사용될 수 있는 헤더로 역시 컨텐츠와 관련이 없습니다.
  • 위치 또는 서버 자체에 대한 정보(이름, 버전)와 같이 응답에 대한 부가적인 정보를 갖는 헤더 필드입니다.

3.4 엔티티 헤더 필드(Entity Header Fields)

  • 메시지 바디의 컨텐츠를 나타내는 헤더입니다. HTTP Request, Response 모두에서 사용됩니다.

Request

Response

4. 이외의 헤더 필드

4.1 종단간 헤더(end-to-end)

end-to-end라는 이름에서도 알 수 있듯이 최종 수신자에게 전달되어야 하는 헤더입니다.

request에 대해서는 서버, response에 대해서는 클라이언트입니다.
중간 프록시는 종단간 헤더를 수정되지 않은 상태로 재전송해야하며, 캐시는 이를 반드시 저장해야합니다.

4.2 홉간 헤더(hop-by-hop)

이러한 헤더는 단일 전송-레벨 연결에서만 의미가 있으며 프록시에의해 재전송되거나 캐시되어선 안됩니다.

Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, TE, Trailer, Transfer-Encoding, Upgrade 이 해당됩니다.

홉간 헤더는 Connection 일반 헤더를 사용해 설정될 수도 있음에 유의해야합니다.






❝ 🕶 이번 포스팅에서는 HTTP 헤더에 대한 개요를 살펴봤고 다음 포스팅에서는 각각의 헤더 필드의 내용을 자세하게 살펴보도록 하겠습니다. ❞

profile
오호

0개의 댓글