Попробовав и не получив ручную реализацию chunked Transfer-Encoding с gzipped Content-Encoding, работающей на PHP, я теперь вернусь к использованию mod_deflate в Apache, который отлично работает.
Единственная проблема в том, что есть некоторые нижние колонтитулы, которые я хотел бы отправить вместе с ответом (скажем, Last-Modified или ETag, поэтому я могу выполнить 304 запроса на один и тот же контент). Спецификация HTTP 1.1 предусматривает нижние колонтитулы (как и заголовки, только они идут последними) в ответах по частям, но, похоже, PHP не предоставляет такую функциональность.
Возможно
(Ручная реализация была великолепна - за исключением того, что я не мастер gzip, и различные функции zlib, предоставляемые PHP, не включают в себя тот, который создает допустимые фрагменты gzip. Мне удалось заставить его работать ~ 50% времени - но остальные 50% сломаются. Дох!)