ToolActToolAct

MIME 유형 조회

파일 확장자에 해당하는 MIME 유형을 빠르게 조회, 검색 및 분류 필터 지원

115 个类型

문서(17)

.pdf

application/pdf

.doc

application/msword

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.xls

application/vnd.ms-excel

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.ppt

application/vnd.ms-powerpoint

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.txt

text/plain

.rtf

application/rtf

.odt

application/vnd.oasis.opendocument.text

.ods

application/vnd.oasis.opendocument.spreadsheet

.odp

application/vnd.oasis.opendocument.presentation

.csv

text/csv

.json

application/json

.xml

application/xml

.html

text/html

.htm

text/html

이미지(15)

.jpg

image/jpeg

.jpeg

image/jpeg

.png

image/png

.gif

image/gif

.webp

image/webp

.svg

image/svg+xml

.ico

image/x-icon

.bmp

image/bmp

.tiff

image/tiff

.tif

image/tiff

.avif

image/avif

.heic

image/heic

.heif

image/heif

.psd

image/vnd.adobe.photoshop

.raw

image/raw

오디오(10)

.mp3

audio/mpeg

.wav

audio/wav

.ogg

audio/ogg

.m4a

audio/mp4

.flac

audio/flac

.aac

audio/aac

.wma

audio/x-ms-wma

.aiff

audio/aiff

.mid

audio/midi

.midi

audio/midi

비디오(12)

.mp4

video/mp4

.webm

video/webm

.avi

video/x-msvideo

.mov

video/quicktime

.wmv

video/x-ms-wmv

.flv

video/x-flv

.mkv

video/x-matroska

.m4v

video/mp4

.mpeg

video/mpeg

.mpg

video/mpeg

.3gp

video/3gpp

.m2ts

video/mp2t

압축 파일(9)

.zip

application/zip

.rar

application/vnd.rar

.7z

application/x-7z-compressed

.tar

application/x-tar

.gz

application/gzip

.bz2

application/x-bzip2

.xz

application/x-xz

.iso

application/x-iso9660-image

.dmg

application/x-apple-diskimage

코드(31)

.js

application/javascript

.mjs

application/javascript

.ts

application/typescript

.tsx

application/typescript

.jsx

application/javascript

.css

text/css

.scss

text/x-scss

.sass

text/x-sass

.less

text/x-less

.py

text/x-python

.java

text/x-java

.c

text/x-c

.cpp

text/x-c++

.h

text/x-c

.hpp

text/x-c++

.cs

text/x-csharp

.go

text/x-go

.rs

text/x-rust

.rb

text/x-ruby

.php

text/x-php

.swift

text/x-swift

.kt

text/x-kotlin

.sql

application/sql

.sh

application/x-sh

.bash

application/x-sh

.yaml

application/x-yaml

.yml

application/x-yaml

.toml

application/toml

.ini

text/x-ini

.vue

text/x-vue

.svelte

text/x-svelte

글꼴(5)

.woff

font/woff

.woff2

font/woff2

.ttf

font/ttf

.otf

font/otf

.eot

application/vnd.ms-fontobject

기타(16)

.exe

application/vnd.microsoft.portable-executable

.msi

application/x-msi

.apk

application/vnd.android.package-archive

.ipa

application/octet-stream

.deb

application/vnd.debian.binary-package

.rpm

application/x-rpm

.jar

application/java-archive

.war

application/java-archive

.swf

application/x-shockwave-flash

.crx

application/x-chrome-extension

.xpi

application/x-xpinstall

.torrent

application/x-bittorrent

.ics

text/calendar

.vcf

text/vcard

.epub

application/epub+zip

.mobi

application/x-mobipocket-ebook

MIME 유형이란?

MIME 유형 (다목적 인터넷 메일 확장)은 문서, 파일 또는 바이트 스트림의 성질과 형식을 표시하기 위한 표준입니다. 브라우저와 서버는 MIME 유형을 사용하여 파일을 어떻게 처리할지 결정합니다. 예를 들어 브라우저가 image/jpeg 유형을 수신하면 이미지를 표시합니다. 여러 사람이 함께 사용할 때는 입력, 전제, 기대 결과를 미리 맞춰 결과가 잘못 해석되지 않도록 해야 합니다.

사용 방법

빠른 참조

  1. 검색 상자를 사용하여 특정 확장자 또는 MIME 유형을 찾으세요
  2. 카테고리 태그를 클릭하여 파일 유형별로 필터링하세요
  3. 'Ext' 또는 'MIME' 버튼을 클릭하여 해당 내용을 복사하세요
  4. 카테고리를 탐색하여 빠르게 찾아보세요: 문서, 이미지, 오디오, 비디오, 압축 파일, 코드, 글꼴 등

