MIME Type Lookup MIME 類型查詢對照表
快速查詢各種副檔名對應的 MIME Type,支援 Extension → MIME 與 MIME → Extension 雙向查詢。
內建 HTTP Header 預覽,Web 開發與 API 設計必備工具。
📋 HTTP Header 預覽
點擊上方任一 MIME Type 後,這裡會顯示對應的 HTTP Header 範例
點擊 MIME Type 卡片查看 HTTP Header
❓ 常見問題 FAQ
關於 MIME Type 的常見疑問與解答
什麼是 MIME Type?為什麼重要?
MIME Type(Multipurpose Internet Mail Extensions Type)是一種標準化的標籤,用於標識檔案的格式與內容類型。最初設計用於電子郵件附件,後來被 HTTP 協定廣泛採用,成為 Web 通訊的基礎。
MIME Type 的格式為 type/subtype,例如 text/html、application/json、image/png。
為什麼重要?
- 瀏覽器顯示判斷 — 瀏覽器根據 Content-Type 決定如何渲染內容(HTML、圖片、下載)
- API 開發 — REST API 使用 Content-Type 與 Accept 標頭進行內容協商
- 檔案上傳驗證 — 伺服器透過 MIME Type 驗證上傳檔案類型
- 伺服器設定 — Web 伺服器(Nginx、Apache)需要正確設定 MIME Type 映射
- 安全性 — 錯誤的 MIME Type 可能導致 MIME 類型混淆攻擊
Content-Type 與 Accept 標頭有什麼不同?
兩者都是 HTTP 中與 MIME Type 相關的標頭,但用途不同:
Content-Type(請求/回應標頭)
告訴接收方 「這是什麼類型的資料」。在回應中,伺服器用它告訴瀏覽器如何解析回應內容。在請求中,客戶端用它告訴伺服器請求主體的格式。
Accept(請求標頭)
告訴伺服器 「客戶端可以接受哪些類型的資料」。伺服器根據 Accept 標頭的值來決定回傳哪種格式的回應。
簡單記憶法:Content-Type 是「我給你什麼」,Accept 是「我想要什麼」。
如何正確設定伺服器的 MIME Type?
不同 Web 伺服器有不同的 MIME Type 設定方式:
Nginx
include mime.types;types { application/javascript js; }
Apache
AddType application/javascript .jsAddType text/html .html
Node.js / Express
res.type('json')res.set('Content-Type', 'application/json')
⚠️ 注意:錯誤的 MIME Type 設定可能導致瀏覽器無法正確解析檔案,甚至引發安全問題。例如,將使用者上傳的檔案以 text/html 提供可能導致 XSS 攻擊。
什麼是 application/octet-stream?什麼時候使用?
application/octet-stream 是二進位資料的通用 MIME Type,相當於「未知的二進位檔案」。當伺服器無法確定檔案的具體類型時,會使用這個 MIME Type。
常見使用場景:
- 強制下載 — 當設定
Content-Type: application/octet-stream時,瀏覽器會強制下載檔案而非嘗試顯示 - 檔案下載功能 — 許多下載功能使用此 MIME Type 配合
Content-Disposition: attachment標頭 - 未知檔案類型 — 當伺服器不認識檔案副檔名時的安全預設值
💡 建議:應盡量使用具體的 MIME Type 而非 application/octet-stream,以便瀏覽器和客戶端能正確處理檔案。
MIME Type 與副檔名有什麼關係?
MIME Type 與副檔名是相互對應的關係,但並非 100% 一對一:
- 一對多 — 一個 MIME Type 可能對應多個副檔名(如
audio/mpeg對應.mp3、.mpga) - 多對一 — 一個副檔名也可能對應多種 MIME Type(如
.xml可以是text/xml或application/xml) - Web 伺服器映射 — Nginx、Apache 等伺服器透過 MIME Type 映射表來決定如何處理每種副檔名的請求
這就是為什麼這個工具支援 Extension → MIME 與 MIME → Extension 雙向查詢的原因 — 讓您可以從任何一個方向找到對應的資訊。
💡 實用提醒:伺服器是根據副檔名查找 MIME Type 來設定 Content-Type 標頭。如果映射表不完整,可能會回傳錯誤的 MIME Type 或直接使用 application/octet-stream。
什麼是「MIME 類型混淆攻擊」?如何防範?
MIME 類型混淆攻擊(MIME Type Confusion Attack) 是一種安全漏洞,攻擊者透過將惡意檔案偽裝成其他類型來繞過安全檢查。
常見攻擊手法:
- 上傳含 JavaScript 的
.html檔案但標記為image/png - 利用伺服器錯誤的 MIME Type 設定讓瀏覽器將文字檔案當作 HTML 執行
防範措施:
- 使用
X-Content-Type-Options: nosniff標頭防止瀏覽器 MIME 嗅探 - 上傳檔案時驗證真實的 MIME Type(檢查檔案魔術位元組)而非僅依賴 Content-Type
- 檔案下載時使用
Content-Disposition: attachment - 限制可上傳的副檔名白名單
WebP、AVIF 等現代圖片格式的 MIME Type 是什麼?
現代網頁圖片格式及其對應的 MIME Type:
- WebP —
image/webp(Google 開發,支援有損/無損壓縮與透明度) - AVIF —
image/avif(基於 AV1 編碼,壓縮率優於 WebP) - SVG —
image/svg+xml(向量圖形,可縮放) - ICO —
image/x-icon(網頁圖示格式) - HEIF / HEIC —
image/heif/image/heic(Apple 生態系常用)
⚠️ 注意:較新的格式(如 AVIF、WebP)可能需要較舊的伺服器軟體手動新增 MIME Type 映射,否則可能回傳 application/octet-stream 導致瀏覽器無法正確顯示。
📖 MIME Type 完全指南
深入了解 MIME Type 的運作原理與最佳實踐
什麼是 MIME Type?
MIME Type(Multipurpose Internet Mail Extensions Type)是網際網路通訊中用來標識檔案格式的標準化標籤。它的歷史可以追溯到 1992 年,最初是為了解決電子郵件附件無法傳送二進位資料的問題而設計。隨著 HTTP 協定的普及,MIME Type 被 Web 全面採用,成為瀏覽器、伺服器和 API 之間溝通內容格式的基礎語言。
一個 MIME Type 由兩部分組成:主類型(type) 與 子類型(subtype),中間以斜線分隔。例如 text/html 表示「文字類型的 HTML 格式」。
在 HTTP 通訊中,MIME Type 主要透過兩個標頭傳遞:Content-Type(告知接收方當前內容的格式)和 Accept(告知伺服器客戶端可以接受的格式)。這套機制稱為 內容協商(Content Negotiation)。
MIME Type 分類總覽
MIME Type 分為十大類別,每種類別代表一類數位內容:
Text(文字類)
文字類 MIME Type 用於標示純文字或標記語言檔案。最常見的是 text/html(HTML 網頁)、text/css(樣式表)、text/plain(純文字)和 text/csv(逗號分隔值)。文字類的編碼資訊通常透過 charset 參數額外指定,如 text/html; charset=utf-8。
Image(圖片類)
圖片類 MIME Type 涵蓋所有靜態與動態圖片格式。常見的包括 image/png(可攜式網路圖形)、image/jpeg(JPEG 照片)、image/gif(GIF 動畫/靜態圖)、image/svg+xml(向量圖形)和 image/webp(Google 開發的現代圖片格式)。
現代網頁開發中,選擇正確的圖片格式與 MIME Type 對 頁面載入速度 和 SEO 評分 有直接影響。WebP 和 AVIF 格式因其優異的壓縮率,已成為效能優化的首選。
Audio(音訊類)與 Video(影片類)
多媒體 MIME Type 用於串流和下載音訊/影片檔案。audio/mpeg(MP3)是最普及的音訊格式,而 video/mp4(MP4)是現代影片的標準格式。其他常見的還有 audio/ogg、audio/wav、video/webm 等。
在 HTML5 中,<audio> 與 <video> 元素依賴正確的 Content-Type 來決定是否能播放媒體檔案。
Application(應用程式類)
這是最多樣化的類別,涵蓋各種結構化資料、程式碼與二進位格式。application/json 是現代 REST API 的核心格式,application/javascript(或 text/javascript)用於 JavaScript 檔案,application/pdf 則是最廣泛使用的文件格式。
application/octet-stream 是特殊的通用二進位 MIME Type,當伺服器無法確定檔案類型時使用,通常會觸發瀏覽器的下載行為而非顯示。
Font(字型類)
網頁字型(Web Font)的 MIME Type 對於使用自訂字型的網站至關重要。常見的包括 font/ttf(TrueType)、font/otf(OpenType)、font/woff 和 font/woff2(Web Open Font Format)。WOFF2 因其最佳的壓縮率,是目前網頁字型的首選格式。
Archive(壓縮檔類)與 Document(文件類)
壓縮檔類涵蓋 application/zip、application/gzip、application/x-tar 等。文件類則包括 application/pdf、application/msword(.doc)、application/vnd.openxmlformats-officedocument.wordprocessingml.document(.docx)等。
Content-Type 與 HTTP Header 的實際應用
在 HTTP 通訊中,Content-Type 標頭決定了瀏覽器如何處理伺服器回傳的內容。如果伺服器回傳 Content-Type: text/html,瀏覽器會將內容解析為 HTML。如果回傳 Content-Type: application/json,瀏覽器知道這是 JSON 資料,通常需要由 JavaScript 處理。
實戰範例:
當您請求一個 .jpg 圖片時,伺服器的回應包含:
Content-Type: image/jpeg
瀏覽器收到這個標頭後,知道要將內容當作 JPEG 圖片渲染,而非下載。這就是 MIME Type 在日常瀏覽中的運作方式。
檔案上傳與 MIME Type 驗證
在處理檔案上傳時,MIME Type 驗證是安全防護的重要環節。但開發者需要注意:客戶端發送的 Content-Type 可以被偽造。因此僅依賴 HTTP 請求中的 Content-Type 來驗證檔案類型是不安全的。
最佳實踐是在伺服器端檢查檔案的魔術位元組(Magic Bytes) — 每個檔案格式在開頭都有獨特的位元組序列。例如,JPEG 檔案開頭為 FF D8 FF,PNG 為 89 50 4E 47。這種驗證方式遠比依賴 Content-Type 標頭安全。
MIME Type 安全性與最佳實踐
為了防止 MIME 類型混淆攻擊,業界發展出多種防護機制:
- X-Content-Type-Options: nosniff — 告訴瀏覽器不要進行 MIME 嗅探,嚴格遵守伺服器回傳的 Content-Type
- Content-Disposition: attachment — 強制瀏覽器下載檔案而非嘗試顯示
- 正確的 MIME 映射表 — 確保伺服器為每種副檔名回傳正確的 Content-Type
- Content Security Policy (CSP) — 透過 CSP 標頭限制可以載入的資源類型
總結:MIME Type 是 Web 開發的基礎知識,從 HTTP 標頭設定、檔案上傳驗證到前端資源載入,無不與 MIME Type 息息相關。正確理解與運用 MIME Type,不僅能讓您的網站運作更正常,還能提升安全性與使用者體驗。使用 ToolHub 的 MIME Type Lookup 工具,快速查詢任何副檔名或 MIME Type 的對應關係。