MIME 类型速查

.woff2 该填 font/woff2 还是 application/font-woff?配置服务器和写上传校验时,先在这里查一下,值优先取 IANA 的注册写法。

显示 151 / 151 条

MIME 类型是怎么用的

MIME 类型(准确说是媒体类型)写在 HTTP 响应的 Content-Type 头里,告诉浏览器这段内容该怎么处理。text/html 会渲染成网页,image/png 会当图片显示,application/octet-stream 是兜底值,浏览器不认识就会直接下载。所以静态资源服务器返回错的类型时,最常见的症状就是「图片打不开,一点就下载」。

中文站点要注意字符集。text/plain、text/html 这类文本类型建议显式写成 text/plain; charset=utf-8,否则浏览器可能按系统的 GBK 或 latin-1 去猜,中文变成乱码。这个是响应头的一部分,写在服务器配置里,不是文件名能决定的。

一部分 MIME 值和直觉不一样,配置时容易踩。JavaScript 的注册类型是 text/javascript,application/javascript 已经在 RFC 9239 里被标记为过时;woff2 字体的注册类型是 font/woff2(旧写法 application/font-woff2);SVG 是 image/svg+xml,图像本质是 XML 文本,所以直接打开时里面的脚本会执行,当 img 引用时不会,上传 SVG 前要过一遍白名单。

后缀只是约定,不能当安全边界。把木马改成 .png 上传,文件内容不会因此变成图片;反过来,服务器忽略后缀、按内容嗅探时,图片里的多余数据也可能被当成脚本执行。可靠的做法是上传后用文件头魔数校验真实格式,再重命名成随机文件名存储,并且对外响应时统一加上 X-Content-Type-Options: nosniff,让浏览器不要自己猜类型。

配置时优先用这里的值填 Nginx 的 types 块、Apache 的 AddType 或对象存储的自定义响应头;如果某个后缀在你的场景里有历史包袱,比如给下载接口特意返回 application/octet-stream 强制下载,那就以实际需求为准,别硬套标准值。