3.3 Network标签
在Network标签中可以看到页面向服务器请求的信息、请求的大小以及加载请求花费的时间。从发起网页页面请求Request后分析HTTP请求得到各个请求信息(包括状态、类型、大小、所用时间、Request和Response等)。Network标签的结构组成如图3-5所示。
图3-5 Network标签
Network标签主要包括以下5个区域。
● Controls:控制Network的外观和功能。
● Filters:控制Requests Table具体显示哪些内容。
All:返回当前页面全部加载的信息,就是一个网页全部所需要的代码、图片等请求。
XHR:筛选Ajax的请求链接信息,前面讲过Ajax核心对象XMLHTTPRequest, XHR取于XMLHTTPRequest的缩写。
JS:主要筛选JavaScript文件。
CSS:主要是CSS样式内容。
Img:是网页加载的图片,爬取图片的URL都可以在这里找到。
Media:是网页加载的媒体文件,如MP3、RMVB等音频视频文件资源。
Doc:是HTML文件,主要用于响应当前URL的网页内容。
● Overview:显示获取到请求的时间轴信息,主要是对每个请求信息在服务器的响应时间进行记录。这个主要是为网站开发优化方面提供数据参考,这里不做详细介绍。
● Requests Table:按前后顺序显示所有捕捉的请求信息,单击请求信息可以查看该详细信息。
● Summary:显示总的请求数、数据传输量、加载时间信息。
5个区域中,Requests Table是核心部分,主要作用是记录每个请求信息。但每次网站出现刷新时,请求列表都会清空并记录最新的请求信息,如用户登录后发生304跳转,就会清空跳转之前的请求信息并捕捉跳转后的请求信息。
对于每条请求信息,可以单击查看该请求的详细信息,如图3-6所示。
图3-6 请求信息
每条请求信息划分为以下5个标签。
● Headers:该请求的HTTP头信息。
● Preview:根据所选择的请求类型(JSON、图片、文本)显示相应的预览。
● Response:显示HTTP的Response信息。
● Cookies:显示HTTP的Request和Response过程中的Cookies信息。
● Timing:显示请求在整个生命周期中各部分花费的时间。
常用的标签有Headers、Preview和Response。Headers用于获取请求链接、请求头和请求参数;Preview和Response用于显示服务器返回的响应内容。
Headers标签划分为以下4部分。
● General:记录请求链接、请求方式和请求状态码。
● Response Headers:服务器端的响应头,其参数说明如下。
Cache-Control:指定缓存机制,优先级大于Last-Modified。
Connection:包含很多标签列表,其中最常见的是Keep-Alive和Close,分别用于向服务器请求保持TCP连接和断开TCP连接。
Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式。
Content-Length:服务器通过这个头告诉浏览器回送数据的长度。
Content-Type:服务器通过这个头告诉浏览器回送数据的类型。
Date:当前时间值。
Keep-Alive:在Connection为Keep-Alive时,该字段才有用,用来说明服务器估计保留连接的时间和允许后续几个请求复用这个保持着的连接。
Server:服务器通过这个头告诉浏览器服务器的类型。
Vary:明确告知缓存服务器按照Accept-Encoding字段的内容分别缓存不同的版本。
● Request Headers:用户的请求头。其参数说明如下。
Accept:告诉服务器客户端支持的数据类型。
Accept-Encoding:告诉服务器客户端支持的数据压缩格式。
Accept-Charset:可接受的内容编码UTF-8。
Cache-Control:缓存控制,服务器控制浏览器要不要缓存数据。
Connection:处理完这次请求后,是断开连接还是保持连接。
Cookie:客户可通过Cookie向服务器发送数据,让服务器识别不同的客户端。
Host:访问的主机名。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器请求是从哪个页面URL过来的,服务器借此可以获得一些信息用于处理。
User-Agent:中文名为用户代理,简称UA,是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
● Query String Parameters:请求参数。主要是将参数按照一定的形式(GET和POST)传递给服务器,服务器通过接收其参数进行相应的响应,这是客户端和服务端进行数据交互的主要方式之一。
Headers标签的内容看起来很多,但在实际使用过程中,爬虫开发人员只需关心请求链接、请求方式、请求头和请求参数的内容即可。而Preview和Response是服务器返回的结果,两者之间对不同类型的响应结果有不同的显示方式:
(1)如果返回的结果是图片,那么Preview表示可显示图片内容,Response表示无法显示。
(2)如果返回的是HTML或JSON,那么两者皆能显示,但在格式上可能会存在细微的差异。