참고 사항

  • MIME 유형은 서버, 브라우저, 애플리케이션에서 사용하는 관례이며, 파일 확장자만으로 실제 콘텐츠를 보장하지 않습니다.
  • 업로드 및 보안 검사 시 가능하면 선언된 MIME 유형과 파일 시그니처를 모두 검증하세요.

활용 사례

확장자로 MIME 유형 조회문서, 이미지, 오디오, 비디오, 압축 파일, 코드 파일, 글꼴 등 다양한 파일 유형에서 확장자나 MIME 문자열을 검색할 수 있습니다. 전체 필터가 활성화된 상태에서도 결과가 카테고리별로 그룹화되어 평평한 단일 테이블보다 탐색이 쉽습니다. 전체 텍스트 검색은 확장자(png, webp, json)와 MIME 값(image/png, application/json) 모두에서 작동하므로 어느 쪽에서 시작하든 같은 조회가 가능합니다.
업로드 및 응답 헤더 값 복사각 카드에서 확장자 또는 MIME 값을 복사할 수 있어 파일 업로드 accept 목록, Content-Type 헤더, 저장소 메타데이터, CDN 규칙, 백엔드 검증 맵을 설정할 때 편리합니다. 참조는 페이지에 내장되어 있어 오프라인이나 IANA 레지스트리에 접근할 수 없는 내부 노트북에서도 작동합니다. 복사 버튼은 끝의 공백이나 따옴표 없이 리터럴 값을 클립보드에 기록합니다.
파일 기능 구축 시 카테고리 커버리지 확인카테고리 필터와 결과 수를 통해 제품 및 엔지니어링 팀이 기능이 현재 인식하는 파일 계열을 결정할 수 있습니다. 완전한 표준 레지스트리가 아닌 일반적인 형식의 빠른 참조입니다. 압축 파일이나 글꼴 섹션의 작은 공백은 업로드를 조용히 거부하는 기능을 가리키는 경우가 많습니다.
REST API 응답용 Content-Type 헤더 작성application/vnd.api+json이나 application/x-ndjson 같은 정확한 값을 response.setHeader() 호출에 복사합니다. 비정상적인 접미사는 카테고리 필터에서 교차 확인하여 JSON-LD, GeoJSON, WebAssembly 응답이 일반 텍스트로 오인되지 않도록 하세요. 벤더별 +json, +xml 규칙(RFC 6839)은 페이로드 구조에 대한 의미 있는 정보를 담고 있으므로 여기서의 오타는 클라이언트 파서를 망가뜨리는 경우가 많습니다.
IANA, x-prefix 실험적 유형, 콘텐츠 스니핑 커버IANA 레지스트리가 등록된 MIME 유형의 표준 출처이지만 모든 작동 값을 나열하지는 않습니다. 실험적 항목은 x- 접두사를 사용(application/x-tar, application/x-rar-compressed)하며 nginx와 Apache mime.types 파일에 등장하지만 표준화된 적이 없습니다. 보안을 위해 콘텐츠 스니핑(파일 시작의 매직 바이트 읽기)은 선언된 Content-Type 헤더를 신뢰하는 것보다 더 안정적이며, 최신 브라우저는 X-Content-Type-Options: nosniff로 레거시 스니핑 폴백을 비활성화합니다. 조회 테이블에서 헤더 값을 찾은 후 서버에서 실제 바이트를 검증한 뒤 파일을 제공하세요.

기술 원리

