PHP-$_SERVER属性从何而来


PHP - where do $_SERVER properties come from?

在php中,$_SERVER全局有很多关于请求等的信息,但这些信息设置在哪里?

这些是apache通过一些api提供的吗?

或者php是从其他地方得到它们的?如果是,在哪里?

如果您查看PHP手册,它会显示(URL:http://php.net/manual/en/reserved.variables.server.php)

$SERVER是包含诸如报头、路径等信息的数组,以及脚本位置。此数组中的条目由web创建服务器不能保证每个网络服务器都会提供其中;服务器可以省略一些,或者提供此处未列出的其他服务器。也就是说,在»CGI/1.1规范,所以你应该能够期待这些。

$HTTP_SERVER_VARS包含相同的初始信息,但不是超全球化。(请注意,$HTTP_SERVER_VARS和$_SERVER不同变量以及PHP以此方式处理它们)

因此,如果您使用Apache,它来自Apache。否则来自其他服务器。

来自PHP文档:

$SERVER是包含诸如报头、路径等信息的数组,以及脚本位置。此数组中的条目由web创建服务器不能保证每个网络服务器都会提供其中;服务器可以省略一些,或者提供此处未列出的其他服务器。