Согласно RFC, в этих случаях сервер должен ответить Код ошибки 408, сигнализирующий клиенту, что соединение уже закрыто на его стороне. Как говорится в RFC:
Если у клиента есть незавершенный запрос в пути, клиент МОЖЕТ повторить этот запрос при новом соединении.
Это означает, что клиент (то есть каждый браузер) должен решить, как будет обрабатываться ответ 408. Есть 2 альтернативы:
- справляться с этим изящно: автоматически повторять оставшиеся запросы в новом соединении, чтобы пользователь оставался в полном неведении о произошедшем сбое
- отказоустойчивый: показ пользователю сбоя с соответствующим сообщением об ошибке 408
Например, кажется, что Chrome в прошлом следовал второму подходу до тех пор, пока люди не начали рассматривать это как «глючное» поведение и не переключились на первый. Вы можете найти ветку ошибок, связанную с ошибкой Chromium, здесь и соответствующее изменение кода здесь.
Примечание. Как вы можете прочитать в последних письмах в связанной ветке, Chrome выполняет эти повторные попытки только в том случае, если некоторые запросы в этом соединении были успешными. В результате, если вы попытаетесь воспроизвести это с помощью одного запроса, возвращающего ответ 408, вы заметите, что Chrome, вероятно, не будет повторять попытку в этом случае.
person
Dimos
schedule
01.10.2017