본문 바로가기
네트워크 (Network)/HTTP

[HTTP] MIME 타입

by 송기동 2024. 1. 31.
728x90

MIME (Multipurpose Internet Mail Extensions) 이란?

- 오직 텍스트만 보낼 수 있었던 SMTP의 단점을 보완, 메세지 내부에 다른 파일을 전송할 수 있도록 하는 전자메일 프로토콜

- MIME으로 인코딩한 파일은 Content-type 필드를 헤더에 담게 되고, 이를 통해 전송된 자원의 형식을 명시

- 현재는 전자메일에 국한되지 않고, 웹을 통해 여러 형태의 파일을 전송

#  MIME 을 사용하는 이유

- 과거 텍스트파일을 주고 받는데 ASCII로 공통된 표준에 따르기만 하면 문제 X

   → 하지만 네트워크를 통해서 ASCII 파일이 아닌 바이너리 파일을 보내는 경우 많아짐

         → 인터넷에서 전송 가능한 문자는 오로지 ASCII 표준

               →  다른 데이터로 변환하는 과정 필요해짐

                      →  바이너리 파일을 텍스트 파일로 변환하는 과정(인코딩)과

                             그 반대인 디코딩 과정이 추가됨

                             →  초기에 사용된 인코딩 방식은 UUEncode는 단점이 존재

                                    →  이를 보강한 방식인 MIME 등장


MIME 타입 (Media 타입)

- 인터넷에서 전달되는 파일 포맷 및 포맷 컨텐츠를 위한 식별자

- IANA : 이를 표준화하고 출판하는 공식 기관

- Content-type 의 상위 개념

#  MIME 타입 구조

- 기본적으로 type/subtype 구조

- type 은 파일의 종류를 의미, subtype 은 파일의 포맷을 의미

- 추가 세부정보를 보내기 위해 파라미터를 사용할 수 있음

- 웹이 보편화 되며 MIME type 또한 Media type 이라는 이름으로 확장

 

#  MIME 타입 종류

discrete(개별) 타입

- text : 텍스트를 포함하는 문서

   ex) plain, html, css, javascript

 

- image : 이미지 파일

   ex) gif, png, jpeg, bmp, webp

 

- audio : 오디오 파일

   ex) midi, webm, ogg, wav

 

- video : 비디오 파일

   ex) webm, ogg

 

- model : 3D 오브젝트 관련 모델 데이터

   ex) 3mf, vrml

 

- font : 폰트 데이터

   ex) woff, ttf, otf

 

- application : 바이너리 데이터

   ex) pdf, json, octet-stream

 

multipart 타입

- form-data

- mixed

- alternative

 

 

728x90