与postman rest客户端相比,nodejs / curl http请求速度较慢

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

在node.js中,我得到约400毫秒的HTTP和约700毫秒的HTTPS。 在邮差我得到约250毫秒的http和https。

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

为什么我的节点比较慢?

node.js 0.10.36

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

在这里你可以find一些帮助。 我也面临与Linux实例上的nodejs应用程序服务器的问题。 但是不要把nodejs当成真正的问题在linux系统中。

问题 :任何来自机器的出站请求都需要查找域名,因此它总是查找DNS条目并始终与安全/不安全的协议握手。 这实际上是时间的情况。 您可以通过执行CURL请求进行validation。

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

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

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

在Linux中 :我们必须手动添加对应于IP地址的主机。 手动添加/ etc / hosts文件下的任何configuration像本地主机。

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

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

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