При выполнении каких-либо ресурсоёмких операций на интернет ресурсах, когда время отклика может переваливать за минуты, а то и больше, браузеры прерывают соединение и сообщают, что сервер не доступен.
К таким операция, например, можно отнести выгрузку дампа базы данных в phpmyadmin, парсинг больших файлов и прочее.
Максимальное время ожидания (timeout) в браузерах по умолчанию обычно настроено на несколько минут. В браузере Firefox, если я не ошибаюсь, это значение равно 5 минут.
Нам, конечно, прерывать соединение не хочется, т.к. проводимая операция может прерваться, и, следовательно, возникнуть дальнейшие проблемы из-за неправильного выполнения операции.
Благо данную настройку в Firefox можно изменить. Для этого:
- Открываем новую вкладку
- В адресной строку пишем «about:config» и нажимаем Enter
- Соглашаемся с сообщением о риске
- В поле поиска вводим параметр «network.http.response.timeout»
- Двойным нажатием открываем окно настройки данного параметра
- Вводим необходимое время в секундах, например, 1800 (пол часа)
- Нажимаем ОК и закрываем вкладку.
P.S. Иногда данная опция оказывается даже очень полезной. В небезызвестном браузере Chrome данный параметр для настройки отсутствует.
Когда лучше не увеличивать timeout
Увеличение ожидания помогает при разовых административных операциях, но не должно маскировать медленный сайт. Если обычная страница требует минуты, правильнее вынести задачу в фон: очередь, cron, прогресс-бар и отдельная проверка статуса.
Важно не путать разные таймауты. Ожидание HTTP-ответа — это одно, долго выполняющийся JavaScript на странице — другое, а таймауты прокси или веб-сервера — третье. Если Firefox ждёт дольше, но nginx, Apache, PHP-FPM или upstream уже оборвал соединение, настройка браузера не поможет.
- Для долгого ответа сервера проверяйте HTTP timeout в браузере и серверные таймауты.
- Для долгого JavaScript смотрите предупреждения о зависшем скрипте и настройки выполнения JS.
- Для импорта больших файлов лучше использовать фоновую задачу и страницу прогресса.
- Для phpMyAdmin и разовых административных операций увеличение ожидания допустимо.
Если параметра в about:config нет, его можно создать вручную только тогда, когда вы понимаете, какая версия Firefox и какой именно timeout вам нужен. После завершения работы лучше вернуть настройку к обычному значению, чтобы браузер не висел слишком долго на реально недоступных сайтах.
Итог: увеличивать timeout можно как временный инструмент администратора. Для пользовательского сценария правильнее исправлять серверную часть, потому что долгий белый экран остаётся плохим интерфейсом даже тогда, когда браузер согласен ждать.