在HttpWebRequest上设置referer标头时,我看到两种不同的行为。在某些站点上,每个重定向都会保留referer标头,而在其他站点上,在第一个请求之后删除referer标头。什么会导致这种行为,有没有办法控制它?
示例(这似乎是特定于HTTPS的,但我不确定原因)
在此请求中,标题将被删除重定向。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mail.google.com/mail/");
request.Referer = "http://www.google.com";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
在此请求中,标题仍保留在每个重定向上。第二个请求的差异是http vs https。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://mail.google.com/mail/");
request.Referer = "http://www.google.com";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
答案 0 :(得分:1)
来自任何HTTPS站点的referer标头都会被剥离,无论它在哪里:
http://referencesource.microsoft.com/#System/net/System/Net/HttpWebRequest.cs,5782