文章目录
- HTTP MIME类型
HTTP MIME类型
HTTP 请求头中的 Accept 头是客户端用来告诉服务器,客户端可以处理什么类型的内容,这种内容类型使用 MIME 类型来表示。借助内容协商机制,服务器可以从诸多 MIME 中选择一项进行应用,并使用 Content-Type 响应头中通知客户端它的选择。
MIME 是 Multipurpose Internet Mail Extensions 的简称,翻译成中文为“多用途互联网邮件扩展类型”,它是一种标准,用来表示文档、文件或字节流的性质和格式。
提示:浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理资源,因此 Web 服务器在响应头中添加正确的 MIME 类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,导致网站无法正常工作,在下载文件时也可能会导致文件被错误处理。
MIME 的组成结构非常简单,由类型与子类型两个字符串以及中间的“/”三个部分组成,中间不允许出现空格。如下所示:
type/subtype
其中,type 表示一个可以被分成多个子类的独立类别;subtype 表示属于 type 的一个子类型。
提示:MIME 类型对大小写不敏感,但通常是使用小写。
下表中列举了一些常见的 MIME 类型:
类型 | 描述 | 典型示例 |
---|---|---|
text | 表示文件是普通文本,例如 HTML、CSS、JS 的源码文件 | text/plain, text/html, text/css, text/javascript |
image | 表示某种图像,但不包括视频。例如 gif、png、jpg 等格式的图片 | image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon |
audio | 表示某种音频文件 | audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav |
video | 表示某种视频文件 | video/webm, video/ogg |
application | 表示某种二进制数据 | application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf |
Accept 头的语法格式如下所示:
Accept: type/subtype [q=qvalue]
Accept 头中可以列出多个 MIME 类型,并使用逗号将它们分隔开。另外,还可以为 MIME 类型设置一个 qvalue 值,表示该 MIME 类型的优先顺序,也就是权重,取值范围为 0 到 1。注意,qvalue 需要使用分号与前面的 MIME 类型分开,如下例所示:
Accept: text/plain; q=0.5, text/html, text/css; q=0.8, image/webp
上面这个 Accept 头的意思是,客户端的首选类型为 text/html 和 image/webp;如果它们不存在则选择 text/css 类型;还不存在则选择 text/plain 类型。