在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值
MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息,确切的来说是客户端告知服务端,自己即将发送的请求消息携带的数据结构类型,好让服务端接收后以合适的方式处理。
例如: Content-Type: text/html;charset:utf-8;
常见的媒体格式类型如下:
以application开头的媒体格式类型:
另外一种常见的媒体格式是上传文件之时使用的:
不过需要注意的是,一般get请求不需要设置Content-Type,只有post才有必要设置!
为什么get请求不需要设置Content-Type?
那要从Content-Type的作用说起,Content-Type作用是为了告诉别人我携带的数据是什么格式?
- 对于request请求
get是不携带数据的,url中?后的参数不算做data
post是需要带参数的,也就是data参数,客户端告诉服务端,自己的数据类型 - 对于response响应
反过来了,服务端告诉客户端,自己的数据类型,这样浏览器就知道是按text/html页面渲染,还是按照text/plain渲染
我们举个例子来说明下,携带 Content-Type的必要性。
我们借鉴《Node.js Web 模块(加载静态页面的web功能)》中的例子,通过浏览器加载一个静态页面:
原文在返回时,在responseHeaders中设置Content-Type,其值为’’:
访问效果是:
浏览器把文本当做html来渲染,那么会隐藏html标签,并按照css样式等渲染!
我们把返回格式该一下,改为文本格式:
访问效果是:
注意红色标记的内容,本身是html标签,被当做普通文本显示出来了!因为服务端告诉浏览器数据是文本格式的,不是html格式的,因此浏览器就把标签当做普通文本对待了。
因此Content-Typ作用是告知别人我的数据是什么格式的,可以是客户端告知服务端,可以是服务端告知客户端。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1231.html