【问题标题】:nodejs/curl http request is slow compared to postman rest client与邮递员休息客户端相比,nodejs/curl http请求很慢
【发布时间】:2015-06-02 21:45:17
【问题描述】:

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

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

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

为什么我的节点变慢了?

node.js 0.10.36

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

【问题讨论】:

  • 您是否尝试禁用 Http 代理?
  • 启动时间?尝试测量第一个请求时间,然后(从成功回调)开始并测量另一个请求
  • @AndreySidorov 我运行了大约 5-10 个请求,平均时间为 400/700 毫秒,我什至排除了第一次连接。
  • @mscdex 是的,我试过了,得到了相同的结果

标签: javascript node.js http postman


【解决方案1】:

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

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

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多