自定义cURL请求的 Host 头部字段值

陪她去流浪 桃子 2019年03月02日 编辑 阅读次数:9871

HTTP客户端在发起HTTP请求的时候默认都是从请求URL中提取出头部字段Host的值,cURL也不例外。

有时候需要手动指定这个域名为其它域名,目的就不说了。说说修改办法:--header参数。

比如用 www.example.com 作为 host 访问百度:

$ curl -v --header 'Host: www.example.com' www.baidu.com
* Rebuilt URL to: www.baidu.com/
*   Trying 14.215.177.38...
* TCP_NODELAY set
* Connected to www.baidu.com (14.215.177.38) port 80 (#0)
> GET / HTTP/1.1
> Host: www.example.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< Server: bfe
< Date: Fri, 01 Mar 2019 19:27:05 GMT
< Content-Length: 0
< Content-Type: text/plain; charset=utf-8
<
* Connection #0 to host www.baidu.com left intact

没毛病,被百度Forbidden掉了。

可别小看这个操作,我将在接下来的一篇文章中发挥「大作用」。

可以参考cURL作者的文章,有更多的骚操作:curl another host

标签:HTTP · cURL