原文地址:http://www.blogkid.net/archives/2668.html
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什么的 )。免得突然爆出漏洞时,措手不及,被人利用。
场景三:跟踪URL跳转
如果遇到了一个多次跳转的URL,可以先用curl的 -L 参数看看,这个URL最终跳转到了什么地方。
-L 参数最好配合 -I 使用,不然cURL会把最后一次请求获得的数据输出到控制台。
没有合适的URL拿来做例子,意会一下吧
Google目前会跳到HK,有个不错实例:
curl -IL http://www.google.com
场景四:发送压缩的请求
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解压之后,信息又被还原了。前几天我写的压缩话题(1,2),就用了类似的方法来测试。
场景五:忽略证书错误
平日上网,遇到证书错误一定要小心。但我在工作中,经常需要用自签的假证书搭建开发环境。
cURL在遇到证书错误时罢--工,使用 -k 参数就可以让它不做证书校验。
http://curl.haxx.se/docs/manual.html
分享到:
相关推荐
【标题】:“curl c++使用” 在C++编程中,`curl`库是一个非常重要的工具,它允许开发者通过命令行接口或API实现HTTP、HTTPS和其他网络协议的客户端功能。本篇将详细介绍如何在C++项目中集成和使用`curl`库进行网络...
在C++项目中,我们可以使用curl库进行各种网络通信任务。 **Qt框架介绍** Qt是一个跨平台的应用程序开发框架,广泛用于创建GUI应用。它提供了一整套工具、库和IDE,使得开发者能够轻松地构建高效、美观的桌面和移动...
- `CURL使用指南.doc`、`CURL详解.doc`、`curl 也玩多线程.doc`、`curl应用总结.doc`、`cURL使用心得.doc`:这些文档提供了更详细的`curl`使用教程和实践经验。 - `curl.pdf`:可能是官方或第三方编写的`curl`用户...
Curl.zip 文件包含了一个在Windows环境下使用C++开发的CURL库示例程序。CURL是一个流行的开源库,用于在各种编程语言中处理URL传输,包括文件上传、下载、HTTP、HTTPS、FTP等网络协议。这个C++ DEMO将帮助我们理解...
如果你更喜欢图形界面,还可以选择使用带有`curl`功能的下载管理器。 在命令行中,`curl`的基本语法是`curl [选项] URL`。例如,要从一个网页抓取HTML内容,可以输入`curl http://example.com`。通过添加各种选项,...
例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程**: - 设置URL:`curl_easy_setopt(curl, CURLOPT_URL, ...
综上所述,本篇文档主要介绍了如何使用curl工具来操作OpenStack的keystone API,涵盖了从基础的API调用到具体的业务和管理API测试,以及如何使用curl进行API调试和Swift ReST API操作的相关知识。掌握这些知识点,...
本文将深入探讨如何使用curl命令来实现在Linux环境下进行SFTP和FTP上传操作。 首先,让我们了解一下SFTP。SFTP是一种基于SSH(Secure Shell)的安全文件传输协议,它提供了安全的数据传输,保护了用户的登录凭证和...
curl-config 配置选项的使用 curl-config 是一个命令行工具,用于显示关于 curl 和 libcurl 安装的信息。下面是对 curl-config 的详细介绍: curl-config 的使用 curl-config 可以使用多种选项来显示不同的信息。...
在Visual Studio(VS)中使用curl模板涉及到网络编程和C++库的集成。curl是一个流行的开源库,用于处理URL相关的任务,如HTTP、HTTPS和其他协议的传输。它提供了丰富的功能,包括文件上传下载、POST请求、自定义头...
使用`curl_init()`函数创建一个新的cURL会话。例如: ```php $ch = curl_init(); ``` ### 3. 设置cURL选项 cURL提供了大量选项来定制请求行为,例如URL、请求类型、超时时间等。使用`curl_setopt()`函数设置这些...
这篇博客文章《curl在Android中使用的Demo》将向我们展示如何在Android应用中集成和使用`curl`命令。 首先,我们需要理解`curl`的基本用法。在命令行中,`curl`通过指定URL和各种选项来发起网络请求。例如,发送一...
**PHP_Curl 使用详解** PHP_Curl 是 PHP 中的一个扩展,用于执行 HTTP、FTP、SMTP 等多种协议的网络请求。它通过 cURL 库实现了丰富的功能,包括支持 SSL 证书、POST 数据、PUT 操作、FTP 上传、代理设置、HTTP ...
在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...
`curl`遵循某种开源许可证,如MIT、GPL或LGPL,这将决定用户在商业项目中使用`curl`的权限。 3. **README.md** 和 **README**: 这些文件通常包含了快速入门指南、安装步骤和常见问题解答。在AIX 7.1上安装`curl`时...
标题 "windows 下可以使用curl命令" 暗示了我们讨论的是如何在Windows操作系统环境下使用curl工具。curl是一个强大的命令行工具,用于传输数据到或从服务器,支持多种协议如HTTP、HTTPS、FTP等。在Windows系统中,它...
* `-1, --tlsv1`:强制 curl 使用 TLS 1.x 版本。 * `-2, --sslv2`:强制 curl 使用 TLS 2 版本。 * `-3, --sslv3`:强制 curl 使用 TLS 3 版本。 * `-4, --ipv4`:将地址解析为 IPv4 地址。 * `-6, --ipv6`:将地址...
在实际应用中,`CurlAspect`和`Curl`注解的组合使用可以帮助开发团队提高工作效率,快速定位问题。当遇到服务间通信问题时,开发者不再需要手动构造curl命令,只需查看生成的curl命令,就能在任何支持curl的环境(如...
在本文中,我们将深入探讨Freeswitch中的XML_CURL模块及其使用方法,特别是在与PHP集成时如何生成XML文件,以及如何用它来替代传统的directory、ivr(交互式语音响应)和dialplan配置。 Freeswitch是一个开源的软...
《PHP cURL 使用详解》 PHP cURL 是一个强大的库,用于在 PHP 中发送网络请求,包括抓取网页内容、模拟...熟练掌握 cURL 的使用,能够极大地提升你的Web开发能力,特别是在进行数据抓取、API交互以及自动化任务时。