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


Answers:


24

我设法找到Mozilla的许多旧版本的network.http.connect.timeout

此首选项是为了允许对HTTP网络代码进行低级调整而添加的首选项之一。在2001年对同一代码的一部分进行了重大重写之后,该首选项就不再起作用(正如all.js早在2001年9月所指出的那样)。

当前,超时由系统级连接建立超时确定。添加配置此值的方法被认为是低优先级的。

似乎network.http.connect.timeout一段时间以来什么都没做。

我还看到了对它的引用network.http.request.timeout,因此我进行了Google搜索。结果中包含许多指向人们的链接,建议其他人将其包含在它about:config似乎确实在做某事的错误信念中,因为通过相同的搜索可以找到关于about:config条目的文章:

首选项已删除(未使用)。以前:HTTP特定的网络超时。默认值为120

页面包含有关network.http.connect.timeout以下内容的其他信息:

首选项已删除(未使用)。以前:确定注册超时之前等待响应的时间。默认值为30

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


2
更新:network.http.response.timeout从未在Firefox 28版本中设置为默认限制300版本(5分钟)到29版本的时间。请参见morgb.blogspot.de上的此博客条目
rubo77

5
我最近在Google Chrome和Firefox中对此进行了实验,到目前为止,似乎根本没有HTTP超时。我没有同时开始测试,但是Google Chrome浏览器一直很高兴地等待了2000秒钟以上,而Firefox的浏览时间已经达到了1500秒。–
Talia

5

首先,我认为您的问题不是唯一的解决方案。

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

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

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

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

对于Firefox,请尝试以下操作:

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


4
对于Firefox:我尝试过这样做,但是我的理解是,“保持活动”是HTTP请求返回后TCP连接保持打开状态的时间,因此,如果发出另一个请求,它将重新使用连接并避免握手...这真的是请求超时吗?
Daniel Magliola,09年

5

在上一次Firefox更新之后,我们遇到了相同的会话超时问题,以下设置有助于解决该问题。

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

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

3

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

我试图保持套接字从Google chrome的访存API到远程Express服务器的连接保持活动状态,发现请求标头必须与Node.JS的本机<net.socket>连接设置匹配。

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

/* ----- */
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浏览器详细信息。


9
和?超时时间是几点?
tar

你能给个链接吗?
Yarik

这不能回答问题。
LarsH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.