位置: 编程技术 - 正文

利用Node.js了解与测量HTTP所花费的时间详解(node.js用途)

编辑:rootadmin

推荐整理分享利用Node.js了解与测量HTTP所花费的时间详解(node.js用途),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js用途,node.js使用教程,如何使用node,怎么用node.js,怎么用node.js写接口,怎么用node.js写接口,如何使用node,node.js使用教程,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

了解和测量HTTP时间有助于我们发现客户端到服务器或服务器到服务器之间的通信性能瓶颈。 本文介绍了HTTP请求中的时间开销,并展示了如何在Node.js中进行测量。

在我们开始了解HTTP时间开销之前,让我们来看一些基本的概念:

IP(互联网协议):IP是网络层协议,涉及网络寻址和路由。 IP负责根据一个或多个IP网络上的数据包头将数据包从源主机传送到目标主机。 它还定义了封装要传递的数据的数据包结构。 DNS(域名服务器):DNS是一种分层分散式命名系统,用于将诸如risingstack.com的人类可读主机名解析为机器可读的IP地址。 TCP(传输控制协议):TCP标准定义了如何在应用程序之间建立和维护网络对话以交换数据。 TCP在通过IP网络通信的主机上运行的应用程序之间提供可靠,有序和错误检查的八位字节流。 HTTP客户端通过建立TCP连接来发起请求。 SSL / TLS(传输层安全性):TLS是一种通过计算机网络提供通信安全性的加密协议。 SSL(安全套接字层)是TLS的不推荐使用的前身。 TLS和SSL都使用证书建立安全连接。 SSL证书不依赖于加密协议(如TLS),证书包含密钥对:公钥和私钥。 这些密钥一起工作,建立一个加密的连接。

现在我们来看一下通常HTTP请求的时间表:

DNS查找:执行DNS查找所花费的时间。 DNS查找将域名解析为IP地址。 每个新的域需要一个完整的往返行程来进行DNS查找。 当目的地已经是IP地址时,没有DNS查找。 TCP连接:在源主机和目标主机之间建立TCP连接所需的时间。 必须在多步握手过程中正确建立连接。 TCP连接由操作系统管理,如果基础TCP连接无法建立,则OS范围的TCP连接超时将会进入我们应用程序中的超时配置。 TLS握手:完成TLS握手的时间。 在握手过程中,端点交换认证和密钥以建立或恢复安全会话。 没有HTTPS请求的不需要TLS握手。 第一个字节的时间(TTFB):等待初始响应的时间。 此时间除了等待服务器处理请求和传递响应所花费的时间之外,还可以捕获往返服务器的延迟。 内容传输:接收响应数据所花费的时间。 响应数据的大小和可用的网络带宽决定其持续时间。

如何通过HTTP时间开销帮助发现性能瓶颈?

例如,如果您的DNS查询所花费的时间比预期的要长,那么问题可能是您的DNS提供商或DNS缓存设置。

缓慢的内容传输可能是由效率低下的反应机构引起的,例如发回太多的数据(未使用的JSON属性等)或缓慢的连接。

测量Node.js中的HTTP时间开销

为了测量Node.js中的HTTP时间开销,我们需要订阅特定的请求,响应和套接字事件。 这是一个简短的代码片段,展示了如何在Node.js中执行此操作,此示例仅关注时序:

利用Node.js了解与测量HTTP所花费的时间详解(node.js用途)

DNS查找只会发生在有域名的时候:

TCP连接在主机解析后立即发生:

TLS握手(SSL)只能使用https协议:

我们等待服务器开始发送第一个字节:

总持续时间从开始和结束日期计算:

看到整个例子,看看我们的 module

著名的request module具有测量HTTP定时的内置方法。 您可以使用time属性启用它。

分布式跟踪

可以使用分布式跟踪工具收集HTTP定时,并在时间轴上可视化它们。 这样,您可以全面了解后台发生的情况,以及构建分布式系统的实际成本是多少。

