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