sendBufferSize으로 재생하면 하나의 청크에 응답을 포함 할만큼 큰 값을 얻을 수 있습니다. 설정 : ("는 HTTP/1.0 클라이언트로 전송 - 코딩을 보낼 안 서버."그래서 청크되지 않음)
그런 다음 chunked content, 당신은 HTTP/1.0 응답을 강제 할 수있는 HTTP/1.1 프로토콜의 일부입니다 아파치 설정에서 force-response-1.0. 그러나 PHP는이 설정을 깨트 렸습니다, PHP의 오랜 버그로, workaround이 있습니다.
우리는 청크 분할 컨텐츠를 거 방지 헤더와 함께 클라이언트 측의 요청을 수정하려고 수 있지만, W3C는 말한다 : "모든 HTTP가/1.1 응용 프로그램을 수신 및 디코딩 할 수 있어야한다은" "을 전송 코딩"청크 그래서 'Accept'와 같은 헤더가있어 서버가 콘텐츠를 청취하는 것을 방지 할 수 있다고 생각하지 않습니다. 그러나 HTTP/1.0으로 요청을 설정하려고 할 수도 있습니다. 요청의 헤더가 아니며, 첫 번째 줄입니다. jQuery로 가능해야합니다.
마지막으로 HTTP/1.0에는 큰 것이 하나도 없으며 '호스트'헤더가 필수는 아닙니다. 이름 기반 가상 호스트로 작업하는 경우 HTTP/1.0의 요청이 여전히 '호스트'헤더를 사용하는지 확인하십시오.
편집 : 해결 방법에 나와있는 기술을 사용하면 PHP 코드에서 Apache env를 조정할 수 있음을 알 수 있습니다. 이것은 gzip으로 압축 된 특수한 내용에 대해서만 1.0 모드를 강제하는 데 사용할 수 있습니다. HTTP/1.0으로 응용 프로그램을 완료하지 못하게하거나 요청 모드를 사용하여 gzip 요청에 대해 HTTP/1.0을 설정하지 않아야합니다.
감사합니다. 그러나이 모든 것은 PHP에서 직접 압축을 처리하는 것보다 복잡합니다. – yclevine
청크 분할 된 응답에서 content-lenght 헤더 설정을 강제 실행하려고 시도 했습니까? 복잡성에 대해서는 간단한 "apache_setenv ('force-response-1.0', 'true')를 사용하지 않는다고 생각합니다." 귀하의 콘텐츠를 gzipped로 렌더링하는 PHP 스크립트는 어렵지만, 귀하에게 달려 있습니다 :-) – regilero
콘텐츠 길이 및 청크 전송 인코딩은 함께 사용할 수 없습니다. 복잡성에 대해서, 나는 그저 PHP에서 압축을 처리 할 수 있다는 것을 의미했다. – yclevine