Reputation: 86937
I'm confused about the difference between these two server variables. Checking the IIS documentation, it states :-
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).
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?
Upvotes: 15
Views: 8464
Reputation: 1905
HTTP_HOST
is HTTP Host Header, can be changed via DNS (add a domain and poit to your server) or just via HOSTS file on your computer.
SERVER_NAME on Windows is the Machine name. you can see the name (or change it) via Right Click on My Computer
(or Computer on Win10+), and Properties.
Upvotes: 0
Reputation: 3217
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
Upvotes: 2
Reputation: 31637
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.
Upvotes: 0