在某些情况下,有一个 HTTP(s) 服务器有一些我试图代理的资产,我需要使用 IP 地址而不是域来这样做。经过一些故障排除后,我意识到如果我向其发出 HTTP 请求,我会https://202.100.200.152/sushi/
得到响应,并且只有在我使用域时才能得到我想要的响应https://sp.water.contoso.com/sushi/
。
我确信 HTTP(s) 服务器在它前面有一个代理,可以在所有地方路由连接。我无法访问此服务器,因此我将其视为黑匣子。我想也许它通过主机头检查域,但是当我覆盖它时它仍然不起作用。
我想知道除了 HOST 标头之外还有哪些其他因素会导致我没有得到我想要的响应。
我用 CURL模拟了BAD响应:
curl -k -v -I -H 'Host: sp.water.contoso.com' https://202.100.200.152/sushi/
* Trying 202.100.200.152...
* TCP_NODELAY set
* Connected to 202.100.200.152 (202.100.200.152) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 …
Run Code Online (Sandbox Code Playgroud)