前の記事 «:Zend Framework標準コーディング規約
次の記事 »:パスワード強度チェッカー

SERVER_NAMEとHTTP_HOSTの違い

2006年05月11日

スポンサード リンク

Chris Shiflett: SERVER_NAME Versus HTTP_HOST

SERVER_NAMEとHTTP_HOSTの比較。
次のように値を取得すると一見、どちらも同じ値を取得できます。(値はリクエストしたサーバのホスト名)

$_SERVER["SERVER_NAME"];
$_SERVER["HTTP_HOST"];

ただ、それぞれにおいて、取得方法が違ってきます。

HTTP_HOSTはリクエスト時に host:〜 で指定した値が返され、
SERVER_NAMEは、リクエスト時の host:〜 を使うものの、指定が無い場合は httpd.conf等に記述したServerNameディレクティブがデフォルトで使われます。
更にSERVER_NAMEはhtmlentitiesによってエスケープされるようです。

リクエストヘッダーの値をそのまま取りたい場合はHTTP_HOSTを使い、値を取得しなんらかの形で利用する場合はSERVER_NAMEを使ったほうがよい感じでしょうか。
なかなか面白い比較でした。

スポンサード リンク

投稿者 KJ : 2006年05月11日 12:06 | ブックマークに追加する Subscribe with livedoor Reader
間違いの指摘をしていただける方はメールでお願いします


本を執筆しました。