클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘. 브라우저가 리소스를 내려받았을 때, 해당 리소스에 대해서 실행할 기본 동작이 무엇인지 결정.
WHY?
네트워크를 통해 ASCII 파일이 아닌 바이너리 파일을 보내게 되는 경우가 생김.
ASCII만으로 전송이 불가, 바이너리 ↔ 텍스트 파일 변환이 필요하게 됨.
따라서 MIME Type을 기반으로 한 인코딩 / 디코딩
을 지원하게 됨.
type/subtype
의 구조를 따름.
개별 타입: 문서의 카테고리를 말함.
ex) text, image, audio ...
멀티파트 타입: 개별 타입이 합성된 문서를 나타내는 방법.
아래의 두가지 외에는 멀티파트 문서를 다룰 방법이 존재하지 않음.
ex) multipart/form-data, multipart/byteranges
특정 서브타입이 없는 텍스트 문서는 text/plain
, 특정, 혹은 알려진 서브타입이 없는 이진 문서는 application/octet-stream
사용되어야 함.
MIME type이 없는 경우, 혹은 클라이언트가 타입이 잘못 설정됐다고 판단할때 브라우저가 정확한 MIME 타입을 추측해내는 것.