2010年 9月 30日 はてなブックマーク -
タグ: #PHP #Symfony

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を使ったほうがよい感じでしょうか。
なかなか面白い比較でした。

SERVER_NAMEとHTTP_HOSTの違い:phpspot開発日誌

SERVER_HOSTは特に理由がない限り使うのを避けましょう。


1年前 | | 2010年 9月 30日 | このエントリーを含むはてなブックマーク