MIME Type

Formats

개요

MIME 타입(미디어 타입, 콘텐츠 타입)은 `type/subtype` 형식으로 데이터의 종류를 나타내는 표준 식별자입니다(예: text/html, application/json, image/png).

HTTP는 `Content-Type` 헤더에 이 값을 실어, 수신자가 본문을 어떻게 해석·처리할지 알게 합니다.

자세히

구조는 최상위 타입(text, image, audio, video, application, multipart 등)과 하위 타입으로 이뤄지고, `; charset=utf-8`이나 `; boundary=...` 같은 매개변수를 붙일 수 있습니다. 파일 확장자와 달리 MIME 타입은 전송 시점에 서버가 명시하는 '권위 있는' 종류 표기입니다. `application/json`, `text/css`, `multipart/form-data`(파일 업로드) 등이 대표적입니다.

보안상 특히 중요한 지점이 있습니다. 서버가 Content-Type을 잘못 주거나 브라우저가 내용을 보고 타입을 추측하는 'MIME 스니핑'이 일어나면, 예컨대 사용자가 올린 텍스트 파일이 HTML/스크립트로 해석돼 XSS로 이어질 수 있습니다. 이를 막으려 `X-Content-Type-Options: nosniff`로 스니핑을 끄고 정확한 Content-Type을 보내야 합니다. 또 클라이언트가 원하는 표현을 `Accept` 헤더로 알리고 서버가 알맞은 MIME 타입으로 응답하는 것이 콘텐츠 협상의 핵심입니다.

관련 타입