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