2017-01-08 1 views
0
  1. Открытие URL-адреса на вкладке инкогнито в Chrome => сервер отвечает кодом HTTP 200 OK и HTML-страницей.
  2. Воспроизведение того же точного запроса с использованием Fiddler => сервер отвечает перенаправлением HTTP 301 на тот же URL.
  3. Закрытие вкладки инкогнито, открытие нового, открыв тот же URL снова => HTTP 200 OK код снова ...

Я подтвердил, что запрос посылается из браузера, точно так же, каждый раз, когда вы открываете этот URL-адрес (ну, он не может быть другим, потому что он просто открывает URL-адрес на вкладке инкогнито)Сервер реагирует по-разному на тот же запрос, отправленный из браузера, и Fiddler

Как сервер может различать тот же запрос, отправленный из браузера и из Fiddler? Первый раз, когда я вижу такой вопрос, и я не имею ни малейшего представления о том, как копать глубже здесь ...

Запрос выглядит следующим образом:

GET <url> HTTP/1.1 
Host: <host> 
Connection: keep-alive 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding: gzip, deflate, sdch, br 
Accept-Language: en-US,en;q=0.8 
+0

Возможно, это из-за печенья –

+0

. Запрос точно такой же, и нет файлов cookie. – mephisto123

ответ

0

Кажется, этот сервер уронил TLSv1. 0 и .NET Framework использует его по умолчанию.

Существует подробный ответ о том, как установить SSL по умолчанию шифра к TLSv1.2 здесь: Are there .NET implementation of TLS 1.2?

Кстати, можно включить поддержку TLSv1.2 в приложениях .NET 4.0 с помощью трюка реестра описанных в одном из ответов на этот вопрос. То есть, если установленный IE поддерживает его, конечно.