Это типичный сценарий: страница оценивается, а там буфер - после заполнения буфера часть страницы, которая оценивается, отправляется в браузер. Это использует кодировку HTTP 1.1 chunked.
Однако ошибка может возникать в одном из блоков (после того, как первый уже отправлен). В этом случае:
- вы не можете перенаправить (отправить заголовок
Location
), поскольку заголовки и статус ответа уже отправлены - вы не можете выполнять перенаправление на стороне сервера (вперед), потому что новая страница должна быть отображена после части, которая уже отправлена - это будет выглядеть безобразно.
Итак, что вы должны делать в этом случае? я задал вопрос, можете ли вы отправить заголовок местоположения в трейлере, но это низкоуровневый http, а абстракция языков может не позволить его, даже если он (и, вероятно, не поддерживается в браузерах)
Другой вариант - отправить <script>window.href.location="errorPage"</script>
и, таким образом, заставить клиента перенаправить, но это уродливо. Кроме того, вы должны положить </script>
, чтобы закрыть любой потенциальный незакрытый тег <script>
на частичной странице.
(Я отмечаю основные веб-языки/рамки, потому что это универсальная проблема)