执行此命令时:
curl -H "Host:" http://127.0.0.1
它响应400 Bad request。
来自http rfc:
如果请求的URI不包含所请求服务的Internet主机名,则必须为Host头字段指定一个空值。
为什么呢?
答案 0 :(得分:0)
因为-H "Host:"
完全删除了标题。请参阅docs for -H, --header <header/@file>
:
[...]通过在冒号右侧提供没有内容的替换来删除内部标题,如:-H&#34; Host:&#34;。 如果您发送带有无值的自定义标头,则其标头必须以分号终止,例如-H&#34; X-Custom-Header;&#34;发送&#34; X-Custom-Header:&#34;。
您需要-H "Host;"
发送空的主机标头。