Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

가능세계

[Network] HTTP 헤더 살펴보기 - 표현 헤더(Representation Header) 본문

Blog/Network

[Network] HTTP 헤더 살펴보기 - 표현 헤더(Representation Header)

cona-tus 2023. 9. 11. 09:40

network-icon

 

HTTP 헤더클라이언트와 서버가 HTTP 요청-응답 프로세스 중에 정보를 교환하는 수단입니다.

전송에 필요한 모든 부가적인 정보를 전달할 수 있도록 해줍니다.

 

이번 포스팅에서는 표현 헤더에 대해 알아봅시다.



1. 표현 헤더(Representation Header)

1-1. 표현이란 무엇을 의미하나요?

2014년에 HTTP 스펙이 개정되면서 엔티티 개념 대신 표현을 사용하기 시작합니다.

 

표현요청이나 응답에서 전달할 실제 데이터를 말합니다.

 

참고로 표현 헤더(Representation Metadata)와 표현 데이터(Representation Data)를 합쳐서 표현이라고 합니다.

 

1-2. 왜 표현이라고 하나요?

그런데 왜 표현이라고 지칭할까요?

바로, 서버가 보낼 리소스가 어떤 식으로 표현되어 있는지를 나타내기 때문입니다.

 

클라이언트와 서버 간에 데이터를 주고받을 때는 서로 이해할 수 있는 무언가로 변환해서 전달해야 합니다.

예를 들어, 회원 조회 내역을 JSON으로 제공해 준다면, 회원이라는 리소스를 JSON으로 표현한 것이 됩니다.

 

1-3. 따라서 표현 헤더는...

표현 헤더HTTP 메시지 본문으로 전송된 리소스의 특정 표현을 설명하는 헤더로, 표현 데이터를 해석할 수 있는 정보를 제공합니다. HTTP 요청과 응답 모두에 존재합니다.

 

여기에는 MIME 유형이나 인코딩/압축과 같은 리소스 본문에 대한 정보가 포함됩니다.



2. 표현 헤더 종류를 알아봅시다

표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공합니다.

 

2-1. Content-Type

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423

<html> <body>...</body>
</html>

Content-Type표현 데이터의 형식을 뜻합니다.

 

e.g.) text/html; charset=utf-8, application/json, image/png

 

2-2. Content-Encoding

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Encoding: gzip
Content-Length: 521

lkj123kljoiasudlkjaweioluywlnfdo912u34lj ko98udjkl

Content-Encoding표현 데이터의 압축 방식을 뜻하며, 표현 데이터를 압축하기 위해 사용합니다.

 

데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가하고, 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축을 해제합니다.

 

e.g.) gzip, deflate, identity

 

2-3. Content-Language

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Language: ko
Content-Length: 521

<html>
안녕하세요.
</html>

Content-Language은 표현 데이터의 자연 언어을 뜻합니다.

 

e.g.) ko, en, en-US

 

2-4. Content-Length

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 5

hello

Content-Length표현 데이터의 길이(바이트 단위)를 뜻합니다.

 

전송 코딩(Transfer-Encoding) 사용 시 Content-Length를 사용하지 않도록 합니다.




참고