nodejs/ccurlhttp请求与postlerrest客户端相比速度较慢

nodejs/curl http request is slow compared to postman rest client

本文关键字:速度 客户端 postlerrest ccurlhttp 请求 nodejs      更新时间:2023-09-26

我从node.js和Postman-Rest客户端(chrome应用程序)调用Rest API。始终使用相同的计算机、相同的端点和相同的参数。

在node.js中,http大约有400ms,https大约有700ms。在Postman中,我可以获得大约250毫秒的http和https。

我在node.js中使用的库:http,https,request,kinvey(api的节点客户端)。他们或多或少都得到了相同的结果。

为什么我的节点较慢?

node.js 0.10.36

编辑:这与节点无关,我得到了与旋度相同的结果。当使用XMLHttpRequest在浏览器中运行时,我得到了更好的时间。通过分析日志,我发现TCP连接和SSL握手大约需要500毫秒。可能是TCP连接和SSL握手在浏览器中的工作方式不同。

在这里您可以找到一些帮助。我还面临着linux实例上nodejs应用程序服务器的问题。但不要责怪nodejs,因为真正的问题是在linux系统中。

问题:来自机器的任何出站请求都需要找到域,因此它总是查找DNS条目&始终使用安全/不安全协议进行握手。这实际上是一个耗时的场景。您可以通过执行CURL请求进行验证。

curl --trace-time -v https://outboundserver.com

解决方案:我们必须在自己的DNS条目中列出出站服务器的IP白名单。看看下面。。。

在Windows中:自动在自己的dns条目中映射服务器。

在Linux中:我们必须手动添加IP地址对应的主机。手动在/etc/hosts文件中的任何配置(如localhost)下方添加一个条目。

127.0.0.1 localhost outbound.servers.ip.address www.outboundserver.com

最后再次检查curl请求,它应该会给出更快的响应。

curl --trace-time -v https://outboundserver.com