iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用curl命令分析请求的耗时情况
  • 376
分享到

如何使用curl命令分析请求的耗时情况

2024-04-02 19:04:59 376人浏览 泡泡鱼
摘要

本篇文章为大家展示了如何使用curl命令分析请求的耗时情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。最近工作中遇到一个问题,某个请求的响应特别慢,因此我就希望有

本篇文章为大家展示了如何使用curl命令分析请求的耗时情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

最近工作中遇到一个问题,某个请求的响应特别慢,因此我就希望有一种方法能够分析到底请求的哪一步耗时比较长,好进一步找到问题的原因。在网络上搜索了一下,发现了一个非常好用的方法,  curl 命令就能帮你分析请求的各个部分耗时。

curl 命令提供了 -w 参数,这个参数在 manpage 是这样解释的:

-w, --write-out  Make curl display infORMation on stdout after a completed transfer. The format is a string that may contain plain text mixed with any number of variables. The format can be specified as a literal "string", or you can have curl read the format from a file with "@filename" and to tell curl to read the format from stdin you write "@-". The variables present in the output format will be substituted by the value or text that curl thinks fit, as described below. All variables are specified as %{vari‐ able_name} and to output a normal % you just write them as %%. You can output a newline by using \n, a carriage return with \r and a tab space with \t.

它能够按照指定的格式打印某些信息,里面可以使用某些特定的变量,而且支持 \n 、 \t 和 \r 转义字符。提供的变量很多,比如 status_code  、 local_port 、 size_download 等等,这篇文章我们只关注和请求时间有关的变量(以 time_ 开头的变量)。

先往文本文件 curl-format.txt 写入下面的内容:

➜ ~ cat curl-format.txt  time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n  time_appconnect: %{time_appconnect}\n  time_redirect: %{time_redirect}\n  time_pretransfer: %{time_pretransfer}\n  time_starttransfer: %{time_starttransfer}\n  ----------\n time_total: %{time_total}\n

那么这些变量都是什么意思呢?我解释一下:

  • time_namelookup :DNS 域名解析的时候,就是把 https://zhihu.com 转换成 ip 地址的过程

  • time_connect :tcp 连接建立的时间,就是三次握手的时间

  • time_appconnect :SSL/ssh 等上层协议建立连接的时间,比如 connect/handshake 的时间

  • time_redirect :从开始到***一个请求事务的时间

  • time_pretransfer :从请求开始到响应开始传输的时间

  • time_starttransfer :从请求开始到***个字节将要传输的时间

  • time_total :这次请求花费的全部时间

我们先看看一个简单的请求,没有重定向,也没有 SSL 协议的时间:

➜ ~ curl -w "@curl-format.txt" -o /dev/null -s -L "Http://cizixs.com"  time_namelookup: 0.012  time_connect: 0.227  time_appconnect: 0.000  time_redirect: 0.000  time_pretransfer: 0.227  time_starttransfer: 0.443  ----------  time_total: 0.867

可以看到这次请求各个步骤的时间都打印出来了,每个数字的单位都是秒(seconds),这样可以分析哪一步比较耗时,方便定位问题。这个命令各个参数的意义:

  • -w :从文件中读取要打印信息的格式

  • -o /dev/null :把响应的内容丢弃,因为我们这里并不关心它,只关心请求的耗时情况

  • -s :不要打印进度条

从这个输出,我们可以算出各个步骤的时间:

  • DNS 查询:12ms

  • TCP 连接时间:pretransfter(227) - namelookup(12) = 215ms

  • 服务器处理时间:starttransfter(443) - pretransfer(227) = 216ms

  • 内容传输时间:total(867) - starttransfer(443) = 424ms

来个比较复杂的,访问某度首页,带有中间有重定向和 SSL 协议:

➜ ~ curl -w "@curl-format.txt" -o /dev/null -s -L "https://baidu.com"  time_namelookup: 0.012  time_connect: 0.018  time_appconnect: 0.328  time_redirect: 0.356  time_pretransfer: 0.018  time_starttransfer: 0.027  ----------  time_total: 0.384

可以看到 time_appconnect 和 time_redirect 都不是 0 了,其中 SSL 协议处理时间为 328-18=310ms 。而且  pretransfer 和 starttransfer 的时间都缩短了,这是重定向之后请求的时间。

上述内容就是如何使用curl命令分析请求的耗时情况,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: 如何使用curl命令分析请求的耗时情况

