Skip to content

Instantly share code, notes, and snippets.

@lize240810
Last active February 13, 2019 13:28
Show Gist options
  • Select an option

  • Save lize240810/9f9b200ac419aaf245dfea39cfb0b3cd to your computer and use it in GitHub Desktop.

Select an option

Save lize240810/9f9b200ac419aaf245dfea39cfb0b3cd to your computer and use it in GitHub Desktop.
HTTP的头域包括通用头、请求头、响应头和实体头四部分。
**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取值有<no-cache>, <no-store>, <max-age>, <max-stale>, <min-fresh>, <only-if-cached>。
响应的Cache-Control取值有<public>, <private>, <no-cache>, <no- store>, <no-transform>, <must-revalidate>, <proxy-revalidate>, <max-age>。
我们这里主要介绍请求时的常见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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment