Linux 强大的 curl 命令

来源:互联网 发布:泰国旅游 知乎 编辑:程序博客网 时间:2024/04/29 18:31

最近看《HTTP权威指南》,一直看到书上面说的客户端构造http报文去请求服务端,于是乎,一直想我在Linux下面如何去模拟http请求呢??

后台在网上查,原来是可以通过curl命令请求的,先贴一下curl命令的强大功能;

curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服务器获取数据。他支持很多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协议等。当你使用curl向一个URL发送HTTP请求的时候,它会使用一个默认只包含必要的头部字段(如:User-Agent, Host, and Accept)的HTTP头。

在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写“HOST”字段来测试一个负载均衡,或者通过重写"User-Agent"字符串来假冒特定浏览器以解决一些访问限制的问题。

为了解决所有这些问题,curl提供了一个简单的方法来完全控制传出HTTP请求的HTTP头。你需要的这个参数是“-H” 或者 “--header”。

为了定义多个HTTP头部字段,"-H"选项可以在curl命令中被多次指定。

例如:以下命令设置了3个HTTP头部字段。也就是说,重写了“HOST”字段,并且添加了两个字段("Accept-Language" 和 "Cookie")

  1. $ curl -H 'Host: 157.166.226.25' -H 'Accept-Language: es' -H 'Cookie: ID=1234' http://cnn.com

对于"User-Agent", "Cookie", "Host"这类标准的HTTP头部字段,通常会有另外一种设置方法。curl命令提供了特定的选项来对这些头部字段进行设置:

  • -A (or --user-agent): 设置 "User-Agent" 字段.
  • -b (or --cookie): 设置 "Cookie" 字段.
  • -e (or --referer): 设置 "Referer" 字段.

例如,以下两个命令是等效的。这两个命令同样都对HTTP头的"User-Agent"字符串进行了更改。

  1. $ curl -H "User-Agent: my browser" http://cnn.com
  2. $ curl -A "my browser" http://cnn.com

在linux的命令窗口下,我们无法使用浏览器去浏览网站,但是可以用curl可以访问html代码。有时,为了指定某个域名的IP,需要写hosts,这样比较费事。可以临时用curl命令指定一个IP
curl  www.example.com  -x192.168.0.111:80
用-x选项指定主机IP,这种方法类似于IE设置了一个代理服务器。但有时候(访问https时)这样访问不太好用,可以使用这样的方法: curl -H "Host:www.abc.com" https://192.168.0.111/aaa.txt  


0 0
原创粉丝点击