Ответ 1
Я бы не назвал Response.Close()
или Response.End()
.
Response.End()
остановит выполнение/рендеринг страницы в этой точке. Никакой код, следующий за Response.End()
, не будет запущен. Ответ заканчивается в этой точке без добавления дополнительного потока в поток.
Response.Close()
похож на Response.End()
, но позволяет запускать код после его вызова (но никакой дополнительный вывод не может быть отправлен в ответ на страницу).
Response.Flush()
отправит на страницу любые оставшиеся элементы ответа.
Response.Close отправляет пакет reset для клиент и использовать его во что угодно кроме состояния ошибки, приведет на всевозможные проблемы - например, если вы разговаривают с клиентом с достаточным количеством латентность, пакет reset может вызвать любые другие данные ответа, буферизированные на сервер, клиент или где-то в между отбрасыванием.
В этом конкретном случае сжатие предполагает поиск общих паттернов в пределах ответа и некоторого количества ответ должен быть буферизирован кода сжатия для увеличения шанс найти более продолжительное повторение шаблоны - эта часть, которая буферизуется не могут быть отправлены клиенту, как только вы do Response.Close().
Короче говоря, не используйте Response.Close().