가능세계
[Network] HTTP 헤더 살펴보기 - 표현 헤더(Representation Header) 본문
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를 사용하지 않도록 합니다.
참고
'Blog > Network' 카테고리의 다른 글
[Network] HTTP 헤더 살펴보기 - HTTP 메시지 전송 방식 (0) | 2023.09.11 |
---|---|
[Network] HTTP 헤더 살펴보기 - 요청 헤더와 응답 헤더 (0) | 2023.09.11 |
[Network] HTTP 상태 코드(HTTP Status Code) 정리하기 (0) | 2023.09.11 |
[Network] HTTP 메서드 속성 - 안전성, 멱등성, 캐시 가능성 정리하기 (0) | 2023.09.11 |
[Network]HTTP Methods란? HTTP 메서드 종류 알아보기 (0) | 2023.09.11 |