[HTTP] HTTP 헤더 - 개요, Representation(표현) 헤더

2022. 7. 24. 16:35· Network
목차
  1. ⛅️ HTTP 헤더의 개요
  2. ⛅️ HTTP 표준 - RFC 2616(과거)
  3. ⛅️ HTTP 표준 - RFC 723x
  4. ⛅️ Representation Header
728x90

이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!

 

⛅️ HTTP 헤더의 개요

✅ HTTP 헤더의 구조

header-field = field-name : OWS field-value OWS
OWS 띄어쓰기 허용, field-name 대소문자 구문x

 

예시)
Content-Type: text/html;charset=UTF-8
Content-Length: 3423

 

 

✅ HTTP 헤더의 역할

  • HTTP 전송에 필요한 모든 부가 정보를 HTTP 헤더에 담는다.
  • message body의 내용, 크기, 압축, 인증, 서버 정보, 캐시 관련 정보...

 


⛅️ HTTP 표준 - RFC 2616(과거)

✅ Header의 분류와 HTTP Body

  • Header의 분류
    • General 헤더: 메세지 전체에 적용되는 정보   ex) Connection: close
    • Request 헤더: 요청 정보      ex) User-Agent: Mozilla/5.0
    • Response 헤더: 응답 정보   ex) Server: Apache
    • Entity 헤더: Entity body의 정보    ex) Content-Type: text/html,  Content-Length: 3423

 

  • HTTP Body
    • 메세지 본문(message body)은 Entity body를 전달하는데에 사용.
    • Entity Header는 Entity body의 데이터를 해석할 수 있는 정보를 제공.
    • 여기서 Entity body는 요청 or 응답에서 전달할 실제 데이터 → Payload(페이로드)
      • 데이터 전송할 때 header, metadata, error check를 위한 부가적인 데이터를 담아서 전송하는데,
        Payload는 부가 데이터를 제외하고 보내고자하는 데이터 자체를 의미한다.

 


⛅️ HTTP 표준 - RFC 723x

✅ RFC 723x로 가면서의 변화

Entity에서 Representation으로

 

시간이 지나면서 2014년에 RFC 7230이 등장하고, 그 이후로 계속해서 새로운 스펙(~RFC 7235)이 나왔다.

RFC 723x부터는 Entity(엔티티)가 Representation(표현)으로 변화한다.

 

 

✅ Representation 표현

Representation(표현) = Representation Metadata + Representation Data

 

  • 최신 스펙(RFC 7230)부터는 message body(메세지 본문)를 통해 Representation Data를 전달한다.
  • 여기서 message body가 payload(페이로드)이다.
  • Representation header는 message body를 통해 전달받은 Representation data를 해석할 수 있는 정보를 제공한다.
    • ex) 데이터의 유형(html, json), 데이터의 길이, 압축 정보...

 


⛅️ Representation Header

Representation Header(표현 헤더)는 메세지 본문이 담긴 데이터를 해석하기 위해 Request, Response message에서 사용된다.

 

✅ Content-Type

김영한님 자료 : Content-Type 예시

  • Representation Data(표현 데이터)의 형식 설명
  • 미디어 타입, 문자 인코딩 등의 정보를 전달하는데에 사용
  • ex) text/html; charset=UTF-8,  application/json,  image/png

 

✅ Content-Encoding]

김영한님 자료 : Content-Encoding 예시

  • Representation data를 압축할 때 사용
  • 데이터를 전달하는 쪽에서 데이터 압축 후 인코딩 헤더를 추가
    → 데이터를 읽는 쪽에서 Content-Encoding 헤더의 정보를 이용하여 압축을 해제
  • ex) gzip, deflate, identity

 

✅ Content-Language

김영한님 자료 : Content-Language

  • Representation data의 자연 언어
  • ex) ko, en, en-US

 

✅ Content-Length

김영한님 자료 : Content-Length

  • Representation data(payload)의 바이트 단위 길이
  • Transfer-Encoding(전송 코딩)을 사용하면, Content-Length를 사용하면 안된다.

 

 

728x90
  1. ⛅️ HTTP 헤더의 개요
  2. ⛅️ HTTP 표준 - RFC 2616(과거)
  3. ⛅️ HTTP 표준 - RFC 723x
  4. ⛅️ Representation Header
'Network' 카테고리의 다른 글
  • [HTTP] HTTP 헤더 - 전송 방식
  • [HTTP] HTTP 헤더 - 콘텐츠 협상 Content Negotiation
  • [HTTP] HTTP Method의 속성 : 안전 Safe, 멱등 Idempotent, 캐시 가능 Cacheable
  • [HTTP] HTTP Method - PUT, PATCH, DELETE
HEY__
HEY__
안녕하세요 :) 공부하며 배운 것들을 기록하기 위한 블로그입니다. 도움이 되시길 바라며 혹시 잘못된 점이 있다면 댓글 부탁드립니다! :D
250x250
HEY__
while(true) { continue; }
HEY__
전체
오늘
어제
  • 분류 전체보기 (164)
    • Spring Boot (45)
      • 스프링 입문 강의 (18)
    • AWS (8)
    • 프로젝트 (6)
    • Network (21)
    • Operating System (8)
    • Database (4)
    • ETC (2)
    • Java (3)
    • C++ (7)
    • Python (1)
    • 도서 📚 (3)
      • Effective Java (3)
    • Coding test (50)
      • Baekjoon (30)
      • Leet Code (18)
      • Programmers (2)
    • Algorithm (C++) (5)

블로그 메뉴

  • 태그
  • Github
  • 글쓰기
  • 블로그관리

공지사항

인기 글

태그

  • leetcode
  • spring boot
  • dispatcher servlet
  • STL
  • Algorithm
  • Spring
  • CPP
  • OS
  • Baekjoon
  • kotlin
  • aws
  • C++
  • HTTP
  • coding test
  • Network
  • slack
  • programmers
  • Cloudfront
  • Servlet Container
  • Java

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
HEY__
[HTTP] HTTP 헤더 - 개요, Representation(표현) 헤더
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.