PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでブラウザから受け取ったリクエストヘッダーを表示する方法

PHPでは、ブラウザ(クライアント)から送信されてきたリクエストヘッダーを簡単に確認できます。代表的な方法は大きく分けて2つ、$_SERVERスーパーグローバル変数を使う方法getallheaders()関数を使う方法です。

方法1:$_SERVER変数を表示する

次の1行のコードを実行するだけで、PHPが受け取ったサーバー情報やヘッダー関連の情報を一覧形式で表示できます。

<?php print_r($_SERVER); ?>

方法2:getallheaders()関数を使う

getallheaders()関数は、リクエストヘッダーの全項目を連想配列として返します。これをforeachループで処理すれば、ヘッダー名と値を組み合わせて見やすく出力できます。

サンプルコード

$headers = getallheaders();
foreach($headers as $key=>$val){
    echo $key . ': ' . $val . '<br>';
}

なお、この関数はApache環境で標準的に利用でき、PHP 7.3以降ではFastCGIなど他の環境でも使用可能です。

出力結果

上記のコードを実行すると、次のような出力が得られます。

Host: www.websitename.com
Content-Length: 180
Cache-Control: max-age=0
Origin: https://www.websitename.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: https://www.writephponline.com/
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: _ga=GA1.2.118418268.1575911248; _gid=GA1.2.1794052867.1576852059

主なヘッダーの意味

  • Host: アクセス先のホスト名(ドメイン)
  • User-Agent: 利用しているブラウザやOSの情報
  • Accept: クライアントが受信可能なコンテンツタイプ
  • Referer: 直前に閲覧していたページのURL
  • Accept-Language: クライアントが優先する言語設定
  • Accept-Encoding: 対応している圧縮方式(gzipなど)
  • Cookie: サーバーに送信されたクッキーの内容

このように、受け取ったヘッダーを確認することで、デバッグやアクセス解析、クライアント環境ごとの挙動の検証などに役立てることができます。

  1. 新しいOpera Touchを使いこなす方法|片手操作・Flow連携・クイック検索を徹底解説

    ブラウザには、それぞれお気に入りへの強い愛着を持つ人が多いもの。その議論は、絶え間ないAndroid対iPhone論争のように白熱することもあります。ChromeやFirefoxが主流となっている今、Operaのような他のブラウザの存在に気づいていない方も少なくないかもしれません。 Operaのウェブブラウザは、これまで一般ユーザーの間で大きな人気を得るには至っていませんでした。全体のウェブブラウジングの約2%のシェアにとどまるものの、モバイル版ブラウザは実はかなり優秀です。そんなOperaの新ブラウザ「Opera Touch」は、基本的なブラウジング作業を簡素化する新機能を多数搭載してお

  2. Windows 11で最高のパフォーマンスを引き出す方法【初心者向け最適化ガイド】

    Windows 11は一般ユーザー向けに正式リリースされ、数多くの新機能が搭載されました。スタートメニューをお気に入りのアプリに合わせてカスタマイズでき、UIの変更によってこれまでとはひと味違う快適な操作体験が得られます。 また、ここ数か月の間にMicrosoftによるメモリ管理やディスク使用量の改善、CPU使用率やバッテリー駆動時間への対応などが進められ、OSのパフォーマンスにもさまざまな改良が加えられています。 しかしその一方で、Windows 11がスムーズかつ高速に動作するのは比較的新しいPCであり、セキュリティ要件を満たしている古いパソコンでは体感できるほどの改善が見られないのが実情