我可以将我的问题减少到我放在服务器上的以下脚本:
<?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 上运行 Apache/2.2.22 和 PHP 5.3.17,但是服务器包不在 fedora 16 存储库中,因为我需要 zend 调试器,它不适用于 fedora 17 附带的 PHP。