HttpWebRequest устанавливает хост для мусора, но все еще получает ответ OK

Я использую HttpWebRequest и передаю адрес, который является IP. Затем я установил для хоста значение мусора. Когда я вызываю GetResponse(), я получаю OK, хотя я ожидаю, что это не удастся, поскольку хост - мусор.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("http://10.10.10.10/Default.aspx"));
request.Host = "blah.blah.blah";
request.ContentType = "text/xml";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    if (response.StatusCode == HttpStatusCode.OK) { /*always enters here */ }
}

Почему ответ возвращается как ОК? Разве мусорный хост не должен вызывать сбой?


person Ian R. O'Brien    schedule 18.07.2011    source источник
comment
Вы находитесь за прокси-сервером, который может принимать плохие запросы и показывать страницу с ошибкой или перенаправлять вас в другое место?   -  person Adam Maras    schedule 19.07.2011
comment
(И в качестве дополнения к этому комментарию, что возвращается в ответе? Сбросьте поток ответа в строку и проанализируйте его.)   -  person Adam Maras    schedule 19.07.2011
comment
За прокси, но без страницы с ошибкой. Если я наберу blah.blah.blah в IE, я получу dns_server_failure.   -  person Ian R. O'Brien    schedule 19.07.2011
comment
Я также заметил, что различные серверы ISP/DNS теперь перенаправляют недопустимые URL-адреса куда-то еще (не возвращая 404), определенно сбрасывают страницу и просматривают результаты.   -  person Zachary    schedule 19.07.2011
comment
Ошибка также может быть вызвана тем, что .blah является недопустимым суффиксом домена.   -  person Zachary    schedule 19.07.2011


Ответы (1)


Свойство HttpWebRequest.Host:

Получите или задайте значение заголовка Host для использования в HTTP-запросе независимо от URI запроса.

Использование свойства Host для явного указания пользовательского значения заголовка Host также влияет на кэширование областей, файлы cookie и проверку подлинности. Когда приложение предоставляет учетные данные для определенного префикса URI, приложения должны обязательно использовать URI, содержащий значение заголовка Host, а не целевой сервер в URI.

Таким образом, .Host не влияет на общий запрос, вы меняете какое-то дополнительное поведение.

person VMAtm    schedule 18.07.2011