首页 > 编程知识 正文

http升级https,fiddler怎么看请求响应数据

时间:2023-05-05 13:34:08 阅读:51686 作者:2577

目录HTTP请求进程域名解析建立TCP连接建立SSL/TLS连接发送HTTP消息服务器响应并返回需要Node.js显示请求时间的事件需要事件请求模块curl显示请求时间

HTTP请求流

完整的HTTP请求流程主要包括以下几个阶段:

如果域名解析HTTP请求域名,则必须首先进行域名解析,将域名转换为IP地址,然后进行网络连接。

域名解析过程包括查询操作系统的DNS缓存,以及请求外部DNS服务器进行解析,最后得到与域名对应的IP地址。

建立TCP连接客户端获取目标的IP地址后,向目标发起建立TCP连接的请求,即TCP的三次握手,完成建立TCP连接。

如果请求建立SSL/TLS连接的协议是HTTPS,则必须先与目标建立SSL/TLS连接,并使用获取的私钥加密后续通信消息。

发送HTTP消息以发送具体的HTTP请求消息体,然后等待目标服务器返回。

服务器响应并发送特定的HTTP请求消息体,然后等待目标服务器返回。

如果发现作为实际业务的HTTP请求响应非常慢,则需要分析上述哪个阶段花费了时间。 在本文中,我们通过两种方式来了解HTTP请求过程中每个阶段花费的时间。

在Node.js事件eventnode.js中,一个http请求的每个阶段都是由事件定义的。 也就是说,到达某个阶段时会抛出对应的时间。 通过接收这些事件并进行逻辑处理,可以统计各阶段的时间。

相关事件和相应模块如下:

阶段事件模块触发定时创建socket对象sockethttp.ClientRequest将socket对象分配给当前请求对象后,域名解析lookupnet.Socket 在建立连接之前建立TCP连接connectnet.socketsocket连接完成后,服务器在建立TLS连接的secureConnecttls.TLSSocketTLS连接握手完成后返回消息如果response可读取数据,服务器将返回readable如果数据datastream.readableresponse可读取单个数据,则服务器完成并返回endstream.Readable,然后返回readable

request模块request模块提供了成熟的功能,只需在options中将time字段设置为true,就可以在HTTP请求汇总过程中花费时间。

常数请求=请求(请求); const url='https://www.baidu.com '; 常数选项={ URL,method: 'GET ',time: true,}; request(options,(error,response )={if ) error ) console.error ); }控制台. log (response.timings; console.log (response.timing phases ); ); 输出结果如下。

{ socket: 34.420195999999976,lookup: 47.29232500000006,connect: 63.71983800000004,response: 128.208279, end :131.7655480000002 } { wait :34.42019599999976,dns: 12.872129000000086,TCP 3360 16.4275129999999999976,first 可见Download:3.5572690000000193,total :131.7655480000002 } response.timings统计了各个阶段

注:早期版本的请求模块可能不具备此功能。

curl显示请求需要时间的curl指令是非常强的指令,也可以统计HTTP请求的各个阶段的时间。 按以下方式使用:

curl-o/dev/null-s-w ' time _ name lookup : % { time _ name lookup }ntime _ connect 3360 % { time _ conect }

放弃-o /dev/null返回值,不输出-s静默输出,不输出进度条-w,以指定格式打印信息,其中包含特定参数。 time_namelookup :从开始到域名解析完成时间time_connect :从开始到TCP连接建立完成的时间time_appconnect :从开始到TLS连接建立完成的时间time_redirect :多少次到的时间time_starttransfer :从启动到服务器准备返回第一个字节的时间time _ total :整个http请求操作的时间如下:

time _ name lookup :002275 time _ connect :013750 time _ appconnect :039952 time _ redirect 3360.000000 time _ 000 TT 例如,情况如下:

DNS分析:2msTCP连接: time_connect(13ms )-time _ name lookup (2ms )=11ms服务器处理: time _ starttransfer (51m s )-time,

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。