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

标签 javascript node.js http postman

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

在 node.js 中,我得到 ~400ms 的 http 和 ~700ms 的 https。 在 Postman 中,http 和 https 大约需要 250 毫秒。

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

为什么我的 Node 比较慢?

Node .js 0.10.36

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

最佳答案

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

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

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

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

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

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

127.0.0.1 本地主机 outbound.servers.ip.address www.outboundserver.com

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

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

关于javascript - 与 postman rest 客户端相比,nodejs/curl http 请求速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336688/

相关文章:

javascript - 数据表清除搜索输入和正则表达式

javascript - 如何在 grunt initConfig 函数中多次运行任务

java - 如何使进度条与服务器代码同步工作?

javascript - 在 node.js 中使用 mssql 关闭 MSSQL 连接

javascript - 如何在 Ubuntu (12.04) 上正确安装最新版本的 CoffeeScript

javascript - 如何在 Node.js 中实现递归 Promise 调用

java - 如何从 PHP 服务器上的 android 获取值

php - 如何告诉浏览器显示他的默认错误页面?

javascript - Protractor - 等待上一个 block 在下一个 block 之前完成

node.js - 你如何在 node.js 中使用多个请求处理程序?