On Chris Shiflett's blog, there's a post that looks a an issue that's been brought up on the New York PHP mailing list concerning two variables in the $_SERVER superglobal - SERVER_NAME and HTTP_POST.
The question initially was "arean't these the same thing?" Chris answers:
There were several informative replies within the first few minutes, but there's more to this question than most people realize. In fact, I'm reminded of a blog entry from Zeev last year, where he warns against $_SERVER['SERVER_NAME'].
Zeev suggests that SERVER_NAME is pulled from the Host header from the remote user. Chris reminds us, also, of some disagreements with this view Zeev presented, namely from Rasmus. Chris then gives an example script to illustrate hos things area really handled - the variables use the given values when they're present in the request, but they still do default back to the ServerName when absent (so only in certain circumstances).