前言
之前写 JavaScript 时,并没有特意去整理过类似的知识点,本文整理记录下,方便自己查阅。
正文
什么是 Content-Type ?
Media-Type,即是 Internet Media Type,互联网媒体类型,也叫做 MIME 类型。在互联网中有成百上千种不同的数据类型,HTTP 在传输数据对象时会为他们打上称为 MIME 的数据格式标签,用于区分数据类型。最初 MIME 是用于电子邮件系统的,后来 HTTP 也采用了这一方案。
Content-Type 格式:Content-Type: [type]/[subtype]; parameter
- type:主类型,任意的字符串,如
text
,如果是*
表示所有。 - subtype:子类型,用于指定 type 的详细形式,任意的字符串,如
html
,同样*
表示所有,用/
与主类型隔开。 - parameter:可选参数,如 charset、boundary 等。
如:Content-Type: text/html; charset:utf-8
常用 type
- Text:用于标准化地表示的文本信息,文本消息可以是多种字符串集合或者多种格式的集合;
- Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
- Application:用于传输营运程序数据或者二进制数据;
- Message:用于包装一个 Email 消息;
- Image:用于传输静态图片数据;
- Audio: 用于传输音频或者音声数据;
- Video:用于传输动态影像数据,可以是与音频编辑咋一起的视频数据格式。
常用 subtype
为了确保这些值再一个有序而且公开的状态下开发,MIME 使用 Internet Assigned Numbers Authority(IANA)作为中心的注册机制来管理这些值。常用的有如下这些:
- text/plain:纯文本
- text/html:HTML 文档
- text/xml:XML 文档
- image/gif:GIF 图像
- image/jpeg:JPEG 图像(注意:JPG 与 JPEG 没区别,只是
.jpg
的写法更流行而已)(PHP 中为 image/pjpeg) - image/png:PNG 图像(PHP 中为 image/x-png)
- video/mpeg:MPEG 动画
- message/rfc822:RFC 822 形式
- application/octet-stream:任意的二进制数据
- application/pdf:PDF 文档
- application/xhtml+xml:XHTML 文档
- application/msword:Microsoft Word 文件
- application/x-www-form-urlencoded:使用 HTTP 的 POST 方式提交的表单,<form encType="">中默认的encType
- application/json:JSON 数据格式
- multipart/form-data:用于提交包含文件、非ASCII数据和二进制数据的表单,如文件上传
- multipart/alternative:HTML 邮件的 HTML 形式和纯文本形式,相同内容使用不同的形式表示