В чем разница между ServerVariables ["HTTP_HOST"] и ServerVariables ["SERVER_NAME"]? - PullRequest
15 голосов
/ 23 мая 2011

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

HTTP_HOST

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

SERVER_NAME

Имя хоста сервера, псевдоним DNS или IP-адрес, как он выглядит в самообращающиеся ссылки.

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

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

На каждый веб-сайт приходится около 5 привязок.

Итак ... какими будут значения? какая разница?

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

Только что обнаружил, что при включении трассировки на одной из страниц ASPX, размещенных в IIS, SERVER_NAME возвращает только имя сервера, тогда как HTTP_HOST возвращает имя_сервера: порт, на котором работает сайт. включить трассировку

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

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

1 голос
/ 23 мая 2011

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

0 голосов
/ 09 сентября 2016

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

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

...