`

cURL使用心得(转)

    博客分类:
  • PHP
阅读更多

原文地址:http://www.blogkid.net/archives/2668.html

 

cURL

cURL是我在Linux上经常用的一个小工具,我理解它是一个“客户端”。今天记录一下我的使用心得。达人请忽略。

cURL是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP,  FTPS,  HTTP, HTTPS, GOPHER等。[更多...]

场景一:测试域名绑定

我常需要在开发环境中,测试某台服务器上的Web Server是否正确绑定了域名。比如,我希望在服务器192.168.1.10上绑定www.blogkid.net。但需要修改hosts才能看到效果,这活儿很累人。

所谓“域名绑定”,就是把host映射到对应的目录。如果手头有cURL,可以使用 -H 参数,在请求头信息中多写一个 Host 字段。就可以测试是否配置正确了。

# curl -H "Host: www.blogkid.net" http://192.168.1.10/

场景二:查看头信息

响应头信息中包含了很多东西。除了HTTP版本和响应代码,还有Server、Content-Type、Content-Length等信息,如果有写入Cookie的操作,也会体现在头信息中。

使用cURL的 -I 参数,就可以看到这些头信息。比如淘宝的:

# curl -I http://www.taobao.com/
HTTP/1.1 200 OK
Date: Sun, 14 Feb 2010 08:57:35 GMT
Server: Apache
Set-Cookie: abt=b; expires=Sun, 28-Feb-2010 08:57:35 GMT; path=/; domain=www.taobao.com
at_catetype: b (咦,这是什么?)
Set-Cookie: _lang=zh_CN:GBK; Domain=.taobao.com; Path=/
Cache-Control: max-age=3600
Expires: Sun, 14 Feb 2010 09:57:35 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=GB2312
Content-Language: cn

我昨天也修改了一下我服务器的server信息,大家感兴趣可以 curl -I http://www.blogkid.net/ 看看。

这里插一句,不建议把使用Web服务器的版本暴露出来(其实服务器信息也最好隐藏掉,或者把Apache伪装成nginx什么的 :P )。免得突然爆出漏洞时,措手不及,被人利用。

场景三:跟踪URL跳转

如果遇到了一个多次跳转的URL,可以先用curl的 -L 参数看看,这个URL最终跳转到了什么地方。-L 参数最好配合 -I 使用,不然cURL会把最后一次请求获得的数据输出到控制台。

没有合适的URL拿来做例子,意会一下吧 :D

场景四:发送压缩的请求

cURL提供了一个 –compress 参数,可以用来发送支持压缩的请求。但使用了–compress之后,虽然传输过程是压缩的,cURL的输出还是解压之后的,难以看到效果。

我一般用 -H 参数,自己写一个 Accept-Encoding 字段在头信息中。

curl -H "Accept-Encoding: gzip" http://www.blogkid.net/

如果直接运行上面的命令,会得到一堆乱码,因为cURL输出的内容,是压缩后的数据。不妨在后面接一个gunzip试试。

curl -H "Accept-Encoding: gzip" http://www.blogkid.net/ | gunzip

使用gunzip解压之后,信息又被还原了。前几天我写的压缩话题(12),就用了类似的方法来测试。

场景五:忽略证书错误

平日上网,遇到证书错误一定要小心。但我在工作中,经常需要用自签的假证书搭建开发环境。cURL在遇到证书错误时罢~工,使用 -k 参数就可以让它不做证书校验。

分享到:
评论

相关推荐

    curl使用方法及命令的介绍

    - `CURL使用指南.doc`、`CURL详解.doc`、`curl 也玩多线程.doc`、`curl应用总结.doc`、`cURL使用心得.doc`:这些文档提供了更详细的`curl`使用教程和实践经验。 - `curl.pdf`:可能是官方或第三方编写的`curl`用户...

    php微信开发心得

    相信很多人都需要这样一份有关微信开发的资料,从基本功能到通用,curl都有说道。可以互相交流

    Nginx详细使用及常用配置,从0到1教你学会Nginx的学习心得

    ### Nginx 详细使用及常用配置学习心得 #### Nginx 简介与特点 Nginx 是一款由俄罗斯程序员伊戈尔·西索夫(Igor Sysoev)开发的高性能 HTTP 服务器、反向代理服务器及邮件代理服务器。它以其出色的性能和稳定性在...

    PHP面试题及答案,另附学习心得

    - **CURL**: 可用于发送HTTP请求,适用于访问由JSP提供的Web服务。 - **PHP与Java的整合**: PHP可以直接创建Java对象进行交互。 #### 五、版本控制工具 **题目**: 常用的版本控制工具有哪些? **解答**: 主要有两...

    使用tensorflows详细过程总结

    ### 使用TensorFlow的详细过程总结 #### TensorFlow环境安装与配置 **TensorFlow** 是一个开源的机器学习框架,被广泛应用于研究和生产环境中。对于初次接触TensorFlow的新手来说,安装配置过程可能会遇到不少挑战...

    curllib常用库

    在提供的文件列表中,可以看到一些关于`libcurl`的教程和使用心得,这些资源可以帮助深入理解`libcurl`的使用方法和常见问题。例如,“使用libcurl根据url下载对应html页面.htm”可能讲解了如何通过`libcurl`获取...

    160409-20141450-刘育超-实验报告(三).doc

    在实验中,学生学习了如何使用curl来获取资源: - `curl http://localhost:8080/JAX-RS/resourcesP/xml`:这将发送一个GET请求到服务器,请求XML格式的资源数据。 - `curl ...

    PHP框架Laravel学习心得体会

    - 使用curl命令下载并安装Composer:`$ curl -sS https://getcomposer.org/installer | php` - 将下载的composer.phar文件移动到全局目录:`$ mv composer.phar /usr/local/bin/composer` - 之后可以通过命令`$ ...

    基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)

    1. **使用curl进行站外采集**: - `curl`库是PHP中用于发送HTTP请求的工具,常用于网页抓取。你可以通过设置不同的选项来定制请求,如设置URL、HTTP头、超时时间等。 2. **编码转换**: - 在处理不同来源的数据时...

    python使用心得之获得github代码库列表

    1.背景 项目需求,要求获得github的repo的api,以便可以提取repo的数据进行分析。研究了一天,终于解决了这个问题,虽然效率还是比较低下。... str = os.popen(curl -G https://api.github.com/repositories?sinc

    ddpushWebManager_ddpush使用php推送解决方案

    你需要了解RESTful API的概念,以及如何使用PHP的cURL库或者file_get_contents函数来发送HTTP请求,获取和发送数据。 4. **前端开发**:项目前端可能使用HTML、CSS和JavaScript,构建用户交互界面。需要掌握基本的...

    PHP高效获取远程图片尺寸和大小的实现方法

    函数首先判断是否需要获取图片大小,如果需要则优先使用fread方式读取数据,否则使用curl。之后,使用getimagesize()函数将读取的数据转换为图片尺寸信息。如果需要获取文件大小,函数会分析文件数据流的信息,根据...

    开源项目-ellotheth-pipethis.zip

    开源项目通常有活跃的社区,用户可以在论坛、邮件列表或GitHub Issues中寻求帮助,讨论问题,分享使用心得,或者提出新的功能需求。 综上所述,`ellotheth-pipethis`项目提供了对命令行管道操作的安全增强,使得...

    PHP阿狸子订单系统源码 自适应电脑手机端.rar

    简单的PHP订单系统,支持货到付钱,微信支付,非常不错,简介大方...PHP5.2及以上mysql5.1及以上,如果是低于5.1请联系作者处理PHP须开启curl最佳服务器运行环境为Linux+Apache/Nginx,Windows+IIS次之后台操作推荐使用

    mahara教师评价系统

    它提供了个人自我学习及成长发 展的工具及环境,您可以一门课程,建立一个博客,在这个博客里, 您可以记录您学习此课 程的心得及历程,此博客您可以分享给教师或同学 , 让他们了解您学习此课程的状况及进 度。...

    PHP学习资料--php

    11. **Web服务API**:学习如何使用PHP调用和创建RESTful API,理解JSON和XML数据格式,以及cURL库用于HTTP请求。 12. **安全实践**:了解如何避免常见的Web安全问题,如XSS(跨站脚本攻击)、CSRF(跨站请求伪造)...

    Linux shell 参考文档 杂七杂八留下的代码

    【描述】中的链接指向了一篇博客文章,虽然没有具体的描述内容,但我们可以推测这可能是一个个人博客,博主分享了自己在使用Linux Shell过程中的经验和心得。在iteye这样的技术交流平台上,通常会有很多实战案例和...

    Linux多线程服务端编程:使用muduo C++网络库

    1.13心得与小结. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 26 1.14Observer 之谬. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 第2章线程同步精要 2.1互斥器...

Global site tag (gtag.js) - Google Analytics