Question: I'm confused about the difference between these two server variables. Checking the IIS documentation, it states :-

### HTTP\_HOST

> 
> Returns the name of the Web server.
> This may or may not be the same as
> SERVER\_NAME depending on type of name
> resolution you are using on your Web
> server (IP address, host header).
> 
> 
> 

### SERVER\_NAME

> 
> The server's host name, DNS alias, or
> IP address as it would appear in
> self-referencing URLs.
> 
> 
> 

Could someone provide some examples how they can be different?

We have 2 IIS webservers in our web farm .. and each one has 2 websites (identical of course, per server).

For each website has around 5 or so bindings.

So .. what would the values be? what's the difference?

Answer: 
Just found that enabling tracing in one of IIS hosted aspx page that SERVER\_NAME returns just the server name whereas HTTP\_HOST returns servername:port that site runs. to enable trace set

`<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" Trace="true" %>` 

note the Trace value
I don't know about ASP.NET, but in PHP, `$_SERVER['HTTP_HOST']` is what the client sent in the HTTP `Host` header, while `$_SERVER['SERVER_NAME']` is determined by the webserver configuration.