Долгая операция в веб-интерфейсе иногда заканчивается сообщением о тайм-ауте раньше, чем сервер завершит работу. В исходной заметке 2017 года речь шла о параметре Firefox network.http.response.timeout. Это версия-зависимая настройка: её наличие и применение нельзя переносить на любой современный выпуск браузера.
Сначала определить источник тайм-аута
Экспорт базы данных, разбор большого файла и формирование отчёта могут ограничиваться браузером, прокси, веб-сервером или обработчиком приложения. Изменение Firefox не продлевает чужой лимит. Кроме того, исчезновение страницы с ошибкой не означает, что операция на сервере отменилась: повторное нажатие может создать вторую задачу.
- Сохраните время начала, URL запроса, код ответа и сообщение об ошибке.
- В инструментах разработчика посмотрите, был ли получен HTTP-ответ или соединение оборвалось без него.
- Если вы администрируете сервер, сопоставьте событие с его журналом. Для внешнего сервиса передайте сведения поддержке.
- Перед повтором проверьте состояние операции: завершён ли импорт, появился ли файл, создана ли запись.
Как работала настройка в старом Firefox
Для версий, где параметр действительно обслуживает нужный тип соединения, последовательность была следующей:
- Открыть
about:configи подтвердить предупреждение о расширенных настройках. - Найти
network.http.response.timeout. Если его нет, не создавать произвольный параметр в надежде изменить поведение браузера. - Записать исходное значение и тип; изменить существующее целое число только для контролируемой диагностики.
- В старом примере использовалось
1800секунд — полчаса. Это пример длительности, а не рекомендуемое значение для постоянной работы. - Повторить один безопасный запрос и вернуть исходное значение после проверки.
Внутренние параметры Firefox не являются стабильным публичным API. Их актуальное назначение устанавливается по исходникам конкретной версии. Список статических настроек Mozilla помогает найти определения, но отсутствие строки в одном файле ещё не является полным аудитом всех настроек браузера.
Более надёжный путь для длинной работы
Для приложения под вашим контролем длительную задачу лучше отделить от удерживаемого HTTP-запроса: отправить её в очередь, вернуть идентификатор, показывать состояние и дать скачать готовый результат. Для разовой административной выгрузки используйте подходящий инструмент самой СУБД с нужными правами. Это решает задачу независимо от одного браузерного тайм-аута.