MIME 유형(Multipurpose Internet Mail Extensions)은 데이터 형식을 위한 표준 식별자로, 원래 이메일 첨부파일을 위해 RFC 2045/RFC 2046에서 정의되었으며 이후 HTTP(RFC 7231 §3.1.1.5)에서 웹 콘텐츠 협상을 위해 채택되었습니다. MIME 유형은 type/subtype 구조로 되어 있으며, type은 대분류(text, image, audio, video, application, multipart, font, model)를 선언하고 subtype은 정확한 형식을 지정합니다(예: text/html, image/png, application/json). 선택적 매개변수는 세미콜론 뒤에 옵니다(text/html; charset=utf-8). IANA(Internet Assigned Numbers Authority)는 iana.org/assignments/media-types에서 공식 MIME 유형 레지스트리를 관리합니다. 등록은 RFC 6838을 따르며, 사양 문서, 보안 고려사항, 상호운용성 노트가 필요한 검토 프로세스를 정의합니다. 미등록 유형은 x- 접두사를 사용할 수 있습니다(예: application/x-tar) — 실험적 또는 벤더별 형식의 관례이지만, RFC 6648은 적절한 등록을 대신 권장합니다. HTTP에서 Content-Type 헤더는 클라이언트에게 응답 본문을 어떻게 해석할지 알려줍니다. 서버가 Content-Type: image/svg+xml을 반환하면 브라우저의 SVG 렌더러가 작동하고, Content-Type: application/octet-stream을 반환하면 브라우저가 형식을 판단할 수 없어 다운로드 프롬프트가 표시됩니다. 브라우저는 MIME 유형 정보를 MIME 스니핑에도 사용합니다 — 서버가 Content-Type을 생략하거나 일반적인 유형을 보내면, 브라우저는 응답의 처음 몇 바이트(매직 바이트)를 검사하여 실제 형식을 추측할 수 있습니다. 이 동작은 X-Content-Type-Options: nosniff 헤더로 제어되며, 스니핑을 비활성화하고 서버가 올바른 유형을 선언하도록 요구합니다. 파일 업로드의 경우 Accept 헤더는 클라이언트가 응답에서 기대하는 MIME 유형을 서버에 알려주고, input 요소의 accept 속성은 파일 선택기를 특정 유형으로 제한합니다(예: accept="image/png, image/jpeg"). 서버 측에서는 업로드된 파일을 선언된 MIME 유형과 파일 시그니처(매직 바이트) 모두로 검증해야 합니다 — 어느 하나만으로는 신뢰할 수 없기 때문입니다. 파일 이름이 image/png이고 Content-Type이 image/png여도 실행 가능한 코드가 포함될 수 있습니다. 이 도구는 주어진 파일 확장자에 대한 표준 MIME 유형을 조회하는 참고 자료로, 8개 카테고리에 걸쳐 100개 이상의 일반 형식을 다룹니다.

  • RFC 2046 구조: type/subtype — type은 대분류 콘텐츠 카테고리를, subtype은 정확한 형식을 나타냄; 선택적 매개변수는 세미콜론 뒤에 오며(text/html; charset=utf-8) 사양상 대소문자를 구분하지 않지만 관례적으로 소문자를 사용합니다.
  • IANA 등록(RFC 6838): 새로운 미디어 유형은 사양 문서, 보안 고려사항 섹션, 상호운용성 노트가 필요 — 검토 프로세스는 유형이 레지스트리에 등록되기 전에 충분히 문서화되고 충돌이 방지되도록 보장합니다.
  • HTTP Content-Type 헤더: 서버가 응답 본문의 MIME 유형을 선언; 브라우저는 이를 적절한 렌더러(HTML 파서, 이미지 디코더, PDF 뷰어) 선택이나 다운로드 트리거에 사용 — 잘못된 Content-Type은 '파일이 표시되지 않고 다운로드되는' 버그의 가장 흔한 원인입니다.
  • MIME 스니핑 및 X-Content-Type-Options: Content-Type이 없거나 일반적이면 브라우저가 매직 바이트를 검사하여 형식을 추측할 수 있음 — X-Content-Type-Options: nosniff는 이 동작을 비활성화하고 정확한 Content-Type 일치를 요구하며, 이는 보안 모범 사례입니다.
  • application/octet-stream: 범용 이진 폴백 유형 — 브라우저는 이를 불투명한 스트림으로 취급하고 다운로드를 트리거하므로, 서버가 형식을 결정할 수 없을 때 가장 안전한 기본값이지만 표시 가능한 콘텐츠의 브라우저 내 미리보기를 방지합니다.
  • 파일 업로드 검증: input accept 속성은 클라이언트 측에서 파일 선택기를 필터링하지만, 서버 측 검증은 선언된 Content-Type과 파일의 매직 바이트를 모두 확인해야 합니다 — 확장자, MIME 유형, 파일 시그니처 간의 불일치는 악의적 업로드의 위험 신호입니다.
  • 벤더별 및 실험적 유형: x- 접두사 관례(application/x-tar, video/x-matroska)는 공식 등록 프로세스보다 앞섬 — RFC 6648은 가능한 경우 적절한 IANA 등록 유형으로 마이그레이션할 것을 권장하지만, 많은 것이 여전히 널리 사용되고 있습니다.

예시

Nginx mime.types 설정

types {
  text/html             html htm;
  image/jpeg            jpg jpeg;
  application/pdf       pdf;
  application/javascript js;
}

참고: 각 줄은 MIME 타입을 하나 이상의 파일 확장자에 매핑하며, Nginx는 해당 타입을 Content-Type 헤더에 담아 응답합니다
IANA: https://www.iana.org/assignments/media-types/ 에서 공식 레지스트리를 관리합니다

HTTP Content-Type 응답 헤더

Content-Type: application/json; charset=utf-8

