Почему telnet на порт 80, похоже, попадает на другой сервер, чем Firefox?

#http

#http

Вопрос:

Я новичок в низкоуровневых HTTP-материалах и не уверен, что делать с тем, что я вижу.

Если я перейду на определенный веб-сервер в Интернете (назовем его www.someserver.com на данный момент… Я дам реальный, если это действительно необходимо), Firefox с радостью открывает свою домашнюю страницу. Однако, если я выполняю

 telnet www.someserver.com 80
GET / HTTP/1.0
  

… то, что я получаю, похоже, является страницей Apache по умолчанию «It works». Попытка ПОЛУЧИТЬ другую страницу на сервере, которую Firefox с радостью откроет, получает 404 от telnet. Похоже, что они попадают на разные серверы, но эти запросы поступают с одного и того же компьютера, поэтому я не уверен, как.

Что может вызвать такое поведение?

Ответ №1:

Он может обслуживать разные сайты на основе заголовка host, отправленного браузером. Ваше telnet-соединение не отправит этот заголовок, если вы явно не ввели его.

http://support.microsoft.com/kb/308163

Комментарии:

1. Знаете ли вы какой-либо способ точно узнать, что Firefox отправляет в своих запросах?

2. @glibdud Загрузите и установите Live HTTP headers, это дополнение firefox.

3. @Nacereddine Спасибо, теперь использую это для дополнительной отладки.

4. @glibdud и если вы хотите больше контролировать отправку, используйте данные для несанкционированного доступа

5. @BNL Отлично, так оно и было. Если я отправляю заголовок Host, который отправляет Firefox, я получаю то, что ожидал в сеансе telnet. Спасибо, а также благодаря Nac (и Timster выше).