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"));