gpt4 book ai didi

Node.js http GET 请求比浏览器、REST 客户端等花费的时间要长得多

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:40 25 4
gpt4 key购买 nike

我尝试在 Node.js 中发出一个简单的 GET 请求,该请求需要 3-5 秒才能解析,而浏览器或 REST 客户端中的相同请求需要大约 400 毫秒。我发出请求的服务器由我们的服务器团队控制,但在我用请求/资源监控打扰他们之前,我打算对社区进行 ping 操作,看看是否有任何“嘿,先检查此设置”之类的内容你们可以提供一些建议。

该代码本质上是将传入请求转发到我们的服务器:

http.createServer(function (req, res) {
http.request({
host: "our.private.host",
port: 8080,
path: req.url,
headers: req.headers
}, function () {
res.end("DONE: " + Date.now());
}).end();
}).listen(8001);

我打开浏览器并输入以下 URL:

http://localhost:8001/path/to/some/resource

...被转发到最终目的地:

http://our.private.host:8080/path/to/some/resource

一切正常,我得到了我想要的响应,但需要 3-5 秒才能解决。如果我将最终目标 URL 直接粘贴到浏览器或 REST 客户端中,它会很快解析。不幸的是,我对我们的服务器了解不多 - 但此时我正在寻找更多 Node 提示。请注意,请求池并未达到最大,因为我一次仅从本地计算机发出 1 个请求。

最佳答案

第一步是通过查看 Node 服务器上网络事件的确切时间来收集有关请求花费时间的信息。您可以通过获取一个监视所有网络事件的工具来做到这一点。我个人使用Fiddler ,但我知道WireShark也很受欢迎。

安装并激活该工具后,您就可以查看请求过程中的所有这些不同步骤所花费的时间:

  1. 解析目标 IP 地址的 DNS 请求
  2. 连接到目标服务器的时间
  3. 发送http请求的时间
  4. 接收http请求的时间
  5. 是时候将响应发送回原始请求了

了解其中哪些操作比预期时间长得多,将使您知道在哪里进一步查找问题。

仅供引用,有一些预先构建的工具,例如 nginx只需在配置文件中设置一些值,无需任何自定义编码即可完成此类代理。

关于Node.js http GET 请求比浏览器、REST 客户端等花费的时间要长得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com