省略Content-Length时,PHP脚本返回403 Forbidden错误

时间:2014-12-15 06:28:19

标签: php apache http http-headers http-status-code-403

我在Linux服务器上使用共享的网络托管帐户。我的服务器端PHP脚本可以使用Windows sockets从我的Windows(客户端)应用程序调用。如果没有显示太多代码(通过HTTP协议到端口80的基本连接),客户端应用程序可能会将以下标头发送到PHP脚本:

POST 
/php/checkupdates.php?ver=1.2.3.4&ref=&nam=some%20name
 HTTP/1.0\r\n
Accept: text/plain, text/html, */*\r\n
Accept-Language: en-us\r\n
Accept-Encoding: deflate\r\n
User-Agent: My own agent\r\n
Host: 
mydomain.com
\r\n
\r\n

但由于某种原因,此脚本会返回403 Forbidden错误。有趣的是,如果我在Web浏览器中加载相同的URL,PHP脚本就可以运行了。

纯粹通过试错过程我发现如果我在标题中添加以下行,我的PHP脚本就可以正常工作了:

Content-Length: 0\r\n

嗯,这一切都很好。但问题是,要添加此行,我需要更新我的用户已下载并已使用一段时间的所有客户端(Windows)应用程序。换句话说,这并不容易。

所以我希望尝试从服务器(即PHP)方面解决这个问题。有什么想法吗?

PS。我还应该指出,当我与之前的网络托管公司(即没有Content-Length行)托管时,这曾经起作用。)

PS2。我尝试联系我当前的网络托管服务提供商,但他们的技术支持不断要求我的公共IP。 (可能将我列入白名单,所以我没有看到这个错误,这对其他人来说也不会解决。)换句话说,我不确定他们知道他们在做什么。所以在我再次与他们联系之前,我想先了解它。

0 个答案:

没有答案