PHP: $_SERVER variables: $_SERVER['HTTP_HOST'] vs $_SERVER['SERVER_NAME']
php
Solution
`$_SERVER['SERVER_NAME']` gives the value of the server name as defined in host configuration (i.e for Apache the Apache `.conf` file).
`$_SERVER['HTTP_HOST']` gives you the domain name through which the current request is being fulfilled and is more directly related to the request.
`HTTP_HOST` is typically more useful in most applications in that it relates directly to the request, whereas `SERVER_NAME` could return whatever value is in the conf file and doesn't tell you anything about the request at all.
I will give you an example of how `HTTP_HOST` might differ from `SERVER_NAME`. Say you have an host defined in Apache with ServerName of `example.com` and an IP address of `1.2.3.4`.
Let's look at two incoming request URLs and show the difference between these variables:
http://www.example.com
HTTP_HOST = www.example.com
SERVER_NAME = example.com
http://1.2.3.4
HTTP_HOST = 1.2.3.4
SERVER_NAME = example.com
So again, HTTP_HOST is tied more to the request, whereas SERVER_NAME is determined by server configuration.
Problem
Possible Duplicate: HTTP_HOST vs. SERVER_NAME What is the difference between `$_SERVER['HTTP_HOST']` and `$_SERVER['SERVER_NAME']` ??