Какая разница между 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 +) и свойства.