웹 개발자로 일하며 HTTP에 대해 종종 받게 되는 질문 중 하나로 Content-Type과 MIME-Type이 있는데, 이에 대해 정리해보고자 합니다. 도서 HTTP 완벽 가이드를 참고·발췌하여 작성했습니다.
1. Content-Type
2. MIME-Type
_____
Content-Type
헤더[1][2] 중 엔터티 헤더(Entity Headers)[3]가 있다. 이는 엔터티 본문에 대한 헤더로, 엔터티 본문에 들어있는 데이터 타입이 무엇인지 말해준다.엔터티 헤더 중 콘텐츠(Content-)로 시작하는 콘텐츠 헤더[4]는 엔터티의 콘텐츠에 대한 구체적인 정보를 제공한다. 예를 들어, 웹브라우저는 내용 유형을 기술한 Content-Type 헤더를 보고 그 객체를 어떻게 보여줄지 결정할 수 있다. 아래 예를 보자.
Content-Type: text/html; charset=iso-latin-1
이 Content-Type 헤더는 애플리케이션에게 데이터가 iso-latin-1 문자집합으로 된 HTML 문서임을 알려준다.
MIME-Type
인터넷은 수천 가지 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체 각각에 신중하게 MIME 타입[5]이라는 데이터 포맷 라벨을 붙인다. 구체적으로, 웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다. 웹브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인[6]한다.
MIME 타입은 사선(/)으로 구분된 주 타입(primary object type)과 부 타입(specific subtype)으로 이루어진 문자열 라벨[7]이다. 예를 들면 다음과 같다.
- HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
- plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
- JPEG 이미지는 image/jpeg가 붙는다.
- GIF 이미지는 image/gif가 된다.
_____
1. 헤더와 메서드는 클라이언트와 서버가 무엇을 하는지 결정하기 위해 함께 사용된다.
2. 헤더는 크게 다섯 가지로 분류된다.
- 일반 헤더(General Headers)
- 요청 헤더(Request Headers)
- 응답 헤더(Response Headers)
- 엔터티 헤더(Entity Headers)
- 확장 헤더(Extension Headers)
3. 요청과 응답 양쪽 모두 엔터티를 포함할 수 있기 때문에, 엔터티 헤더는 양 타입의 메세지에 모두 나타날 수 있다. 일반적으로 엔터티 헤더는 메시지의 수신자에게 자신이 다루고 있는 것이 무엇인지 말해준다.
4.
5.
6. 대부분의 웹브라우저는 잘 알려진 객체 타입 수백 가지를 다룰 수 있다.
7. 컨텐츠 타입 헤더의 내용이 MIME 타입이다.
Content-Type: image/jpeg
____
참고자료
1. ZeroCho] 알아둬야 할 HTTP 공통 & 요청 헤더
2. ZeroCho] 알아둬야 할 HTTP 응답 헤더
3.
'공부 > 기타' 카테고리의 다른 글
정규식 (0) | 2021.01.03 |
---|---|
RESTful API란 (0) | 2020.12.06 |
댓글