Почему отсутствуют заголовки «X-Forwarded-For» и «Via» при запросе ресурса по https? - PullRequest
0 голосов
/ 16 февраля 2019

Я создаю веб-приложение Asp.Net Core.Я создал ресурс, который возвращает заголовки запроса как json.Я предполагаю, что когда я запрашиваю этот ресурс через прозрачный прокси-сервер (из списка https://www.proxynova.com/proxy-server-list/transparent-proxies/), который гарантированно добавляет к запросу заголовки X-Forwarded-For и Via, я увижу эти заголовки в json ответа:

Запрос: https://res.cloudinary.com/leninsdo/image/upload/v1550267036/1_vmfx0z.png

Ответ: https://res.cloudinary.com/leninsdo/image/upload/v1550267039/2_dtftny.png

Но когда я запрашиваю ровно тот же ресурс с тем же прокси через https, я не вижу эти заголовки в ответе:

Запрос: https://res.cloudinary.com/leninsdo/image/upload/v1550267251/3_qlifuv.png

Ответ: https://res.cloudinary.com/leninsdo/image/upload/v1550267313/4.png

Я использую Kestrel в качестве веб-сервера и настроил его в Program.cs следующим образом:

WebHost.CreateDefaultBuilder(args)
      .UseKestrel(options =>
      {
           options.Listen(IPAddress.Loopback, 5000);
           options.Listen(IPAddress.Any, 80);
           options.Listen(IPAddress.Any, 443, listenOptions =>
           {
                listenOptions.UseHttps(CertFilename, CertPassword);
           });
      })
      .UseSetting("https_port", "443")
      .UseStartup<Startup>()
      .Build();

Код в контроллере, который перебирает заголовки и сериализует их в json, также очень обычен и, кажется, не является источником проблемы:

List<Header> headers = new List<Header>(); //later returned in json
foreach(var key in context.Request.Headers.Keys)
{
    var values = StringValues.Empty;
    Request.Headers.TryGetValue(key, out values);
    headers.Add(new Header{ //my custom class with two fields - Key and Value
        Key = key,
        Value = (String) Convert.ChangeType(values.ToString(),typeof(String))
    });
}

И у меня нет полностьюИдея, почему заголовки Via и X-Forwarded-For исчезают, когда ресурс запрашивается через https вместо http. Я проверил его с большим количеством прокси с разных сайтов - результат один и тот же.

Может кто-тосказать мне почему это может случиться?

...