gpt4 book ai didi

asp.net - HttpContext.Current.Request.Url.Host 的起源在哪里?

转载 作者:行者123 更新时间:2023-12-05 02:25:11 26 4
gpt4 key购买 nike

为什么 HttpContext.Current.Request.Url.Host 返回的 URL 与 Web 浏览器中使用的 URL 不同?例如,当在浏览器中输入“www.someurl.com”时,HttpContext.Current.Request.Url.Host 变量等于“www.someotherurl.com”。

最佳答案

HttpContext.Current.Request.Url.Host 是 ASP.net 应用程序接收到的 Host header 的内容。 (有关 Host 等 HTTP header 的更多信息,请参阅 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)。

通常 ASP.NET 看到的 header 与浏览器发送的 Host header 相同。但是,如果软件或硬件位于浏览器和您的 ASP.net 代码之间并且正在重写 Host header ,则它们可能不匹配。

例如,像 GoDaddy 这样的大型预算托管商这样做是为了他们可以在单个 IIS 网站上支持多个顶级域,即使是在他们更便宜的托管计划中也是如此。 GoDaddy 没有创建单独的 IIS 网站(这会增加服务器负载并因此增加成本),而是重新映射对 http://secondsite.com/ 的请求。到您的“主要”托管站点上的虚拟目录,例如http://firstsite.com/secondsite ).他们将同时更改 Host: header 和 URL。

顺便说一句,您可以通过转储 HTTP Request Headers 的内容轻松验证这就是正在发生的事情。您的应用正在接收。

无论如何,如果您想弄清楚是谁在更改主机 header ,请从托管您的网络应用程序的人员(或负责您的负载均衡器和/或反向代理的团队)开始,因为他们很可能负责重写主机 header 的人。

关于asp.net - HttpContext.Current.Request.Url.Host 的起源在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com