HTTP

HTTP protocol

HTTP 请求过程

每次http请求经过这些过程: 客户端发起请求-->DNS解析-->TCP连接-->SSL等协议握手-->服务器处理-->内容传输-->完成

curl 命令手册

查看curl 命令的手册,curl命令支持以下阶段的时间统计:

  • time_namelookup : 从请求开始到DNS解析完成的耗时

  • time_connect : 从请求开始到TCP三次握手完成耗时

  • time_appconnect : 从请求开始到TLS握手完成的耗时

  • time_pretransfer : 从请求开始到向服务器发送第一个GET请求开始之前的耗时

  • time_redirect : 重定向时间,包括到内容传输前的重定向的DNS解析、TCP连接、内容传输等时间

  • time_starttransfer : 从请求开始到内容传输完成的时间

  • time_total : 从请求开始到完成的总耗时

主要的 HTTP 性能指标

  • DNS请求耗时 : 域名的NS及本地使用DNS的解析速度

  • TCP建立耗时 : 服务器网络层面的速度

  • SSL握手耗时 : 服务器处理HTTPS等协议的速度

  • 服务器处理请求时间 : 服务器处理HTTP请求的速度

  • TTFB : 客户端发出第一个字节到收到请求的时间(Time to first bytes)

  • 服务器响应耗时 :服务器响应第一个字节到全部传输完成耗时(内容传输时间)

  • 请求完成总耗时

注意: 如果想分析HTTP性能的瓶颈,不建议使用带有重定向的请求进行分析,重定向会导致建立多次TCP连接或多次HTTP请求,多次请求的数据混在一起,数据不够直观,因此 time_redirect 对实际分析意义不大。 其中的运算关系:

  • DNS请求耗时 = time_namelookup

  • TCP三次握手耗时 = time_connect - time_namelookup

  • SSL握手耗时 = time_appconnect - time_connect

  • TTFB耗时 = time_starttransfer - time_appconnect

  • 服务器处理请求耗时 = time_starttransfer - time_pretransfer

  • 服务器传输耗时 = time_total - time_starttransfer

  • 总耗时 = time_total

Last updated