
У меня есть веб-сайтhttp://waycoolblog.com, но я не могу получить к нему доступ через его IP-адрес http://74.220.219.56/
Почему это происходит?
Мой главный вопрос в том, является ли это обычным явлением. В моем приложении я пытаюсь самостоятельно разрешить имя сайта и пытаюсь подключиться к IP-адресу вместо имени сайта.
Я хочу убедиться, что все это работает правильно.
решение1
Не знаю, на каком сервере вы работаете, но в IIS есть функция сопоставления заголовков хостов.
Это позволяет нескольким веб-сайтам работать с одного и того же IP-адреса, но требует, чтобы доменное имя веб-сайта было указано в качестве заголовка http-запроса "Host". Сервер запрашивает этот заголовок и обслуживает контент с соответствующего сайта.
Любой запрос, поступающий через IP-адрес, не будет иметь "waycoolblog.com" в качестве заголовка хоста. Если на вашем сервере размещено более одного веб-сайта, скорее всего, ваш сайт не является "default", поэтому сервер не будет обслуживать ваш сайт.
решение2
Возможно, сервер, на котором расположен ваш сайт, используетВиртуальный хостинг на основе имени хоста?
решение3
Хозяинимявиртуальный хостинг на основе IP-адресов чрезвычайно распространен. Без него нехватка IP-адресов была бы гораздо более серьезной. Как это работает? Клиент HTTP/1.1 передает заголовок Host
как часть своего запроса, в котором говорится, какой хост представляет интерес ( waycoolblog.com
в вашем случае), и HTTP-сервер на основе этого определяет, какой набор контента обслуживать. Это позволяет одному и тому же IP-адресу обслуживать контент многих разных имен хостов, что значительно удешевляет хостинг. Это также функция каждой стандартной системы программного обеспечения веб-сервера производственного уровня. Apache делает это, как и IIS, и любая другая, о которой я знаю, которая не является исследовательской игрушкой.
Исправление для вас — Host
правильно передать заголовок в клиентском коде, который устанавливает соединение. Тогда все должно Just Work TM .