PDFを生成するために、DomPDFでApache 2.2.16およびPHP 5.3.3を実行しています。PDF の生成後、後続のリクエストは、PDF の生成に使用された (つまり、前のリクエストからの) HTML の一部で構成されるプレーン テキストのレスポンスを、HTTP ヘッダーとリクエストされたページのレスポンスと混合して返す場合があります。
Apache は、以前の要求に対する応答の一部を新しい応答と混合しています。同じコードを使用してローカルに複製することはできませんが、出力バッファリングの問題のようです。また、gzip を無効にしても問題が発生するため、gzip とは無関係のようです。また、Firefox と Chrome の両方で試してみましたが、同じ結果が得られました。
更新:キープアライブをオフにすると、問題が解決します。ただし、必ずしもキープアライブをオフのままにしたいわけではありません。出力バッファまたは応答がクリアされないという根本的な問題がまだあることは明らかです。
リクエストヘッダーは次のとおりです。
Request URL:https://asdf.com/checkout/5d86a9bdf455cdfd334494183559bf
Request Method:GET
Status Code:200 OK
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:APP=636c8e6b58e991476ed7d38849bde0d4; _
Host:asdf.com
Referer:https://asdf.com/get_pdf/33711
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.34 Safari/536.11
そして、ブラウザに表示される切り捨てられた応答:
<!-- truncated HTML from the previous page (i.e. PDF) -->
</p>
</div>
</body>
</html>HTTP/1.1 200 OK
Date: Tue, 19 Jun 2012 18:06:13 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 6457
Keep-Alive: timeout=7, max=96
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
‹í]ksÛ¸’ýìü
Œfvm×ÆzP/?µëØNâÄI<‘’ìL*å‚HHBD
Z–gæ¿o7@I-BNrkë~ÐÜ;c‰<xtŸF£›lŠÇ¿œ¿;ëüq}Aj’ëÏ®.ÏHa¯TúT=+•Î;çä_vÞ\‘J±L:’F1W\D4,•.ÞHa Ôø°TšL&ÅIµ(d¿Ôy_ºÃ¾*Ø8ý¸§¬–Å@…Ö“c=àÝ(Œâ“ÝTLke4h=Ù:V\…¬õ{"‹Éßä2RLR_ñ[FN}_$‘âQÿ¸d`€1E v¾Ç¾%üö¤p& I¤ö:Ó1+ß|;)(v§J8ØñTÆL$ª··_ ¥ÖqìK>VDA“ù•ÞRs´@bé›ùÇ ýJïŠ}!ú!£c}1ÒÇJ!ïÆ¥¯ß&§¥J±™~,ŽxTüZÇ
<!-- followed by a bunch more gzipped gibberish -->