Какая разница между ServerVariables [ "HTTP_HOST" ] и ServerVariables [ "SERVER_NAME" ]?

Я смущен различием между этими двумя переменными сервера. При проверке документации IIS в ней указано: -

HTTP_HOST

Возвращает имя веб-сервера. Это может быть или не быть таким же, как SERVER_NAME в зависимости от типа имени разрешение, которое вы используете в своей сети сервер (IP-адрес, заголовок хоста).

SERVER_NAME

Имя хоста сервера, псевдоним DNS или IP-адрес, как он появился в URL с саморегуляцией.

Может ли кто-нибудь привести некоторые примеры того, как они могут быть разными?

У нас есть 2 веб-сервера IIS в нашей веб-ферме.. и у каждого есть 2 веб-сайта (одинаково, конечно, на сервер).

Для каждого веб-сайта имеется около 5 привязок.

Итак, каковы будут значения? какая разница?

Ответы

Ответ 1

Просто выяснилось, что включение трассировки на одной из страниц aspx на IIS, где SERVER_NAME возвращает только имя сервера, тогда как HTTP_HOST возвращает имя сервера: порт, на котором выполняется сайт. для включения набора трассировки

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

обратите внимание на значение трассировки

Ответ 2

Я не знаю об ASP.NET, но в PHP $_SERVER['HTTP_HOST'] это то, что клиент отправил в заголовке HTTP Host, а $_SERVER['SERVER_NAME'] определяется конфигурацией веб-сервера.

Ответ 3

HTTP_HOST является заголовком хоста HTTP, может быть изменен через DNS (добавьте домен и poit на ваш сервер) или просто через файл HOSTS на вашем компьютере.

SERVER_NAME в Windows - имя Machine. вы можете увидеть имя (или изменить его), щелкнув правой кнопкой мыши на My Computer (или компьютер на Win10 +) и свойства.