在Linux系统下使用curl自定义HTTP头的方法

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")

代码如下:

$ 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"字符串进行了更改。

代码如下:

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

$ curl -A "my browser" http://cnn.com

wget是另外一个类似于curl,可以用来获取URL的命令行工具。并且wget也一样允许你使用一个自定义的HTTP头。

(0)

相关推荐

  • Linux系统下使用ctags查找源码的方法

    太多的文件导致我们无法去定位一个函数的实现或者一个宏定义的位置。显然对于源码的阅读和个人的学习都是非常不利的。多么希望有一个软件能够输入命令就能够精确的定位函数的位置。是的,现在有这么一个工具:cta ...

  • 如何在LINUX系统下修改debian wheezy默认配置的方法

    debian wheezy修改默认配置 环境:Thinkpad T420s + Debian Wheezy 1,thinkpad禁用触摸板(反正我是一直不习惯用触摸板)在 /etc/profile 配 ...

  • linux系统下添加计划任务执行php文件方法

    在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时上下架.我们以php文件为例,讲解linux下的计划任务. 方法/步骤 1.打开linux系统命令行界面. 在命令行界面中输入如下命令: ...

  • Linux系统下使用wine运行迅雷5的方法

    一、下载ies4linux 去 http://www.tatanka.com.br/ies4linux/page/Installation 下载ies4linux的文件包(目前版本为2.99),然后解 ...

  • Linux系统下批量压缩图片尺寸大小的方法

    现在手机用户非常庞大,针对手机用户的流量不得不考虑,但手机网络带宽较小,怎么将互联网上的图片压缩是个难题,在windows上容易,有很多软件,但在linux上有没有办法呢? 经过多次的寻找,还是找到了 ...

  • Linux系统下修改最大传输单元MTU的方法

    最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位).最大传输单元这个参数通常与通信接口有关(网络接口卡.串口 ...

  • 在linux系统下让进程在后台运行的方法

    在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: $ ./test.sh & [1] 17208 $ jobs ...

  • 在linux系统下显示中文目录和文件名的方法介绍

    选择一个一劳永逸的方法,就是修改/etc/下的fstab文件,我的fstab内容如下: /dev/hda9 / ext2 defaults 1 1 /dev/hda8 /boot ext2 defau ...

  • Linux系统下对硬盘分区进行扩容的方法总结

    硬盘快满了,加硬盘扩容,不管是独立的服务器,还是云空间新买的硬盘,扩容方式一样.下面以阿里VPS为例,详细说一下,挂载硬盘扩容的2种方法. 阿里VPS,个人觉得有以下二个方面需要改进 1,默认不是lv ...