python获取http请求的首字节时间(TTFB)

Python019

python获取http请求的首字节时间(TTFB),第1张

 接口测试有一响应时间的指标,一般的思路是使用调用完成的时间减去调用开始的时间,这样统计将网络传输的时间包含在内,在数据响应小,传输时间在几毫秒的时候,这样的误差是可以接受的,但如果因为传输的数据很大,传输的链路比较长等原因导致传输过程耗时比较多时,则会带来较大的误差,因此 以收到的第一个字节的时间为结束时间,来计算响应时间则能在一定程度上忽略网络带来的影响,能更真实的反应服务器的响应速度,这就是TTFB(Time-To-First-Byte),而一般的方式就是TTLB(Time-To-Last-Byte)

在使用chrome浏览器的开发者工具查看请求的详情时,在timing下会显示TTFB 如下图

执行后响应如图:

ps:如果是基于tcp或udp的协议,也可以有类似的思路,在收到第一个字节时做为结束时间,来度量接口的响应时间,TTLB对于用户更有意义,但单纯就接口测试来说TTFB则更能反应应用接口的情况。

如果要进行客户端和服务器端之间的消息传递,我们可以使用HTTP协议请求

通过URL网址传递信息,可以直接在URL中写上要传递的信息,也可以由表单进行传递(表单中的信息会自动转化为URL地址中的数据,通过URL地址传递)

备注:已经取得资源,并将资源添加到响应中的消息体

可以向服务器提交数据,是一种比较安全的数据传递方式,比如在登录时,经常使用 POST 请求发送数据

请求服务器存储一个资源,通常需要制定存储的位置

请求服务器删除一个资源

请求获取对应的 HTTP 报头信息

可以获得当前URL所支持的请求类型

状态码:200 OK

表明请求已经成功. 默认情况下成功的请求将会被缓存

不同请求方式对于请求成功的意义如下:

GET:已经取得资源,并将资源添加到响应中的消息体.

HEAD:作为消息体的头部信息

POST:在消息体中描述此次请求的结果

请求成功对于PUT 和 DELETE 来说并不是200 ok 而是 204 所代表的没有资源 (或者 201 所代表的当一个资源首次被创建成功

以下是常见状态码及含义

一个现象:

很多情况下,我们需要登陆账号,才能爬取更多的信息。

而我们想要登陆的话,则需要带上 cookies。

以 https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php](https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php) 作为爬虫范例吧。

账号:spiderman,密码:crawler334566

这里又来了一个post请求?

(1)post和get都可以带着参数请求,不过get请求的参数会在url上显示出来。

(2)post请求的参数就不会直接显示,而是隐藏起来。像账号密码这种私密的信息,就应该用post的请求。

(3)get请求会应用于获取网页数据,比如我们之前学的requests.get()。post请求则应用于向网页提交数据,比如提交表单类型数据(像账号密码就是网页表单的数据)。

【requests headers】存储的是浏览器的请求信息,【response headers】存储的是服务器的响应信息。我们要找的cookies就在其中。

【response headers】里有set cookies的参数。set cookies是什么意思?就是服务器往浏览器写入了cookies。

明天接着写cookies吧,难的地方分多步完成!