MIME

MIME 타입 조회 content-type

파일 확장자로 MIME 타입을 찾거나 MIME 타입에 해당하는 확장자를 확인합니다.

extension or mime
MIMElookup
도구 설명

이 도구가 하는 일

MIME 타입은 데이터의 형식을 나타내는 표준 문자열로 type/subtype 형태를 가집니다. text/html, application/json, image/png 같은 값이 여기에 해당합니다. 웹에서는 HTTP의 Content-Type 헤더에 담겨 전달되며, 브라우저는 이 값을 보고 받은 데이터를 어떻게 처리할지 결정합니다.

Content-Type이 잘못되면 여러 문제가 생깁니다. JSON 응답에 text/plain을 지정하면 클라이언트 라이브러리가 파싱하지 못하고, 이미지에 잘못된 타입을 지정하면 표시되지 않으며, 다운로드해야 할 파일이 브라우저에서 그대로 열리기도 합니다. 반대로 브라우저에 표시되어야 할 파일이 다운로드되는 경우도 있습니다.

파일 업로드를 다룰 때도 MIME 타입이 중요합니다. 다만 클라이언트가 보내는 타입은 위조할 수 있으므로 서버에서 실제 파일 내용을 검사해야 합니다.

언제 사용하나요

파일 다운로드 응답의 Content-Type 헤더를 지정할 때, 업로드 허용 형식 목록을 만들 때, 웹서버 설정에서 특정 확장자의 타입을 추가할 때, API가 반환하는 파일이 브라우저에서 잘못 처리되는 원인을 찾을 때 사용합니다.

입력과 출력 예시

입력 json
출력 application/json

API 응답에서 가장 널리 쓰이는 타입입니다.

입력 pdf
출력 application/pdf

브라우저에서 바로 열지 강제 다운로드할지는 Content-Disposition 헤더로 조절합니다.

입력 image/svg+xml
출력 svg

SVG는 XML 기반이라 subtype에 +xml 이 붙습니다.

주의사항

업로드 파일의 MIME 타입 검사만으로 보안을 확보할 수 없습니다. 클라이언트가 보내는 Content-Type은 임의로 바꿀 수 있으므로, 실행 가능한 파일을 이미지 타입으로 위장해 올리는 것이 가능합니다. 서버에서는 파일의 실제 시그니처를 검사하고, 업로드 디렉터리에서 스크립트 실행을 막는 설정을 함께 적용해야 합니다. 또한 같은 형식에 여러 타입이 통용되는 경우가 있습니다. 예를 들어 자바스크립트는 text/javascript와 application/javascript가 모두 쓰였으며 현재 표준은 text/javascript입니다.

자주 묻는 질문

파일이 열리지 않고 다운로드됩니다.

Content-Type이 application/octet-stream으로 지정되었거나 Content-Disposition 헤더에 attachment가 설정된 경우입니다. 서버 설정을 확인하십시오.

MIME 타입 검사로 업로드를 막을 수 있나요?

충분하지 않습니다. 클라이언트가 보내는 값은 위조할 수 있으므로 서버에서 파일 내용을 직접 검사하고 실행 권한을 제한해야 합니다.

Copied