jhhan의 블로그

HTTP 헤더 & 바디 본문

HTTP

HTTP 헤더 & 바디

jhhan000 2022. 1. 22. 17:57

(제목을 헤더와 바디라고 했지만 사실은 헤더에 대해서 계속 알아볼 것입니다.)

이번 포스트에서는 HTTP 헤더에 대해서 알아보겠습니다.

 

HTTP 헤더에는 굉장히 다양한 내용이 들어갑니다.

그래서 이게 뭐지... 하는 것들이 굉장히 많습니다.

그리고 몰라도 큰 문제없이 넘어가는 경우도 있기 때문에 

저는 HTTP 헤더에 크게 관심을 가지지 않았습니다.

그래도 어떤 내용이 주로 들어가는지 정도는 알아야겠죠..

 

 

HTTP 헤더

  • HTTP 전송에 필요한 모든 부가정보 전송
  • EX) 메세지 바디 내용 & 크기, 압축, 인증, 등등
  • 굉장히 많다
  • 필요한 경우 임의로 헤더를 추가할 수도 있음

 

HTTP 헤더를 분류하는 방법도 정의되어 있습니다.

1. RFC2616버전(1999년)

  • General 헤더   : 메시지 전체에 적용되는 정보
    • ex) Connection: close 등
  • Request 헤더   : 요청에 해당하는 정보
    • ex) User-Agent: ~~~  등
  • Response 헤더 : 응답에 해당하는 정보
    • ex) Server: Apache 등
  • Entity 헤더      : 엔티티 바디의 정보 → 즉, 메세지 바디에 관련된 정보
    • ex) Content-Type: text/html , Content-Length: 1234 등

그리고 HTTP Body의 경우

  • '메세지 바디'가 '엔티티 바디'(엔티티 본문)을 전달하는데 사용됨
  • 엔티티 바디 : 실제 데이터

 

그래서 HTTP Header는 엔티티 헤더, HTTP Body는 엔티티 본문으로 나뉘었다고 합니다.

  • 엔티티 헤더는 엔티티 본문의 데이터를 해석할 수 있는 정보를 제공함

 

2. RFC7230 ~ 7235(2014년 즈음)

2014년에 와서 많은 부분이 변경되었다고 합니다.

  • Entity(엔티티) 대신에 Representation(표현)으로 바뀜
  • Representation = representation Metadata + Representation Data
    (표현 = 표현 메타 데이터 + 표현 데이터)

그래서 HTTP Body에 대한 설명도 바뀝니다.

  • 메세지 바디(메세지 본문)를 통해 '표현 데이터' 전달
  • 메세지 본문 = 페이로드
  • '표현' : 요청 & 응답에서 전달할 실제 데이터
  • 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공

참고: 표현 헤더는 표현 메타 데이터와 페이로드 메세지를 구분해야 하는데, 그 부분까지 하면 복잡해져서 생략

 

 

'표현'? 하필?

  • 이전 포스트에서 많이 언급한 '회원'을 다시!
  • '회원'이라는 리소스를 HTML, JSON 등으로 '표현'할 수 있고
  • '표현'된 것을 전달하는데 사용됨
  • 후에는 REST API의 R이 Representation(표현)의 첫 글자가 됩니다.
  • 어쨌든 실제 전달하는 내용을 '표현'으로 정의함

그렇다고 합니다.

 

 

이렇게 HTTP 헤더에 대해 조금 알아봤습니다.

다음 포스트에서 어떤 헤더들이 있는지 알아보겠습니다.

 

 

 

 

출처 : 모든 개발자를 위한 HTTP 웹 기본지식 by 김영한

'HTTP' 카테고리의 다른 글

HTTP - Cookie  (0) 2022.01.28
HTTP 헤더  (0) 2022.01.23
HTTP 메서드(3)  (0) 2022.01.16
HTTP 메서드(2)  (0) 2022.01.16
HTTP 메서드  (0) 2022.01.16