MIME 타입 사전
파일 확장자에 해당하는 MIME 타입(Content-Type)을 검색합니다.
항목을 클릭하면 MIME 타입이 복사됩니다. 텍스트 계열(text/*, application/json 등)은 한글이 깨지지 않도록 ; charset=utf-8 을 붙여 내려보내세요. 확장자만 믿지 말고 서버에서 실제 내용도 함께 검증해야 합니다.
MIME 타입 사전란?
웹 개발 중 파일 종류에 맞는 정확한 Content-Type(MIME 타입)이 생각나지 않아 막막했던 경험, 있으신가요? 서버가 브라우저에 파일 종류를 잘못 알리면 파일이 깨지거나, 다운로드되어 버리는 등 예상치 못한 오류가 발생합니다. 툴즈25시 MIME 타입 사전은 이런 문제를 해결하기 위해 만들어졌습니다. 파일 확장자나 MIME 타입은 물론, ‘엑셀’, ‘파워포인트’처럼 파일에 대한 설명만으로도 원하는 정보를 빠르게 찾을 수 있습니다. 웹, 문서, 이미지 등 자주 쓰는 수백 개의 MIME 타입을 정리했으며, 검색 결과에서 원하는 항목을 클릭하면 바로 복사됩니다. 특히 JSON, HTML 등 텍스트 기반 타입은 한글 깨짐을 방지하는 ‘; charset=utf-8’을 자동으로 추가해 주어 사소한 실수를 원천 차단합니다. 이제 헤더 정보를 찾느라 헤매지 마세요.
사용 방법
- 검색창에 ‘pdf’ 같은 파일 확장자, ‘application/json’ 같은 MIME 타입, 또는 ‘워드’, ‘엑셀’처럼 찾고 싶은 파일의 종류를 입력합니다.
- 입력과 동시에 실시간으로 검색 결과가 나타납니다. 자주 쓰는 타입이 위쪽에 먼저 표시됩니다.
- 결과를 더 좁히고 싶다면, 검색창 아래 ‘웹·코드’, ‘이미지’, ‘문서’ 등 분류 버튼을 눌러 필터링할 수 있습니다.
- 원하는 항목을 찾았다면 마우스로 클릭하세요. 해당 항목의 MIME 타입이 클립보드에 바로 복사됩니다.
- 텍스트 계열 타입(예: text/html, application/json)은 웹서버 전송 시 한글이 깨지지 않도록 ‘; charset=utf-8’이 자동으로 붙어서 복사됩니다.
MIME 타입 사전 사용 가이드
실제 작업에서 이 도구를 어떻게 쓰는지, 무엇을 조심해야 하는지 정리했습니다.
Content-Type이 틀리면 실제로 이런 일이 생깁니다
MIME 타입은 "이 파일이 무엇인지"를 브라우저에 알려주는 유일한 공식 통로입니다. 확장자는 참고 사항일 뿐이고, 브라우저는 서버가 보낸 Content-Type 헤더를 먼저 믿습니다. 그래서 이 값이 틀리면 파일은 멀쩡한데 동작만 이상해집니다.
| 증상 | 흔한 원인 | 고칠 방향 |
|---|---|---|
| PDF·이미지가 화면에 안 뜨고 다운로드됨 | application/octet-stream | application/pdf · image/png 등 정확한 타입 |
| 다운로드를 원했는데 브라우저에서 열림 | 타입은 맞지만 지시가 없음 | Content-Disposition: attachment 를 함께 지정 |
| CSS를 넣었는데 스타일이 적용 안 됨 | text/plain | text/css |
| 자바스크립트 모듈이 로드 거부됨 | text/plain · octet-stream | text/javascript |
| 웹폰트가 적용되지 않음 | octet-stream | font/woff2 |
| 내려받은 xlsx를 엑셀이 경고 후 엶 | vnd.ms-excel (옛 xls 타입) | openxmlformats… .sheet (검색해서 복사) |
charset=utf-8 을 언제 붙여야 하나
이 사전에서 text/html, application/json 처럼 텍스트 계열 항목에는 ; charset=utf-8 이 함께 표시되고, 항목을 클릭하면 그 접미사까지 붙은 상태로 복사됩니다. 이미지·압축 파일 같은 이진 파일에는 붙지 않습니다 — 글자 인코딩이라는 개념 자체가 없기 때문입니다.
charset을 빠뜨리면 브라우저가 인코딩을 추측합니다. 영문만 있는 페이지는 티가 안 나다가 한글이 들어가는 순간 깨집니다. 로컬에서는 멀쩡했는데 배포하고 나서 깨진다면 서버가 charset 없이 내려보내고 있을 가능성이 큽니다.
- HTML: 응답 헤더의 charset이 문서 안의 meta charset 보다 우선합니다. 메타 태그를 고쳐도 안 고쳐지면 서버 헤더를 보세요.
- JSON: application/json 은 규격상 UTF-8이 기본이라 charset이 없어도 대개 안전합니다. 명시해서 손해는 없습니다.
- CSV: text/csv; charset=utf-8 로 내려보내도 엑셀은 그 헤더를 보지 않고 시스템 기본 인코딩(한국은 CP949)으로 열어 한글을 깹니다. 파일 맨 앞에 UTF-8 BOM(EF BB BF)을 넣어야 엑셀이 UTF-8로 인식합니다.
파일 업로드 검증에서 MIME만 믿으면 안 되는 이유
업로드 폼에서 브라우저가 붙여 보내는 Content-Type은 대부분 확장자만 보고 정한 값입니다. 즉 공격자가 마음대로 바꿀 수 있는 값입니다. exploit.php 를 image/png 라고 선언해 보내는 데는 개발자 도구도 필요 없고 curl 한 줄이면 됩니다. "MIME이 image/* 이면 통과"는 사실상 검증이 아닙니다.
- 확장자 화이트리스트로 막으세요. 허용 목록 방식이어야 합니다 — 블랙리스트는 .phtml, .php5, 대문자 .PHP 같은 변종에 뚫립니다.
- 파일 앞부분의 시그니처(매직 바이트)를 함께 확인하세요. PNG는 89 50 4E 47 로 시작합니다.
- 저장할 파일명은 서버가 새로 만드세요. 사용자가 준 이름을 그대로 쓰면 경로 조작(../)과 확장자 위조가 같이 들어옵니다.
- 업로드 디렉터리에서는 실행을 끄세요. 이 사전에 x-httpd-php 가 "이 타입으로 내보내면 안 됨"이라고 적힌 이유입니다.
- SVG는 이미지처럼 보이지만 스크립트를 품을 수 있는 XML입니다. 사용자 업로드 SVG를 그대로 서빙하면 XSS가 됩니다. 별도 도메인에서 내려보내거나 새니타이징하세요.
국내에서 특히 헷갈리는 타입들
한국 실무에서 자주 마주치는 포맷은 표준이 늦게 정리되었거나 국내 전용이라 표기가 통일되어 있지 않습니다. 이 사전은 현장에서 실제로 통용되는 값을 함께 적어두었습니다.
| 포맷 | 이 사전의 값 | 알아둘 점 |
|---|---|---|
| HWP | application/x-hwp | application/haansofthwp 로 보내는 곳도 많습니다. 상대 시스템 기준에 맞추세요 |
| HWPX | application/vnd.hancom.hwpx | 개방형 표준. 실체가 ZIP이라 스니핑하면 zip으로 오인될 수 있습니다 |
| ALZ · EGG | x-alz-compressed · x-egg | 국내 전용이라 사실상 관례 표기입니다. 애매하면 octet-stream |
| xlsx | openxmlformats… .sheet | 길다고 vnd.ms-excel 로 대충 쓰면 옛 xls로 인식돼 경고가 뜹니다 |
검색 요령과 이 사전의 한계
검색창은 확장자(pdf), MIME(application/json), 설명 키워드(엑셀, 한글, 폰트) 중 아무거나 받습니다. 점을 붙여 .pdf 로 넣어도 되고, 위쪽 탭으로 확장자만 · MIME만 검색하도록 좁힐 수도 있습니다. 분류 칩으로 이미지·문서 같은 범주만 훑어볼 수도 있습니다.
이 사전은 웹 실무에서 쓰이는 값을 추린 것이지 IANA 공식 등록부 전체가 아닙니다. 여기 없는 특수 포맷은 IANA 미디어 타입 등록부를 직접 확인하고, 등록된 타입이 아예 없다면 application/octet-stream 이 정답입니다 — 무조건 다운로드로 처리됩니다.
# 서버가 실제로 뭘 보내는지 확인 (헤더만)
curl -sI https://example.com/file.pdf | grep -i content-type
# 파일 내용으로 타입 추측 (확장자를 믿지 않음)
file --mime-type -b ./upload.png
자주 묻는 질문
MIME 타입이 왜 중요한가요?
웹 서버가 보내는 Content-Type 헤더를 보고 브라우저가 내용을 어떻게 처리할지 결정하기 때문입니다. 예를 들어 'text/html'은 화면에 렌더링하고, 'image/png'는 이미지로 표시하며, 'application/octet-stream'은 파일로 다운로드합니다. 잘못된 타입을 보내면 브라우저가 오작동하거나 보안 취약점이 발생할 수 있어 정확한 지정이 필수적입니다.
어떤 키워드로 검색할 수 있나요?
다양한 방식으로 검색할 수 있습니다. '.hwp' 같은 확장자, 'application/vnd.hancom.hwpx' 같은 MIME 타입 전체, 또는 '엑셀', '워드', '사진'처럼 파일에 대한 일반적인 설명으로도 검색이 가능합니다. 자주 쓰는 약어나 관련 용어도 포함하여 최대한 유연하게 찾을 수 있도록 만들었습니다.
복사할 때 ‘; charset=utf-8’은 왜 자동으로 붙나요?
HTML, CSS, JSON 등 텍스트 기반 파일에 한글 같은 다국어 문자가 포함될 때 인코딩 방식을 알려주지 않으면 글자가 깨질 수 있습니다. ‘charset=utf-8’은 UTF-8 방식으로 인코딩되었음을 명시하는 표준적인 방법입니다. 개발자가 이 부분을 놓치지 않도록, 텍스트 계열 타입 복사 시 편의를 위해 자동으로 추가해 드립니다.
찾는 확장자나 MIME 타입이 목록에 없습니다.
이 사전은 널리 쓰이는 표준 및 사실상의 표준 타입을 중심으로 계속 업데이트됩니다. 만약 목록에 없는 특정 파일이라면, 일반적으로 'application/octet-stream' 타입을 사용해 브라우저가 무조건 다운로드하도록 할 수 있습니다. 더 정확한 정보가 필요하다면 IANA 공식 미디어 타입 레지스트리를 참고할 수 있습니다.