Request.Url.Host与Request.Headers ["host"]相同?

Bra*_*itz 1 .net asp.net asp.net-mvc web

我已经阅读了相互矛盾的事情:在ASP.Net(和MVC)中,是否Request.Url.Host返回请求的主机头?我已经看到了Request.Headers["host"]首先检查的代码,然后Request.Url.Host在出现问题时降级为使用,但我不明白为什么如果它们相同则需要这样做.

Dai*_*Dai 8

他们不一样.

HttpRequest.Headers["Host"] 使您可以直接访问客户端到服务器的HTTP标头.

HttpRequest.Url由ASP.NET重建,它Host:默认使用传入请求的标头,但是有一个内部设置UseHostHeaderForRequestUrl,如果设置为,false那么ASP.NET将使用HttpRequest.Headers["SERVER_NAME"],但在某些情况下它使用的值"127.0.0.1"代替.