网络编程时,我们在代码中可能会用到请求头这个东西,对于网络比较陌生的萌新可能会不知所措,日常访问网址都是在浏览器地址栏输入网址就可以了啊,怎么这会子要搞什么请求头!其实说多了都是浏览器的锅,我们在日常使用浏览器访问网址的时候请求头都已经自动被浏览器封装了起来,所以我们看不到请求头。
请求头能告诉被请求的服务器需要传送什么样的格式的信息,通俗的讲就是有一天你去买苹果,你光告诉老板苹果还不行,还得告诉他你要的苹果的种类和数量。这个种类和数量就相当于Http中的请求头。
那么现在我们就揭开请求头的神秘面纱:
现在我们用火狐浏览器访问百度首页,然后随便找个空白处右击查看元素,就会跳出来一个开发者工具,然后我们找到网络,接下里的操作我不会描述了,看图吧~
我们可以看到右下方有请求头一栏,然后下面是一列云云,这些都是什么意思啊!比较懵!
不过我们在编程中要添加的请求头就是这些了~
在这里我们解释一下这些云云的意思:
(1) Host:ss1.bdstatic.com // Host就是主机的意思,在这里表示我们请求的服务器网址
(2) User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
// User-Agent是用户代理的意思,它告诉服务器客户端使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎等信息
(3) Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
// Accept表示浏览器支持的MIME类型,这里又出来了一个新名词MIME,MIME的英文全称是 Multipurpose Internet Mail Extensions(多
功能 Internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,这里就理解成浏览器支持的网页代码类型就可以啦。
// text/html,application/xhtml+xml,application/xml 等都是MIME类型。斜杠前面是类型,后面是子类型,类型指定大范围,子类型是
类型中更为明确的类型。
// text是用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的。
// text/html表示html文档
// Application:用于传输应用程序数据或者二进制数据,这里我们如果App编程的话就需要用这个
// application/xhtml+xml表示 xhtml 文档, application/xml表示 xml 文档。
则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。
(4) Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
// Accept-Language表示浏览器所支持的语言类型
// zh-CN表示简体中文,zh表示中文,en-US表示美式英文,en表示英文
// 当然这里的q也是权重系数啦
(5) Accept-Encoding:gzip, deflate, br
// Accept-Encoding表示浏览器有能力解码的编码类型
// gzip是 GNU zip 的缩写,它是一个 GNU 自由软件的文件压缩程序,也经常用来表示 gzip 这种文件格式
// deflate是同时使用了 LZ77 算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法
// br ~ 当然也是一种编码方式啦
(6) Connection:keep-alive
// Connection表示客户端与服务连接类型
// Keep-Alive表示持久连接
好了,我们的请求头就都解释完了。编程中不同的网络访问类有不同的添加请求头的方式,这个可以参考对应的Api文档~
MQL于2017年8月28日完成本文。