当ページのリンクには広告が含まれています。HTTPユーザーエージェント(Webブラウザ)がWebサーバにアクセスする際,HTTPリクエストヘッダにクライアント側の各種情報を含めて送信します。リクエストを受け取った側がCGIやPHPなどのプログラムの場合,HTTPリクエストヘッダの情報や,アクセス元のIPアドレス,TCPポート番号などの情報を環境変数に設定します。環境変数にはクライアント側の情報だけでなく,サーバ側の情報も含まれます。これらの情報もとに,スマートフォンからPC用のコンテンツにアクセスした場合,スマートフォン向けのコンテンツに転送することができます。使用しているOSやブラウザによりダウンロードするファイルを振り分けることができます。HTTPリクエストヘッダ情報ユーザーエージェントがサーバにリクエストする際の追加情報。ユーザーエージェント自身に関する詳細情報が含まれます。HTTPリクエストヘッダの情報は,「Accept:」が「HTTP_ACCEPT」のように,ヘッダフィールド名に対応した環境変数で渡されます。HTTPリクエストヘッダ情報によっては容易に偽装や隠蔽することが可能なため,必ずしも正しい情報とはかぎりません。リクエストヘッダには「X-」を接頭辞として独自のヘッダを追加できますが,現在これらの独自ヘッダは非推奨(サーバに送信すべきでない)とされています。HTTP_ACCEPTAccept:リクエストヘッダの情報(ユーザーエージェントが受け入れ可能なファイルのMIMEタイプ)が設定されます。text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8HTTP_COOKIECookie:リクエストヘッダの情報(ユーザーエージェントからWebサーバに送信される,ユーザ識別やセッション管理などを目的とした情報)が設定されます。HTTP_FORWARDEDForwarded:リクエストヘッダの情報(ユーザーエージェントからのリクエストがプロキシサーバ(代理サーバ)を経由した際に変更・消失した,クライアント側の情報)が設定されます。HTTP_HOSTHost:リクエストヘッダの情報(ユーザーエージェントが接続しているWebサーバのホスト名)が設定されます。「http://www.example.com/xxx.html」にアクセスした場合。現在のWebページから見たリンク元のURL)が設定されます。リファラを参照することで,訪問者がどこから来ているかを把握することができます。「http://www.example.com/xxx.html」に設置されたハイパーリンクから,現在のページに遷移してきた場合。現在のページのULRを打ち込んだ場合でも,ユーザーエージェントによっては直前に参照していたページのURLが設定されることがある。ブラウザやウェブクローラーなどのを識別するための文字列)が設定されます。通常は,クライアント側のOS名,アプリケーション名,バージョンナンバーなどで構成されます。Chrome」(Macintosh版)の場合。(非推奨)X-Forwarded-For:リクエストヘッダの情報を設定。X-Forwarded-For:リクエストヘッダは,ユーザーエージェントがプロキシサーバ(代理サーバ)もしくはロードバランサ(負荷分散装置)経由でHTTP接続するときに追加される独自ヘッダで,Webサーバに接続するクライアント(リクエスト送信元)のIPアドレスを識別します。多段プロキシの場合は,経由したプロキシのIPアドレスがカンマ区切りのリストとして設定されます。「192.168.1.200」のクライアントより,IPアドレスが「192.168.1.30」と「192.168.1.31」のプロキシサーバを経由した場合。この順序とは限らず,経由するプロキシサーバやロードバランサによっては,右端にクライアントのIPアドレスが設定されることもある。クライアント情報HTTPリクエストヘッダ情報以外のクライアント情報です。TCP/IPのプロトコル構造は,4つの層から構成されています。上位層から順に,アプリケーション層,トランスポート層,インターネット層,ネットワークインターフェース層の4つの層になります。HTTPリクエストヘッダはアプリケーション層が担当します。アプリケーション層では,TCPポート番号やIPアドレスは担当外となっているため,HTTPリクエストヘッダには含まれません。TCPポート番号やIPアドレスはどこにあるのでしょうか。HTTPのリクエストが開始する前に,クライアントとサーバが接続している必要があります。したがって,TCPポート番号やIPアドレスはアプリケーション層よりも下位の層で使用されます。TCP/UDPポートはアプリケーション間のデータ転送を担当するトランスポート層で,IPアドレスはクライアントとサーバ間の通信を担当するインターネット層にて割り当てられます。REMOTE_ADDRクライアントの接続元IPアドレスです。ユーザーエージェントがプロキシサーバ(代理サーバ)もしくはロードバランサ(負荷分散装置)経由した場合は,プロキシサーバやロードバランサのIPアドレスとなります。System(DNS)で逆引きしたホスト名となります。ホスト名を取得するわけでなく,サーバの負荷を軽減するため,「REMOTE_HOST」が設定されない場合もあります。REMOTE_PORT接続をリクエストしてきたユーザーエージェントに割り当てられたTCPポート番号が設定されます。サーバは,このポート番号に対してレスポンスを返信します。QUERY_STRINGURLの引数として渡された値が設定されます。「http://www.example.com/xxx.cgi?page=1」の場合,「page=1」の部分が引数となります。UNIQUE_ID一意な識別子が設定されます。この識別子はリクエストごとにサーバからユーザーエージェントに付与されます。サーバ情報サーバの内部情報です。サーバ情報はクライアント側から送信された情報でなく,主にサーバ側のコンフィグレーションファイルで定義された情報が設定されます。DOCUMENT_ROOTPerlやPHPなど,現在実行されているスクリプトが存在するドキュメントルートディレクトリが設定されます。サーバのSERVER_ADMINディレクティブ設定値)。SERVER_NAMEPerlやPHPなど,現在のスクリプトが実行されているサーバのホスト名が設定されます(スクリプトがバーチャルホスト上で実行されている場合は,そのバーチャルホスト名が設定されます)。場合,ユーザーエージェントが送信する「Host:リクエストヘッダ」(サーバのホスト名)が設定されます。設定値が使用されます。SERVER_ADDRPerlやPHPなど,現在のスクリプトが実行されているサーバのIPアドレスが設定されます。SERVER_PORTWebサーバの通信ポートとして使用されているポート番号が設定されます。