PHP における HTTP_HOST と SERVER_NAME の違い

WBOY
リリース: 2016-06-23 13:34:56
オリジナル
908 人が閲覧しました

同じ点:
以下の 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 によって要求されたドメイン名と一致しない場合:

httpd.conf は次のように構成されます。 virtualhost *>

ServerName mimiz .cn
ServerAlias www.mimiz.cn

クライアントはドメイン名 www.mimiz.cn
_SERVER["HTTP_HOST"] に出力 www.mimiz.cn
_SERVER["SERVER_NAME"] は mimiz.cn を出力します

そのため、実際のプログラムでは、より安全で信頼性の高い _SERVER["HTTP_HOST"] を使用するようにしてください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート