在 php 中,$_SERVER 全局有很多关于请求等的信息,但是这些设置在哪里?
这些是apache通过一些api提供的吗?
还是 php 从其他地方获取它们?如果是在哪里?
如果您查看 PHP 手册,它会说(网址: http: //php.net/manual/en/reserved.variables.server.php)
$_SERVER 是一个包含标题、路径和脚本位置等信息的数组。此数组中的条目由 Web 服务器创建。无法保证每个 Web 服务器都会提供其中任何一个;服务器可能会省略一些,或提供此处未列出的其他内容。也就是说,在 » CGI/1.1 规范中包含了大量这些变量,因此您应该能够预料到这些变量。
$HTTP_SERVER_VARS 包含相同的初始信息,但不是超全局的。(注意 $HTTP_SERVER_VARS 和 $_SERVER 是不同的变量,PHP 会这样处理它们)
因此,如果您使用 Apache,它来自 Apache。否则来自其他服务器。
来自 PHP 文档:
$_SERVER 是一个包含标题、路径和脚本位置等信息的数组。此数组中的条目由 Web 服务器创建。无法保证每个 Web 服务器都会提供其中任何一个;服务器可能会省略一些,或提供此处未列出的其他内容。