【问题标题】:Chromium Browser first HEAD request takes significantly higher timeChromium 浏览器的第一个 HEAD 请求需要更长的时间
【发布时间】:2020-07-24 10:56:43
【问题描述】:

我正在使用此 Javascript 代码发送头部请求并记录每个请求所花费的时间:

var url = "https://www.someexampleurl.com"
var xmlhttp = new XMLHttpRequest();
xmlhttp.responseType = "json";var t0 = performance.now();
xmlhttp.open("HEAD", url, true);
xmlhttp.onreadystatechange= function() {
    if(xmlhttp.readyState==4){
        var t1 = performance.now() - t0;
        resp = xmlhttp.getAllResponseHeaders();
        console.log(t1);
};};
xmlhttp.send();

我注意到第一个请求花费了大约 614 毫秒,所有后续请求花费了大约 170 毫秒。这很奇怪,所以我使用 --disable-web-security 标志启动了 chromium 以允许 CORS 请求,并尝试向 google 和 yahoo 发送 HEAD 请求。结果是一样的。第一个请求的耗时明显高于后续请求。

我尝试使用 PyCurl,在这种情况下完成请求的时间更加一致,这让我想知道这是否与某些铬设置有关?例如,一些禁用缓存的选项可能会解决这个问题?

【问题讨论】:

    标签: xmlhttprequest chromium head


    【解决方案1】:

    经过一番搜索,我已经弄清楚了。第一个 HEAD 请求期间花费的额外时间用于打开 TCP 连接。由于 Chrome 将连接保持一段时间(大约 1 分钟),因此后续请求所需的时间更少。 在 PyCurl 中,请求完成时连接会关闭,因此每个请求都会受到额外的连接时间的影响。

    【讨论】:

      猜你喜欢
      • 2022-07-25
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多