참고: charset은 선택 사항이지만 text/* 및 application/json 타입에서는 권장되며, 클라이언트가 본문을 올바르게 디코딩하는 데 사용됩니다
RFC: RFC 7231 섹션 3.1.1.5에서 Content-Type 헤더의 의미를 정의합니다
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type

브라우저 Blob 생성자

const blob = new Blob([data], { type: 'application/pdf' });
const url  = URL.createObjectURL(blob);

참고: 이 type 값은 이후 blob을 다운로드하거나 업로드할 때 Content-Type이 됩니다. application/octet-stream을 피하려면 구체적인 서브타입을 지정하세요
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob 에서 type 매개변수를 설명합니다

카테고리별 주요 MIME 타입

텍스트:      text/plain, text/html, text/css, text/javascript, text/markdown
이미지:      image/jpeg, image/png, image/gif, image/webp, image/svg+xml
오디오:      audio/mpeg, audio/wav, audio/ogg, audio/aac
비디오:      video/mp4, video/webm, video/ogg
애플리케이션: application/json, application/pdf, application/xml, application/zip

IANA는 미디어 타입 레지스트리에서 최상위 타입 이름으로 이들을 분류합니다

자주 묻는 질문

MIME 타입이란 무엇이고 왜 중요한가요?

MIME 타입(Multipurpose Internet Mail Extensions, 미디어 타입이라고도 함)은 text/html, image/png, application/json처럼 짧은 라벨로, 받는 쪽 소프트웨어가 바이트 스트림을 어떻게 해석할지 알려줍니다. 브라우저, 메일 클라이언트, 파일 업로더, API는 이 값을 보고 콘텐츠를 렌더링할지, 다운로드할지, 파싱할지, 거부할지를 결정합니다.

MIME 타입과 파일 확장자는 어떻게 다른가요?

확장자는 파일 이름의 일부일 뿐이며 단순한 명명 규약입니다. MIME 타입은 네트워크에서 Content-Type 헤더로 전달됩니다. 보통 둘은 일치하지만(.png ↔ image/png), 서버는 어떤 확장자에든 어떤 MIME 타입이든 붙여 보낼 수 있고, 브라우저는 확장자보다 헤더를 훨씬 더 신뢰합니다. 둘을 일치시키는 것은 좋은 습관이지만, 보안 판단을 확장자에 의존하는 것은 버그입니다.

application/octet-stream은 무엇을 의미하나요?

'임의의 바이너리 데이터'를 뜻하는 범용 MIME 타입입니다. 브라우저는 이 타입을 받으면 콘텐츠를 렌더링하지 않고 다운로드를 유도합니다. 서버는 형식을 식별하지 못할 때 이 값으로 폴백하는데, 이는 보통 MIME 매핑이 누락되었거나 잘못 설정되었음을 의미합니다. 가능하면 정확한 구체적인 타입으로 바꾸세요.

업로드된 파일을 검증할 때 Content-Type을 신뢰해도 되나요?

그것만으로는 안 됩니다. 누구든 실행 파일을 올리면서 image/png라고 주장할 수 있습니다. 항상 실제 바이트(magic number, PNG 헤더 89 50 4E 47, PDF 헤더 %PDF-, ZIP 헤더 PK)를 검사하고, 확장자도 확인하고, 서버 측 허용 목록을 강제하고, 파일 크기를 제한하세요. 브라우저가 추정한 MIME은 참고일 뿐 증거가 아닙니다.

다운로드 시 파일 이름이나 확장자가 잘못 저장되는 이유는 무엇인가요?

브라우저는 저장 이름을 Content-Disposition 헤더, URL 경로, MIME 타입 순으로 결정합니다. 서버가 PDF 다운로드에 text/html을 반환하면 브라우저가 .html로 저장할 수 있습니다. Content-Disposition: attachment; filename="name.pdf"와 함께 올바른 application/pdf MIME 타입을 설정해 두면 이런 문제를 피할 수 있습니다.

맞춤 형식이나 희귀 형식의 MIME 타입은 어떻게 찾나요?

먼저 IANA 미디어 타입 레지스트리(iana.org/assignments/media-types)를 확인하세요. 등록되지 않았거나 벤더 전용 형식은 application/vnd.* 또는 application/x-* 관례를 따릅니다(예: application/vnd.api+json, application/x-7z-compressed). 새 타입을 만들기 전에 가장 가까운 표준 타입을 먼저 사용하세요.

왜 .json과 .js의 MIME 타입이 다른가요?

JSON은 데이터이므로 application/json을 사용합니다. JavaScript는 실행 가능한 코드라 text/javascript 또는 application/javascript로 제공됩니다(RFC 9239에서 권장 타입을 text/javascript로 지정했습니다). 둘을 혼동하면 문제가 생깁니다. script 태그는 application/json을 실행하지 않고, text 변종만 허용하는 일부 서버는 application/javascript를 거부합니다.