首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

HTTP Content-Type 對照表:完整 MIME 類型與文件擴展名映射大全

     編輯:PHP 相關知識

HTTP Content-Type 完整參考表:200+ 擴展名對應 MIME 類型

正確設置 Content-Type 響應頭,是瀏覽器正確渲染、下載、安全策略生效的前提。本表收錄 200+ 常見文件擴展名與標準 MIME 類型映射,涵蓋文檔、圖片、音視頻、壓縮包、字體、代碼、移動應用等全品類,可作為 Nginx/Apache mime.types、PHP header()、前端 accept 屬性配置的權威參考。

核心原則

  • 標準來源:IANA Media Types、RFC 2046、Apache mime.types、Nginx mime.types
  • 優先級:具體類型優於通用類型(如 application/pdf 優於 application/octet-stream)
  • 字符集:文本類型建議附帶 ; charset=utf-8
  • 安全:用戶上傳文件務必驗證 MIME 與擴展名一致,防止 XSS/上傳繞過

完整映射表(節選高頻類別,完整版見附件)

文檔與數據

擴展名MIME 類型備註
.pdfapplication/pdf標準文檔
.doc/.docxapplication/msword / application/vnd.openxmlformats-officedocument.wordprocessingml.documentWord
.xls/.xlsxapplication/vnd.ms-excel / application/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel
.ppt/.pptxapplication/vnd.ms-powerpoint / application/vnd.openxmlformats-officedocument.presentationml.presentationPowerPoint
.txt/.csvtext/plain / text/csv純文本/CSV
.jsonapplication/jsonAPI 標準
.xmlapplication/xml / text/xml數據交換
.html/.htmtext/html網頁
.mdtext/markdownMarkdown
.rtfapplication/rtf富文本

圖片

擴展名MIME 類型備註
.jpg/.jpegimage/jpeg有損壓縮
.pngimage/png無損、透明
.gifimage/gif動畫、256色
.webpimage/webp現代格式
.svgimage/svg+xml矢量圖
.bmpimage/bmp位圖
.icoimage/x-icon圖標
.tiff/.tifimage/tiff印刷級
.avifimage/avif下一代

音視頻

擴展名MIME 類型備註
.mp4video/mp4H.264/H.265
.webmvideo/webmVP8/VP9/AV1
.mp3audio/mpeg音頻
.wavaudio/wav無損
.oggaudio/ogg / video/ogg開源容器
.flvvideo/x-flvFlash 視頻
.m3u8application/vnd.apple.mpegurlHLS 串流
.tsvideo/mp2tMPEG-TS 切片

壓縮與打包

擴展名MIME 類型備註
.zipapplication/zip通用壓縮
.gzapplication/gzipGzip
.tarapplication/x-tar打包
.rarapplication/vnd.rarRAR
.7zapplication/x-7z-compressed7-Zip
.bz2application/x-bzip2Bzip2
.xzapplication/x-xzLZMA

字體

擴展名MIME 類型備註
.wofffont/woffWeb 字體 1.0
.woff2font/woff2Web 字體 2.0(更小)
.ttf/.otffont/ttf / font/otfTrueType/OpenType
.eotapplication/vnd.ms-fontobjectIE 專用

代碼與腳本

擴展名MIME 類型備註
.js/.mjsapplication/javascript / text/javascriptES 模組用 .mjs
.csstext/css樣式表
.phpapplication/x-httpd-php服務端解析
.pytext/x-pythonPython
.javatext/x-java-sourceJava 源碼
.shapplication/x-shShell 腳本
.sqlapplication/sqlSQL 腳本

移動應用

擴展名MIME 類型平台
.apkapplication/vnd.android.package-archiveAndroid
.ipaapplication/vnd.iphoneiOS
.aabapplication/vnd.android.appbundleAndroid App Bundle
.xapapplication/x-silverlight-appWindows Phone (舊)

其他常見

擴展名MIME 類型備註
.csvtext/csv逗號分隔值
.icstext/calendar日曆
.vcftext/vcard聯繫人
.epubapplication/epub+zip電子書
.torrentapplication/x-bittorrentBitTorrent
.* (未知)application/octet-stream強制下載

PHP 設置範例

<?php
// 根據擴展名輸出正確 Content-Type
function setContentType($filename) {
    $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
    $map = [
        'pdf' => 'application/pdf',
        'jpg' => 'image/jpeg',
        'png' => 'image/png',
        'json' => 'application/json',
        'csv' => 'text/csv',
        'zip' => 'application/zip',
        'apk' => 'application/vnd.android.package-archive',
        // ... 更多映射
    ];
    $type = $map[$ext] ?? 'application/octet-stream';
    header("Content-Type: $type");
    // 文本類型建議加 charset
    if (str_starts_with($type, 'text/') || $type === 'application/json') {
        header("Content-Type: $type; charset=utf-8");
    }
}

Nginx/Apache 配置提示

  • Nginx:include mime.types; 在 http 塊,默認已含 800+ 映射
  • Apache:AddType application/pdf .pdf 或編輯 mime.types 文件
  • 自定義類型:types { application/wasm wasm; } (Nginx)

安全最佳實踐

  1. 上傳驗證:finfo_file(fopen($tmp, 'r'), FILEINFO_MIME_TYPE) 驗證真實 MIME
  2. 擴展名白名單:僅允許業務必要類型
  3. 下載響應:Content-Disposition: attachment; filename="..." 強制下載
  4. 防止嗅探:X-Content-Type-Options: nosniff

將此表作為專案 docs/mime-types.md 存檔,前後端協作、Nginx 配置、文件上傳下載、API 設計時隨時查閱,確保 Content-Type 永遠精準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved