gpt4 book ai didi

wcf - Host Header 可以和 URL 不同吗

转载 作者:可可西里 更新时间:2023-11-01 17:00:35 24 4
gpt4 key购买 nike

我们运行一个使用 WCF 托管的网站。该网站托管于:https://foo.com并使用以下命令注册 ssl 证书:

netsh http add sslcert hostnameport=foo.com:443

当我们在服务器上浏览网站时,一切正常,证书有效。

服务器前面有一个负载平衡器,它监听 bar.com 然后将请求重定向到我们的服务器。负载均衡器不会重写获取 URL,而只会重写主机 header 。

重写的标题如下所示:

GET https://foo.com/ HTTP/1.1
Host: bar.com
Connection: keep-alive

现在我们有一些问题表明 ssl 证书在这种情况下无效。

Loadbalancer 本身有一个注册监听 https://bar.com 的证书

问题:

  • http header 中的 get URL 和 Host 不同是否可以/允许?
  • 如果可以在 header 中使用不同的值,那么我们应该在哪个 url 下运行网站?获取 URL 或主机 url?

最佳答案

嗯,引用 RFC2616:

If Request-URI is an absolute URI, the host is part of the Request-URI. Any Host header field value in the request MUST be ignored.

所以,回到你的问题:这是允许的,但不是一个好主意,因为它会造成困惑,最好使用相对路径。即

GET /path HTTP/1.1 

代替

GET https://foo.com/path HTTP/1.1. 

为此修改负载平衡配置。或者使两个值相同。

如果 Host header 的值与请求 URI 不同,则 URI 优先于 Hosts header 。

关于wcf - Host Header 可以和 URL 不同吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768329/

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