RisingStack的opentracing-auto库具有内置的标志,可通过OpenTracing收集所有HTTP时间。

在Jaeger中使用opentracing-auto的HTTP请求时序。

总结

使用Node.js测量HTTP时间可以帮助您发现性能瓶颈。 Node生态系统提供了很好的工具来从应用程序中提取这些指标。

好了,

标签: node.js用途

本文链接地址:https://www.jiuchutong.com/biancheng/379527.html 转载请保留说明!

上一篇:使用vs code开发Nodejs程序的使用方法(使用vs code开发Django)

下一篇:Node.js自定义实现文件路由功能(nodejs定义数组)

  • 附加税的内容有哪些
  • 计算应纳税所得额时 不得扣除支出有哪些
  • 差额税征收标准
  • 代扣代缴个人所得税如何做账
  • 个人所得税年度汇算时间
  • 个人提供建筑安装劳务如何缴纳个人所得税
  • 付款后发票可以抵扣吗
  • 境内公司代付境外货款
  • 打印社保缴费凭证需要什么证件
  • 增值税出口退税政策
  • 房地产收到客户房款如何做账
  • 公立医院固定资产贷款相关规定
  • 工业企业增值税缓交政策
  • 营改增后取得土地转让
  • 定期定额户开具增值税专用发票如何申报
  • 预付卡销售加油充值款可以报销吗
  • 总额法和净额法哪个合理
  • 股权收益需要缴增值税吗
  • 行业协会会费收缴标准
  • 预缴增值税附加税款怎么填写申报表
  • 预付账款坏账处理流程
  • win11多开
  • 不是第三方的贷款app
  • 期货公司保证金怎么算的
  • win7旗舰版系统激活工具
  • 企业所得税申报表A类
  • 差旅费报销应注意什么
  • 采购员出差预借差旅费
  • framework怎么用
  • springboot比spring做了哪些改进
  • iterator用法 移除对象
  • HTML 事件参考手册
  • js中this指向有几种情况
  • 直接进入税金及附加的科目
  • python中如何创建一个新文件
  • 新租赁准则下的会计分录
  • 企业的管理费用占比
  • 政府专项补贴税收
  • 其他应收款资产类
  • 网上变更财务负责人新负责人要确认吗
  • 影响公司股利分成的因素
  • 向个体工商户付款可以转给个体法人吗
  • 法人向公司账户打款
  • 个人所得税的不同税率
  • 税务局报季度税
  • 吊车租赁有限公司
  • 缴纳的工会经费现金流量表怎么记
  • 实行自行申报的项目有哪些
  • 递延收益会计科目使用说明
  • 简易计税开具的发票取得的进项可以抵扣嘛
  • 打样费入什么科目
  • 怎么做个体户
  • 私人网银可以转账吗
  • 建筑企业开具增值税发票
  • 各种会计凭证的填制
  • 隐藏在大山深处的罪恶
  • freebsd常用命令
  • solaris date命令
  • win7 64位系统插入磁盘提示“将磁盘插入驱动器”的解决方法
  • mac os 应用
  • mac怎么自动清理垃圾软件
  • macOS 10.12 Beta 7更新了什么 macOS 10.12 Beta7更新内容汇总
  • 怎么把ubuntu装在u盘上
  • 如何关闭电脑端口
  • VirtualBOX给CentOS建共享文件夹的方法
  • win7系统安装谷歌浏览器
  • win8适用的pr
  • win8.1无线
  • 微软官方确认:Xbox不会出现在E3 2023实体展
  • 举例讲解水生花卉栽培管理
  • 安卓微信5.0版本下载
  • js全选和全不选效果复选框
  • jQuery插件能输出到控制台
  • jquery实现二级联动菜单
  • 基于jQuery Ajax实现上传文件
  • js添加一个div
  • python集合的基本操作
  • 国家税务总局全国增值税发票官网
  • 江西省联考成绩查询系统入口官网
  • 双流税务总局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设