南京旅游网站建设公司,全球十大搜索引擎排名,十大免费软件免费下载,wordpress 插件目录浏览器的Content-Type 最近在做web端下载的时候需要给前端返回一个二进制的流#xff0c;需要在请求头中设置一个 writer.Header().Set(Content-Type, application/octet-stream)那么http中的Content-Type有具体有哪些呢#xff1f;他们具体的使用场…浏览器的Content-Type 最近在做web端下载的时候需要给前端返回一个二进制的流需要在请求头中设置一个 writer.Header().Set(Content-Type, application/octet-stream)那么http中的Content-Type有具体有哪些呢他们具体的使用场景又是怎样的呢 1 分类
一、 MediaType类 MediaType即是Internet Media Type互联网媒体类型也叫做MIME类型在Http协议消息头中使用Content-Type来表示具体请求中的媒体类型信息确切的来说是客户端告知服务端自己即将发送的请求消息携带的数据结构类型好让服务端接收后以合适的方式处理。 官网:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types 1.1 text/htmlHTML格式
1.2 text/plain纯文本格式
1.3 text/xmlXML格式
1.4 image/gifgif图片格式
1.5 image/jpegjpg图片格式
1.6 image/pngpng图片格式
二、 application类
2.1 application/xhtmlxmlXHTML格式
2.2 application/xmlxml数据格式
2.3 application/atomxmlAtom XML聚合格式
2.4 application/jsonJSON数据格式
2.5 application/pdfpdf格式
2.6 application/mswordword文档格式
2.7 application/octet-stream二进制流数据常见于文件下载
2.8 application/x-www-form-urlencodedhtml中form表单提交 form encType””中默认的encTypeform表单数据被编码为key/value格式发送到服务器表单默认的提交数据的格式 2.9 multipart/form-data表单中需要进行文件上传时 multipart/form-data 需要在表单中进行文件上传时就需要使用该格式 2.10 application/zip压缩包
2 Content-Type作用GET请求一般不用携带 不过需要注意的是一般get请求不需要设置Content-Type只有post才有必要设置 为什么get请求不需要设置Content-Type 2.1概念
Content-Type作用是为了告诉别人我携带了什么类型的数据
对于request请求 get是不携带数据的url中?后的参数不算做data post是需要带参数的也就是data参数客户端告诉服务端自己的数据类型 对于response响应 反过来了服务端告诉客户端自己的数据类型这样浏览器就知道是按text/html页面渲染还是按照text/plain渲染 2.2 案例 我们简单写一个html页面然后分别设置不同的Content-Type观察结果 ①设置为text/html 原文在返回时在responseHeaders中设置Content-Type其值为’text/html’ response.writeHead(200, {Content-Type: text/html}); 访问效果是 浏览器把文本当做html来渲染那么会隐藏html标签并按照css样式等渲染
②设置为text/plain
现在我们把Content-Type改为text/plain试试
response.writeHead(200, {Content-Type: text/plain}); 访问效果为 注意红色标记的内容本身是html标签被当做普通文本显示出来了因为服务端告诉浏览器数据是文本格式的不是html格式的因此浏览器就把标签当做普通文本对待了。 因此Content-Typ作用是告知别人我的数据是什么格式的可以是客户端告知服务端可以是服务端告知客户端。 在回到之前的问题为什么get请求不需要设置Content-Type 原因就是get时不会携带狭义的数据即data那么自然就没必要告诉服务器自己的数据类型是什么了当然了如果强行给get请求设置Content-Type也不会出错但是没有意义
拓展
1. Content-Type与Content-Disposition关系
Content-Type实体头部用于指示资源的MIME类型通过Content-Type标头告诉客户端实际返回的内容应该以什么方式显示response返回的数据Content-Disposition是MIME协议的扩展指示回复的内容应该以何种方式显示
以内联的形式即网页或者页面的一部分这种方式就与Content-Type作用相同以附件形式以附件形式下载并保存到本地
//在页面中展示作为页面的一部分
Content-Disposition: inline
//attachment意为消息体应该被下载到本地大多数浏览器会呈现一个保存为对话框
Content-Disposition: attachment
//将response结果下载到本地并且文件名为xxx.jpg
Content-Disposition: attachment; filenamexxx.jpg参考文章https://blog.csdn.net/m0_45406092/article/details/114022550