Content-Type 解析
Content-Type
定义
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型
。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。
在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。
Content-Type的格式:
Content-Type:type/subtype ;parameter
- type:主类型,任意的字符串,如text,如果是*号代表所有;
- subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
- parameter:可选参数,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
常见Content-Type
- HTML文档标记:text/html;
- 普通ASCII文档标记:text/html;
- JPEG图片标记:image/jpeg;
- GIF图片标记:image/gif;
- js文档标记:application/javascript;
- xml文件标记:application/xml;
上面的知道即可,下面的四种必须牢记:
1. application/x-www-form-urlencoded
不支持文件,用于表单提交
中文或特殊字符如"/"、","、“:" 等会自动进行URL转码
2. multipart/form-data
支持文件上传的格式。
数据格式:
- 以------boundary开始
- 附加信息和参数名
- 空行
- 参数值
- 多参数会有多个boundary块
- 参数若是文件,会有特别文件域
- 最后以------boundary–为结束标识
3. application/json
略
4. application/xml 和 text/xml
text/xml的话,将忽略xml数据里的编码格式
- application/xml实体默认用 UTF-8 字符集,Content-type: application/xml; charset="utf-8" 或 都可以生效
- text/xml 实体在 XML 头指定编码格式无效,必须在 HTTP 头部的 Content-Type: 中指定才会生效(例如 无法设置字符集,Content-Type: text/xml; charset="utf-8" 则可以)。没有设置字符集时默认使用“us-ascii”字符集。
参考来源:
https://blog.csdn.net/qq_14869093/article/details/86307084 ——Content-Type 详解
https://blog.csdn.net/kikajack/article/details/79233017 ——MIME 类型中,application/xml 与 text/xml 的区别