在哪里可以找到所有浏览器的默认超时设置?

Posted

技术标签:

【中文标题】在哪里可以找到所有浏览器的默认超时设置?【英文标题】:Where can I find the default timeout settings for all browsers? 【发布时间】:2010-11-23 11:03:09 【问题描述】:

我正在寻找某种文档来指定每个浏览器(IE6/IE7/FF2/FF3 等)在放弃和超时之前等待请求的时间。

我没有运气尝试得到这个。

任何指针?

【问题讨论】:

***.com/questions/5798707/browser-timeouts 【参考方案1】:

适用于谷歌浏览器(在版本 62 上测试)

我试图保持从 google chrome 的 fetch API 到远程快速服务器的套接字连接,并发现请求标头必须匹配 Node.JS 的本机 <net.socket> 连接设置。

我使用以下选项在客户端脚本上设置 headers 对象:

/* ----- */
head = new headers();
head.append("Connnection", "keep-alive")
head.append("Keep-Alive", `timeout=$1*60*5`) //in seconds, not milliseconds
/* apply more definitions to the header */
fetch(url, 
    method: 'OPTIONS',
    credentials: "include",
    body: JSON.stringify(data),
    cors: 'cors',
    headers: head, //could be object literal too
    cache: 'default'
 )
 .then(response=>
    ....
  ).catch(err=>...);

在我的快速服务器上,我按如下方式设置我的路由器:

 router.head('absolute or regex', (request, response, next)=>
  req.setTimeout(1000*60*5, ()=>
     console.info("socket timed out");
   );
  console.info("Proceeding down the middleware chain link...\n\n");
  next();
 );

 /*Keep the socket alive by enabling it on the server, with an optional 
  delay on the last packet sent 
 */
server.on('connection', (socket)=>socket.setKeepAlive(true, 10))

警告

请使用常识并确保您保持打开套接字连接的用户经过验证和序列化。它也适用于 Firefox,但如果您将 TCP 连接保持打开超过 5 分钟,它真的很容易受到攻击。

我不确定一些鲜为人知的浏览器是如何运行的,但我也会在此答案后面附上 Microsoft 浏览器的详细信息。

【讨论】:

然后呢?超时时间是多少? 能给个链接吗? 这没有回答问题。【参考方案2】:

在上次 Firefox 更新后,我们遇到了同样的会话超时问题,以下设置帮助解决了这个问题。

我们可以通过network.http.response.timeout参数来控制它。

    打开 Firefox 并在地址栏中输入“about:config”,然后按 Enter。 点击“我会小心的,我保证!”按钮。 在搜索框中输入“timeout”,将显示network.http.response.timeout参数。 双击network.http.response.timeout 参数并在框中输入您不希望会话超时的时间值(以秒为单位)。

【讨论】:

【参考方案3】:

我设法找到network.http.connect.timeout 用于更旧版本的 Mozilla:

这个偏好是几个之一 添加以允许对 HTTP 网络代码。之后 相同代码的一部分是 2001 年进行了重大改写, 偏好不再有任何影响 (如 all.js 中所述,早在 2001 年 9 月)。

目前已确定超时 通过系统级连接 建立超时。添加一种方法 配置这个值被认为 低优先级。

network.http.connect.timeout 似乎有一段时间没有做任何事情了。

我还看到了对network.http.request.timeout 的引用,所以我做了一个Google search。结果包括很多人的链接,这些人建议其他人将它包含在about:config 中,这似乎是一种错误的信念,认为它确实做了一些事情,因为同样的搜索出现了这篇about:config entries 文章:

Pref removed (unused)。 以前:HTTP 特定网络 暂停。默认值为 120

same page 包含有关 network.http.connect.timeout 的其他信息:

Pref removed (unused)。 以前:确定多长时间 等待回复,直到注册 超时。默认值为 30

免责声明:MozillaZine 知识库中的信息可能不正确、不完整或过时。

【讨论】:

更新:network.http.response.timeout 在 Firefox 版本 28 中未设置为版本 29 中的默认限制 300(5 分钟)。see this blog entry at morgb.blogspot.de 我最近在 Google Chrome 和 Firefox 中对此进行了实验,到目前为止似乎根本没有任何 HTTP 超时。我没有同时开始测试,但谷歌浏览器已经愉快地等待了 2000 多秒,而 Firefox 正在等待 1500 秒。【参考方案4】:

首先,我不认为只有一个解决方案可以解决您的问题....

如您所知,每个浏览器都有很大的不同。

但是让我们看看我们是否可以更接近您需要的答案....

我认为 IE 可能很容易......

检查此链接 http://support.microsoft.com/kb/181050

对于 Firefox,试试这个:

打开 Firefox,在地址栏中输入“about:config”(不带引号)。从那里向下滚动到 Network.http.keep-alive 并确保将其设置为“true”。如果不是,双击它,它会从假变为真。现在,转到 network.http.keep-alive.timeout 的下一个 - 并通过双击更改该数字。如果你在那里输入500,你应该很好。让我们知道这是否有帮助

【讨论】:

对于 Firefox:我试过了,但我的理解是,“keep-alive”是 HTTP 请求返回后 TCP 连接保持打开的时间,所以如果你再次请求它'将重用连接并避免握手......这真的是请求超时吗?

以上是关于在哪里可以找到所有浏览器的默认超时设置?的主要内容,如果未能解决你的问题,请参考以下文章

win11internet选项在哪里

设置Jupyter Notebook的默认浏览器

360浏览器下载的文件在哪

如何在TFS中恢复系统默认查询”已指派给我”的设置(TFS 2013)

火狐默认的下载路径是哪里?

谷歌浏览器默认安装的文件夹在哪里?