本文链接: https://www.lsjlt.com/news/85703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用curl命令分析请求的耗时情况
    本篇文章为大家展示了如何使用curl命令分析请求的耗时情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。最近工作中遇到一个问题,某个请求的响应特别慢,因此我就希望有...
    99+
    2024-04-02
  • Unix 命令行教程:如何在 HTTP 请求中使用 curl?
    在网络世界中,HTTP 请求是非常常见的操作。curl 是一款命令行工具,它可以帮助我们在 Unix 系统下发送 HTTP 请求。本文将介绍如何在 HTTP 请求中使用 curl,并提供实用的示例代码。 一、安装 curl 首先,我们需要...
    99+
    2023-08-30
    javascript unix http
  • 如何使用vmstat命令确定内存使用情况
    今天就跟大家聊聊有关如何使用vmstat命令确定内存使用情况,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。vmstat 命令总结了系统中所有进程使用的总活动虚拟内存,以及空...
    99+
    2023-06-06
  • Linux如何分析Ubuntu磁盘使用情况
    这篇文章主要介绍了Linux如何分析Ubuntu磁盘使用情况,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。亲爱的Linux极客们,在这篇文章中,我将指导你们如何在 Ubunt...
    99+
    2023-06-16
  • 如何在CentOS中使用top命令查看系统资源占用情况
    在CentOS中使用top命令可以查看系统资源占用情况,包括CPU、内存、进程等信息。 要使用top命令,在终端窗口中输入以下命令:...
    99+
    2024-04-02
  • SUSE系统中如何使用top命令查看系统资源占用情况
    在SUSE系统中,可以使用以下步骤来使用top命令查看系统资源占用情况: 打开终端,输入以下命令以启动top命令: top ...
    99+
    2024-03-13
    SUSE
  • linux命令行下如何使用curl命令查看自己机器的外网ip
    本篇内容介绍了“linux命令行下如何使用curl命令查看自己机器的外网ip”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:curl...
    99+
    2023-06-09
  • 如何使用top命令分析linux系统性能
    这篇文章给大家介绍如何使用top命令分析linux系统性能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。top命令是Linux下常用的性能分析工具,可谓是分析系统性能最方便的工具能够实时显示系统中各个进程的资源占用状况...
    99+
    2023-06-28
  • 如何使用Python和Unix命令行处理HTTP请求和数组操作?
    Python和Unix命令行是两个非常强大的工具,它们可以帮助我们处理各种各样的任务,其中包括处理HTTP请求和数组操作。在本文中,我们将探讨如何使用Python和Unix命令行来处理这些任务。 处理HTTP请求 Python提供了许...
    99+
    2023-09-16
    unix http 数组
  • redis的list数据类型相关命令分析及如何使用
    今天给大家介绍一下redis的list数据类型相关命令分析及如何使用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。list列表简介list是简单的字符串列表(...
    99+
    2023-06-26
  • 如何使用ES6的Promise.all实现至少请求多长时间
    这篇文章主要为大家展示了“如何使用ES6的Promise.all实现至少请求多长时间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用ES6的Promise...
    99+
    2024-04-02
  • 如何进行SQLite数据库管理相关命令的使用分析
    这篇文章将为大家详细讲解有关如何进行SQLite数据库管理相关命令的使用分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  1.创建数据库  启动命令行,...
    99+
    2024-04-02
  • 如何使用SAP统计SAP C4C系统包含的产品信息分布情况
    这篇文章主要讲解了“如何使用SAP统计SAP C4C系统包含的产品信息分布情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用SAP统计SAP C4C系统包含的产品信息分布情况”吧!从...
    99+
    2023-06-03
  • 如何使用vbs实现一个扩展时间段的dir命令
    这篇文章主要介绍了如何使用vbs实现一个扩展时间段的dir命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。核心代码set Arg=Wscript.Argument...
    99+
    2023-06-08
  • 如何解决使用Linux命令行时出现的错误提示
    这篇文章主要介绍了如何解决使用Linux命令行时出现的错误提示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。你在使用 Linux 命令行时曾经得到过“拒绝访问(Permiss...
    99+
    2023-06-16
  • Java分布式框架的Shell命令有哪些,如何使用?
    随着分布式系统的普及,Java分布式框架已经成为了企业开发中不可或缺的一部分。在分布式系统中,Shell命令是一种非常重要的工具,它可以帮助我们快速地管理和操作分布式系统。本文将介绍Java分布式框架中常用的Shell命令,并演示如何使用...
    99+
    2023-08-18
    分布式 框架 shell
  • Mysql如何使用命令实现分级查找帮助的方法
    小编给大家分享一下Mysql如何使用命令实现分级查找帮助的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查询所有帮助我们如果...
    99+
    2024-04-02
  • 如何在一条 MySQL 语句中同时使用内置命令 (G & g) 和分号 (;)?
    我们知道内置命令(\G和\g)将命令发送到MySQL服务器执行,并借助分号(;)MySQL确定语句的结束。为了使用这三个查询并获得没有错误的结果,我们需要在一条语句中编写三个查询,一个查询使用 \G,一个查询使用 \g,另一个查询最后使用分...
    99+
    2023-10-22
  • 如何使用Linux中用于配合管理定时任务的atrm与batch命令
    本篇内容介绍了“如何使用Linux中用于配合管理定时任务的atrm与batch命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!atrm删除...
    99+
    2023-06-12
  • 如何使用ChatGPT PHP实现智能聊天机器人的情感分析功能
    如何使用ChatGPT PHP实现智能聊天机器人的情感分析功能智能聊天机器人在现代社交网络和商务应用中越来越被广泛使用,但要使机器人更加智能,除了基本的问答功能外,情感分析也是非常重要的一环。通过情感分析,机器人可以更好地理解用户的情绪和意...
    99+
    2023-10-24
    ChatGPT PHP 情感分析 智能聊天机器人
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作