HTTP请求内容类型与Server-Incomming Content-Type不同

时间:2015-08-06 09:28:17

标签: php http post header content-type

首先我创建了一个test.php:

<?php var_dump( $_SERVER['CONTENT_TYPE'] );

我发送一个非常简单的HTTP-POST-Request,如下所示:

POST http://example.com/test.php
Content-Type: text/xml; charset=ISO-8859-1
some text
 -- response --
200 OK
Server:  Apache/2.4.12 (Win64) mod_fcgid/2.3.9
X-Powered-By:  PHP/5.4.39
Content-Type:  text/html; charset=ISO-8859-1

string(23) "text/xml; charset=UTF-8"

正如你所看到的,发送字符集我设置为&#34; ISO-8859-1&#34;并且服务器存储在$ _SERVER [&#39;内容类型&#39;]&#34; UTF-8&#34;

如果Request-Content为空,则响应如下:

POST http://example.com/test.php
Content-Type: text/xml; charset=ISO-8859-1

 -- response --
200 OK
Server:  Apache/2.4.12 (Win64) mod_fcgid/2.3.9
X-Powered-By:  PHP/5.4.39
Content-Type:  text/html; charset=ISO-8859-1

string(28) "text/xml; charset=ISO-8859-1"

我在2个不同的Web服务器(1x Zend CE服务器,1x默认Apache实例)上测试了这个,这在两个网络服务器上都会发生。

为什么网络服务器会按照我的要求在$ _SERVER [&#39;内容类型&#39;]中输出不同的Content-Type-Charset?

我问这个因为PHP-Nusoap检查XML-Encoding是否等于header-charset,因此它是不同的。

0 个答案:

没有答案