Apache是否将格式错误的HEAD请求传递给PHP? 请考虑下面的Apache访问日志请求。 119.63.193.131 - - [03/Oct/2013:19:22:19 +0000] "HEAD /blah/blahblah/ HTTP/1.1" 301 - "-" "\"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)\""

Apache是否将格式错误的HEAD请求传递给PHP? 请考虑下面的Apache访问日志请求。 119.63.193.131 - - [03/Oct/2013:19:22:19 +0000] "HEAD /blah/blahblah/ HTTP/1.1" 301 - "-" "\"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)\"",php,apache,apache2,php-5.3,apache2.2,Php,Apache,Apache2,Php 5.3,Apache2.2,该请求是否符合RFC/标准 Apache会将格式错误的HEAD请求传递给PHP吗 我的配置是Apache2.2.15、mod_fcgid2.3.7、PHP5.3.3、Linux2.6.32.60-40x64、CentOS 6.4我用PHP和Apache编写了相当少的RESTful API;从来没有遇到过这样的问题。最好是隔离您想要双重确保工作的部分,在您的例子中是PHP和apache。因此,请编写一个基本的PHP脚本,该脚本将转储$\u SERVER和(可能是其他全局变量),这将为您提供足够的线

该请求是否符合RFC/标准

Apache会将格式错误的HEAD请求传递给PHP吗


我的配置是Apache2.2.15、mod_fcgid2.3.7、PHP5.3.3、Linux2.6.32.60-40x64、CentOS 6.4

我用PHP和Apache编写了相当少的RESTful API;从来没有遇到过这样的问题。最好是隔离您想要双重确保工作的部分,在您的例子中是PHP和apache。因此,请编写一个基本的PHP脚本,该脚本将转储
$\u SERVER
和(可能是其他全局变量),这将为您提供足够的线索,说明它是否工作。对命令行HTTP客户端使用
curl-I
选项;您还可以使用
-v
选项从客户端的角度准确查看发生了什么。

我认为该日志条目中的请求没有明显错误。它有一个不寻常的用户代理(带有双引号),但这并不意味着它的格式不正确-它完全有效,Apache肯定会将它传递给PHP。

测试起来非常简单。。。telnet到端口80,在php脚本上破解一个head格式错误的head请求,看看php是否启动。如果它格式错误,它会通过吗?谢谢这完全取决于请求的错误。一些异常将被默默地纠正,另一些将导致自动错误响应。我是否正确地理解您:PHP将看到正确的请求,或者什么都看不到?如果您能够确定请求的错误,您是否可以选择修复客户端?如果是,请在服务器或客户端上使用wireshark捕获流量,然后确定请求格式的错误。如果您可以在这里发布,无论是wireshark捕获中的HTTP对话,还是我在回答中提到的curl选项中的详细日志,都可能会有所帮助。