MIME类型

MIME类型–一种标准

媒体类型(通常称为 Multipurpose Internet Mail Extensions多用途互联网邮件扩展类型 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。

互联网号码分配机构IANA (Internet Assigned Numbers Authority)是负责跟踪所有官方MIME类型的官方机构,可以在媒体类型页面中找到最新的完整列表。

格式为 type/subtype

总共有10大类type
file

用法-http请求头

http协议header中的Content-Type具体内容就是mime类型

常用的类型 典例
text text/plain, text/html, text/css, text/javascript
image 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
mutipart multipart/form-data,multipart/byteranges

Content-Type: application/json
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something #boundary是multipart/form-data特有的参数,用来指定各部分间的分割字符

重要:浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。

multipart/form-data比较特殊,引申出Content-Disposition

Content-Disposition正常用法

在常规的 HTTP 应答中,Content-Disposition 响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。

Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"

而在 multipart/form-data 类型的应答消息体中的用法

Content-Disposition 消息头可以被用在 multipart 消息体的子部分中,用来给出其对应字段的相关信息。各个子部分由在Content-Type 中定义的分隔符分隔。用在消息体自身则无实际意义。
Content-Disposition 消息头最初是在 MIME 标准中定义的,HTTP 表单及 POST 请求只用到了其所有参数的一个子集。只有 form-data 以及可选的 name 和 filename 三个参数可以应用在HTTP场景中。
如下是一个demo

POST /test.html HTTP/1.1
Host: example.org
Content-Type: multipart/form-data;boundary="----boundary"
----boundary
Content-Disposition: form-data; name="field1"
value1
----boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"
value2
----boundary--

注意最后以固定两个-结尾

参考资料

MIME 类型