📜  getallheaders() (1)

📅  最后修改于: 2023-12-03 15:00:54.332000             🧑  作者: Mango

使用 getallheaders() 获取 http 请求的头部信息

在 HTTP 请求中,请求头部信息包含了多种重要的参数,用于告知请求接收方(通常是服务器)有关发送方(通常是客户端)的一些信息。

使用 PHP,我们可以通过 getallheaders() 函数来获取请求的头部信息。下面介绍一些使用 getallheaders() 的注意点:

  • getallheaders() 只能在 Apache 服务器上使用。如果你使用的是 nginx 或其他服务器,该函数将会返回 null

  • getallheaders() 返回一个关联数组,其中包含了头部信息中的所有参数,以键值对的形式存储。例如:

    Array
    (
        [Host] => example.com
        [User-Agent] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
        [Accept] => */*
        [Accept-Encoding] => gzip, deflate, br
        [Connection] => keep-alive
        [Referer] => https://example.com/
        [Upgrade-Insecure-Requests] => 1
        [Sec-Fetch-Dest] => document
        [Sec-Fetch-Mode] => navigate
        [Sec-Fetch-Site] => cross-site
        [Sec-Fetch-User] => ?1
        [Pragma] => no-cache
        [Cache-Control] => no-cache
    )
    
  • 由于 HTTP 请求头部信息中的键值对顺序是不固定的,因此 getallheaders() 函数返回的数组顺序也是不确定的。

  • 对于重复的头部信息参数,getallheaders() 返回的数组中将只包含最后一个。例如:如果有两个 Content-Type 参数,函数将只返回最后一个。

  • getallheaders() 返回的数组中,键名(也就是头部信息参数名)为大写格式。

使用示例:

$headers = getallheaders();

// 输出获取到的头部信息
foreach ($headers as $key => $value) {
    echo "$key: $value<br>";
}

注意:如果你使用的是 PHP 内置服务器,例如在本地开发时使用 php -S 命令启动本地服务器,getallheaders() 也会返回 null。如果需要使用该函数,建议使用 Apache 服务器或其他库或框架来处理 HTTP 请求。