web http mime content-type server browser dev-tech file-extensions

MIME 类型与 Content-Type 完全参考指南

什么是 MIME 类型?为什么它对 Web 服务器和浏览器至关重要?这份指南涵盖了 application/json, image/webp 等常见 Content-Type 的完整参考。

2026-04-11

MIME 类型与 Content-Type 完全参考指南

每当您的浏览器向 Web 服务器请求文件时,服务器不仅会发送位和字节。它还会发送一个“标签”,告诉浏览器这是什么类型的文件。这个标签被称为 MIME 类型(多用途互联网邮件扩展),它通过 Content-Type HTTP 标头发送。

如果服务器发送了错误的 MIME 类型,您的浏览器可能会尝试下载视频而不是播放它,或者出于安全原因拒绝执行脚本。


快速参考表:常见 MIME 类型

MIME 类型 常见扩展名 类别 用途
text/html .html, .htm 网页 标准网页内容
text/css .css 样式 层叠样式表
application/javascript .js 逻辑 Web 应用程序脚本
application/json .json 数据 API 的结构化数据
application/xml .xml 数据 可扩展标记语言
text/csv .csv 数据 逗号分隔值
image/webp .webp 媒体 现代压缩图像格式
image/avif .avif 媒体 高效图像格式
font/woff2 .woff2 字体 现代 Web 字体格式
application/wasm .wasm 编译 WebAssembly 二进制代码
application/octet-stream .bin, .exe 二进制 通用二进制数据(通常触发下载)
multipart/form-data N/A 上传 用于提交包含文件上传的表单

1. 结构化数据和 API

现代 Web 应用程序严重依赖这些类型在前端和后端之间交换信息。

  • application/json: REST API 的行业标准。它很轻量,并且由 JavaScript 原生支持。
  • application/xml: 一种较旧但更强大的格式,支持自定义架构和复杂的验证。
  • text/csv: 常用于从数据库或电子表格导出大型数据集。

2. 媒体和资产

为了确保快速加载,服务器必须正确识别现代、高压缩的媒体格式。

  • image/webp & image/avif: 这些现代格式提供的压缩率比 JPEG 或 PNG 好得多。如果您的服务器没有发送正确的 MIME 类型,浏览器可能无法正确渲染图像。
  • font/woff2: 对 Web 字体至关重要。正确的 MIME 类型确保浏览器可以快速解压缩字体。

3. 专用数据和二进制数据

  • application/wasm: 这是 WebAssembly 工作所必需的。浏览器的要求非常严格——如果服务器没有明确发送 application/wasm Content-Type,它们通常会拒绝编译 WASM 模块。
  • application/octet-stream: 这是二进制数据的“保底”类型。如果服务器不知道文件是什么,通常默认为此类型。浏览器将其视为下载文件的信号,而不是尝试显示它。

4. 表单和上传

当您在网站上提交表单时,浏览器会使用特定的 MIME 类型对您的输入进行编码。

  • application/x-www-form-urlencoded: 简单文本表单的默认类型。它看起来像 URL 查询字符串(name=John&age=30)。
  • multipart/form-data: 当您的表单包含文件上传时,这是必需的。它允许浏览器在单个请求中发送不同类型的数据(文本和二进制文件),并由“边界”分隔。

如何检查文件的 MIME 类型

  • 在浏览器中: 打开开发者工具 -> 网络(Network)标签页。点击一个请求,在“响应标头”(Response Headers)部分查找“Content-Type”。
  • 在 Linux / macOS 上: 使用带有 --mime-type 标志的 file 命令:
    file --mime-type -b my-image.webp
    # 输出: image/webp
    

常见问题 (FAQ)

问:如果服务器发送了错误的 Content-Type 会怎样?

答: 浏览器通常会执行“MIME 嗅探”(MIME Sniffing)来尝试猜测正确的类型。然而,出于安全原因(例如防止 XSS 攻击),现代浏览器变得越来越严格。如果脚本以 text/plain 而不是 application/javascript 发送,大多数浏览器将拒绝执行它。

问:application/javascript 是 JS 文件的唯一正确类型吗?

答: 从历史上看,人们使用 text/javascriptapplication/x-javascript。虽然 application/javascript 曾是正式建议,但最新标准实际上已转回更倾向于 text/javascript。大多数服务器和浏览器都能很好地处理这两者。

问:为什么我会收到“No 'Content-Type' header”错误?

答: 这意味着服务器没有提供有关文件类型的任何信息。浏览器通常会默认为 text/plainapplication/octet-stream,这可能会导致页面渲染不正确或触发不必要的下载。


Tool3M 上的相关工具

  • Base64 编解码器: 将二进制数据转换为数据 URI(包含 MIME 类型),以便在 HTML 或 CSS 中使用。
  • JSON 格式化工具: 验证并格式化您的 application/json 数据。