RFC 2616 говорит :
Все приложения HTTP / 1.1 ДОЛЖНЫ быть в состоянии принимать и декодировать "фрагментированное" кодирование передачи
Transfer-Encoding: chunked
определено для HTTP / 1.1. Некоторые из ваших клиентов используют HTTP / 1.0 или даже (дрожь) 0,9? В этом случае сервер не должен использовать кодировку передачи, так как он не является частью протокола.
Хотя большинство современных клиентов понимают HTTP / 1.1, у большинства есть возможность понизиться до 1.0 при использовании прокси (по историческим причинам - некоторые старые прокси имели ошибочные реализации 1.1). Так что, хотя браузер может понимать 1.1, он может запросить 1.0, если это будет указано.
Пример: MSIE 6+ имеет это в диалоговом окне «Свойства обозревателя» - вкладка Advanced
- HTTP 1.1 settings
- флажки «Use HTTP 1.1
» и «Use HTTP 1.1 through proxy connections
».
Кроме того, chunked-кодирование не активируется для всех ответов - обычно сервер включает его, когда Content-Length не установлен или когда буфер вывода очищен.