Web

[Web]MIME Type과 Content-Type

DevStory 2022. 4. 2.

인터넷에서는 다양한 데이터(텍스트, 이미지, 동영상, pdf 등)를 다루기 때문에 웹에서는 데이터마다 MIME Type을 설정하여 데이터 형식을 표시합니다. 다음은 MIME Type의 예시입니다.

텍스트
text/plain, text/csv, text/html

영상 및 이미지
image/jpeg, image/png, image/svg+xml

멀티파트(다양한 데이터 타입을 한 번에 보내는 경우)
multipart/form-data, multipart/byteranges

대부분의 사람들은 MIME Type과 Content-Type를 동일한 개념으로 착각하는 경우가 많습니다. 이 둘은 엄연히 다른 존재이며 MIME Type은 Content-Type의 상위 개념입니다.

 

이번 포스팅에서는 MIME Type과 Content-Type 대해 소개합니다.


MIME-Type

MIME(Multipurpose Internet Mail Extensions) Type은 미디어 타입(Media Type)이라고도 부르며 인터넷에서 데이터 형식을 식별하기 위해 사용되는 Type입니다. 인터넷의 모든 MIME Type은 국제인터넷주소관리기구(ICANN)에서 관리합니다.

 

MIME Type을 정의하기 위해서는 슬래시(/)를 사용하며 공백이나 탭이 존재할 수 없습니다.

Type/SubType

Type은 이미지 및 또는 텍스트와 같이 큰 범위를 나타내며 SubType은 Type의 세부적인 타입입니다. 각 Type과 SubType에는 고유한 값이 존재합니다.

 

추가 세부 정보를 제공하기 위해서는 선택적 매개변수를 추가할 수 있습니다.

Type/SubType;parameter=value

 

예를 들어서 텍스트인 MIME Type을 정의하는 경우 선택적 매개변수인 charset를 사용할 수 있습니다. charset을 생략하면 기본값인 ASCII(US-ASCII)가 적용됩니다. UTF-8 텍스트 파일을 설정하기 위해서는 MIME Type을 다음과 같이 사용합니다.

text/plain;charset=UTF-8

MIME Type 예시

폰트
font/woff, font/ttf, font/otf

영상(움짤) 및 이미지
image/jpeg, image, png, image/svg+xml

텍스트
text/plain, text/csv, text/html

멀티파트
HTML Form을 POST 전송하는 경우: multipart/form-data

pdf 및 json 형식
application/pdf, application/json

※ json과 HTML Form은 엄연히 다른 형식이므로 Open Api 사용 시 Content-Type을 체크할 필요가 있습니다.

반응형

Content-Type

Content-Type은 HTTP 헤더에 존재하는 매개변수로 어떤 유형의 데이터가 전송되는지 웹 클라이언트 또는 웹 서버에 알리는 역할을 합니다. 웹 클라이언트가 text/html을 요청하는 경우 웹 서버는 요청에 대한 응답에 content-Type: text/html을 포함합니다.

 

Content-Type은 크롬 브라우저의 개발자 도구에서 [네트워크]탭에서 확인할 수 있습니다.

naver 예시


MIME Type과 Content-Type의 차이점

이 둘은 동일한 개념으로 보이지만 가장 중요한 차이점이 존재합니다.

Content-Type은 웹에서 사용됩니다.

MIME Type은 웹보다 상위 개념인 인터넷에서 사용되는 개념이며, Content-Type은 인터넷의 하위 집합인 웹에서 사용되는 개념입니다.


마무리

이번 포스팅에서는 MIME Type과 Content-Type에 대해 알아보았습니다.

  • MIME Type과 Content-Type은 인터넷에서 데이터(텍스트, 파일, 이미지 등) 형식을 식별하기 위해 사용됩니다.
  • MIME Type은 Content-Type보다 상위 개념입니다.
  • Content-Type은 웹에서 사용됩니다.
반응형

'Web' 카테고리의 다른 글

[Web]HTTP 프로토콜  (0) 2022.04.02
[Web]웹 서버(Web Server)와 웹 클라이언트(Web Client)  (0) 2022.04.02

댓글