Httpie: 添加等效的 cURL --resolve 标志

创建于 2012-10-27  ·  13评论  ·  资料来源: httpie/httpie

每个卷曲--帮助:

--resolve HOST:PORT :ADDRESS 强制将HOST:PORT解析为 ADDRESS

(绕过主机文件)

用法示例:

http --resolve "www.foo.com:127.0.0.1" GET www.foo.com/whatever

或者

http --resolve "www.foo.com:8080:127.0.0.1" GET www.foo.com:8080/whatever

feature

最有用的评论

上述技巧不适用于 HTTPS 站点。 我们需要一个类似于 curl 的完整解析选项。

所有13条评论

我认为您可以通过显式设置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)

此页面是否有帮助?
0 / 5 - 0 等级