同じ点:
以下の 3 つの条件が満たされた場合、両方とも同じ情報を出力します。
1. サーバーはポート 80 です
2. Apache の conf 内の ServerName は正しく設定されています
3. HTTP/1.1 プロトコル仕様
相違点:
1. 通常:
HTTP/1.1 プロトコル仕様では _SERVER["HTTP_HOST"] 、クライアントの HTTP リクエストに応じて情報を出力します。
_SERVER["SERVER_NAME"] はデフォルトで、Apache の設定ファイル httpd.conf 内の ServerName 値を直接出力します。
2. サーバーがポート 80 ではない場合:
_SERVER["HTTP_HOST"] はポート番号を出力します。例: mimiz.cn:8080
_SERVER["SERVER_NAME"] は ServerName の値を直接出力します。 HTTP_HOST = SERVER_NAME : SERVER_PORT
3. 構成ファイル httpd.conf の ServerName が HTTP/1.0 によって要求されたドメイン名と一致しない場合:
ServerName mimiz .cn
ServerAlias www.mimiz.cn
クライアントはドメイン名 www.mimiz.cn
_SERVER["HTTP_HOST"] に出力 www.mimiz.cn
_SERVER["SERVER_NAME"] は mimiz.cn を出力します
そのため、実際のプログラムでは、より安全で信頼性の高い _SERVER["HTTP_HOST"] を使用するようにしてください。