Где можно найти настройки таймаута по умолчанию для всех браузеров?

Я ищу какую-то документацию, которая определяет, сколько времени каждый браузер (IE6/IE7/FF2/FF3 и т.д.) будет ждать по запросу, прежде чем он просто уйдет и уйдет.

Мне не удалась это сделать.

Любые указатели?

Ответ 1

Мне удалось найти network.http.connect.timeout для более старых версий Mozilla:

Это предпочтение было одним из нескольких добавлено для низкоуровневой настройки сетевой код HTTP. После часть того же кода была значительно переписан в 2001 году, предпочтение перестало иметь какой-либо эффект (как отмечалось в all.js уже Сентябрь 2001 года).

В настоящее время определяется таймаут подключением к системному уровню время ожидания создания. Добавление пути к настроить это значение с низким приоритетом.

Казалось бы, что network.http.connect.timeout ничего не сделал в течение некоторого времени.

Я также видел ссылки на network.http.request.timeout, поэтому я сделал поиск Google. Результаты включают множество ссылок на людей, рекомендующих другим включить его в about:config в то, что, по-видимому, ошибочно полагает, что оно действительно что-то делает, поскольку тот же поиск показывает это о: файлах конфигурации:

Pref удален (не используется). Ранее: HTTP-специфическая сеть тайм-аут. Значение по умолчанию 120.

та же страница содержит дополнительную информацию о network.http.connect.timeout:

Pref удален (не используется). Ранее: определяет, как долго дождитесь ответа до регистрации тайм-аут. Значение по умолчанию 30.

Отказ от ответственности: информация о базе знаний MozillaZine может быть неправильной, неполной или устаревшей.

Ответ 2

во-первых, я не думаю, что есть только одно решение вашей проблемы....

Как вы знаете, каждый браузер значительно отличается.

Но давайте посмотрим, сможем ли мы приблизиться к ответу, который вам нужен....

Я думаю, что IE может быть легко...

Проверить эту ссылку http://support.microsoft.com/kb/181050

Для Firefox попробуйте следующее:

Откройте Firefox и в адресной строке введите "about: config" (без кавычек). Оттуда прокрутите вниз до Network.http.keep-alive и убедитесь, что установлено значение "true". Если это не так, дважды щелкните по нему, и он перейдет от false к true. Теперь перейдите один ниже к network.http.keep-alive.timeout - и измените это число, дважды щелкнув его. если вы положите, скажем, 500, вы должны быть хорошими. сообщите нам, если это вообще поможет

Ответ 3

После последнего обновления Firefox у нас была одна и та же проблема с таймаутом сеанса, и этот параметр помог решить эту проблему.

Мы можем управлять им с помощью параметра network.http.response.timeout.

  • Откройте Firefox и введите "about: config" в адресной строке и нажмите "Enter".
  • Нажмите "Я буду осторожен, я обещаю!" Кнопка.
  • Введите "Тайм-аут" в поле поиска и network.http.response.timeout.
  • Дважды щелкните по параметру network.http.response.timeout и введите значение времени (в секундах), которое вы не хотите, чтобы ваш сеанс не был тайм-аут, в поле.

Ответ 4

Для Google Chrome (проверено по версии 62)

Я пытался поддерживать соединение сокета с API-интерфейсом google chrome с удаленным экспресс-сервером и обнаружил, что заголовки запросов должны соответствовать настройкам соединения Node.JS native <net.socket>.

Я устанавливаю объект headers на стороне клиента script со следующими параметрами:

/* ----- */
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.