サーバーに配置した次のスクリプトに問題を減らすことができました。
<?php
session_start();
header('Content-type: text/plain', TRUE);
flush();
sleep(300);?>
次を使用してこのスクリプトに接続すると:
GET /test.php HTTP/1.1
Host: localhost
期待どおり、すぐにヘッダーを取得します。
HTTP/1.1 200 OK
Date: Sat, 03 Nov 2012 20:15:53 GMT
Server: Apache/2.2.22 (Fedora)
X-Powered-By: PHP/5.3.17
Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/
Set-Cookie: PHPSESSID=m7bmvblakkil96rqjq7j8f0f42; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/plain; charset=UTF-8
その後、接続を強制終了し、次を使用して再接続した場合:
GET /proxy/test.php HTTP/1.1
Host: localhost
Cookie: PHPSESSID=knkeaq2ao0cllpcci0rnassqj4
ウェブサーバーを再起動するまで、ヘッダーが返されません。すぐに応答ヘッダーを再度取得することを期待していました。なぜこのような振る舞いをするのか、私にはまったくわかりません。多分それはある種のバグですか?または、いくつかの動作を誤解しています。何が起こっているのか本当にわからないので、誰かがこれで私を助けてくれれば素晴らしいと思います。
Ps: 私は、fedora 17 で PHP 5.3.17 を使用して Apache/2.2.22 を実行していますが、サーバー パッケージは、fedora 17 に付属する PHP では動作しない zend デバッガーが必要なため、fedora 16 リポジトリから外れています。