HTTP协议中Content-type和Content-Disposition的区别

Content-type作用

Content-type可以用于请求头,也可以用于响应头。首部字段 Content-Type 说明了实体主体内对象的媒体MIMIE类型。
一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。

常见的媒体格式类型

text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
以application开头的媒体格式类型:

application/xhtml+xml :XHTML格式
application/xml: XML数据格式
application/atom+xml :Atom XML聚合格式
application/json: JSON数据格式
application/pdf:pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:

multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

像我们在对接第三方接口的时候,会要求我们请求或者响应报文,按照执行的格式传输,譬如xml或者json报文。那么我们就需要保证网络传输的过程中,Content-type的值为application/xml或者application/json。

Content-Disposition作用

MIME 协议的扩展。
一般指的是服务器端告知客户端(浏览器),在文件下载的时候,浏览器显示指定的文件名。
譬如HttpServletResponse返回响应报文的时候,设置响应头

response.setHeader("Content-disposition", "attachment;filename=" +filename);

设置文件名出现乱码问题

当使用HttpServletResponse设置返回的响应报文中是下载功能,指定显示文件名,如果不编码处理会出现乱码。

解决:

response.setHeader("Content-disposition", "attachment;filename=" +URLEncoder.encode(filename, "utf-8"));

参考

https://www.runoob.com/http/http-content-type.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容