**Accept**:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 **含义**:告诉浏览器我们接受MIME的类型 --- **Accept-Encoding**:gzip, deflate, br **含义**:如果有这个字段,则代表客户端支持压缩将内容编码,去掉后会支持任意编码。 **注意**:爬虫时一般不要把它加上,博主最开始就是不懂全都复制过来,结果因为这个就是不好使卡住好长时间。 --- **Accept-Lanague**:zh-CN,zh;q=0.9 **含义**:告诉服务器能够接受的语言,没有则代表任何语言 --- **Connection**:keep-alive **含义**:告诉服务器需要持久有效的连接状态(HTTP1.1默认会进行持久连接) --- **Host**:www.baidu.com **含义**:客户端指定自己想访问的web服务器域名/IP地址和端口号 --- **Cache-control**:max-age=0 **含义**:(引自百度百科) Cache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令通常覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。 网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。 但是HTTP请求和响应的Cache-Control是不完全一样的。 常见的请求Cache-Control取值有, , , , , 。 响应的Cache-Control取值有, , , , , , , 。 我们这里主要介绍请求时的常见Cache-Control取值。 <1>max-age<=0 本例中使用max-age=0,表示每次请求会访问服务器,通过Last-Modified来判断文件是否被修改,如果被修改,返回状态码200并得到最新文件,否则将返回304状态码并读取缓存文件。 <2>max-age>0 表示会直接从浏览器提取缓存。 <3>no-cache 表示不会在浏览器缓存进行提取,而是强制的向服务器发出请求,这样可以保证客户端能够收到最权威的回应。 <4>no-store 所有内容都不会被缓存到缓存或Internet临时文件中。 --- **Upgrade-Insecure-Requests**:1 **含义**:表示浏览器/爬虫可以处理HTTPS协议,并能自动升级请求从HTTP到HTTPS。 --- **User-Agent**:Mozilla/5.0 (Windows NT 6.1; WOW64) ..Safari/537.36 **含义**:(这个是爬虫中最常用了)用于伪装成浏览器身份请求网页。它的意思自然就是表示浏览器的身份,说明是用的哪种浏览器进行的操作。 --- **Cookies**: **含义**:(这个也是爬虫中很重要的了,通常用于模拟登录) Cookies是用于维持服务端的会话状态,由服务器端写入,然后在后续请求中,供服务器读取使用。 --- 其它请求头字段信息 **Referer**: **含义**:(这个也是爬虫常用到的,防盗链) --- 客户端通过当前URL代表的页面出发访问我们请求的页面。爬虫中,一般我们只要把它设置成请求的网页链接就好了。 **Accept-Charset**: **含义**:(这个也是爬虫常用到的) 表示浏览器可接受的字符集,可以是utf-8,gbk等 --- **If-Modified-Since**:Thu, 10 Apr 2008 09:14:42 GMT **含义**:请求的内容在指定日期以后一旦被修改就被返回对象内容,否则返回“Not Modified” --- **Pragma**: **含义**: Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。 --- **Range**: **含义**:告诉浏览器自己想取对象的哪个部分。例如,Range: bytes=1173546