我认为您可以通过显式设置Host
标头来实现相同的目的:
http 127.0.0.1/whatever Host:www.foo.com
上述技巧不适用于 HTTPS 站点。 我们需要一个类似于 curl 的完整解析选项。
我正在使用 httpie 来测试我是否正确设置了 DNS 循环。 +1 功能
只是好奇......这已经开放一年多了(自从它重新开放以来)......它有机会被看到吗? 似乎是一个有用的功能。
HTTPie 使用的底层软件不允许人们为特定主机指定自己的 IP 地址。 它不太可能会被添加到那里。 因此, @aztlan2k不太可能正在处理此问题。 对不起。 :/
你好! 我已经提交了一些代码,希望得到任何评论。
刚刚通过另一个 PR 重新提交。 你介意检查一下吗?
有机会合并吗? @jakubroztocil
这对于准备站点迁移并避免问题会很棒!
这可以通过dig +short <host> A
。 这是一个 DNS 问题,而不是真正的 HTTP
dig
用于查询 DNS,建议的--resove
用于在 HTTP 获取期间强制解析地址(可能是 DNS 服务器尚未拥有但将在未来,在此测试完成后)。
它是编辑/etc/hosts
的替代方法,而不是使用dig
(或drill
,或类似的)。
如果有人对“HTTPS”为什么需要这样做感到困惑,特别是当使用 TLS SNI (服务器名称指示)代替 HTTP 主机标头来消除连接歧义时(例如,反向代理中基于主机名的 L7 路由,或“虚拟服务器”用例),这是非常常见的。
在这种情况下,预先解析 IP 是不够的,因为它不会构成实际服务器所需的虚拟服务器名称。
如果出于任何原因不希望等效于--resolve
,则强制使用 SNI 值(例如--sni
)将是可接受的替代 IMO,因为我们已经可以为纯 HTTP 执行等效操作(即设置Host 标头值显式)。
这对于绝对重定向也很有用(包括带有主机名的完整 URL)
最有用的评论
上述技巧不适用于 HTTPS 站点。 我们需要一个类似于 curl 的完整解析选项。