我们在做网页访问的时候,会需要获取到访问页面的完整源码,但是有时候却获取不到,这个问题的主要原因是因为没有附加协议头。
协议头是一个比较重要的东西,我们在使用模块的时候会发现有些网站,不需要协议头也可以访问,是因为模块帮助我们附加了一些简单的协议头,如果一些网站需要检测协议头里面的东西,而我们写代码的时候没有加,那么就会出错。
抓包获取到的协议头一般长这个样子:
POST http://www.xxx.com/admin/index/lunix HTTP/1.1
Host: www.xxx.com
Connection: keep-alive
Content-Length: 0
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
X-Requested-With: XMLHttpRequest
Origin: http://www.xxx.com
Referer: http://www.xxx.com/admin/index
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: serverType=nginx; order=id%20desc;
post和get访问方式的协议头不完全一样,大概都是这个样子。
那么协议头应该如何附加呢?
有些需要去掉,重点的需要保留,比如
Host: www.xxx.com
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
X-Requested-With: XMLHttpRequest
Origin: http://www.xxx.com
Referer: http://www.xxx.com/admin/index
Accept-Language: zh-CN,zh;q=0.9
这些是比较重要的,cookie也是非常重要的,post访问提交的时候需要带上。有时候需要cookie合并更新,后期再详细说说。