六月 10th, 2019

可以这么说,万维网已经变得无所不在,以至于在没有通信的计算机上做很多事情是很困难的,在独立服务器的命令行上工作和在桌面上工作时都是如此。有许多工具可用于与网络上的文件进行通信,今天Hostease美国服务器商将介绍一下什么是cURL。

什么是cURL?

cURL分为两部分:

首先是libcURL,这是一个完成所有工作并提供接口的库,其他程序可以使用这个接口来利用cURL的功能,第二个是充当命令行接口的cURL。

cURL的核心功能是执行对URL(统一资源定位器,俗称网址)的请求,这通常会导致从网站服务器获取文件。cURL的默认操作是将任何返回文件的内容从服务器显示到标准输出(通常是终端屏幕),下面是一个例子:

cURL www.example.com

一般来说,在屏幕上显示要打开的文件的内容并不是很有帮助,因此可以使用-o标志指定要将内容保存到其中的输出文件。

cURL -o example.com.html www.example.com

现在,当查看example.com.html文件的内容时,将看到前面示例中看到的站点内容,可以交替使用-o将文件保存到文件名与远程访问的文件名相同的文件:

cURL -O www.example.com/index.html

现在,将在运行包含站点内容的cURL的目录中拥有一个名为index.html的文件。cURL还支持使用HTTPS进行连接,这可以通过在URL的开始处包含https://来实现:

cURL https://www.example.com

现在假设想要获取保护HTTP基本身份验证的文件,可采取以下方式提交:

cURL -u <username>:<password> www.example.com

在本例中,将 <username>替换为需要访问的资源所需的用户名,并将 <password>替换为所提供的用户名的密码,有时将连接到提供重定向到另一个URL的URL,cURL通常不会遵循这些重定向,并会向管理员通知重定向。如果希望cURL遵循重定向并获取它指向的资源,那么需要使用-L标志。

cURL -L www.example.com

到目前为止还很简单。cURL还具有帮助与需要网络表单和cookie的站点进行通信的功能。cURL提出的标准请求类型是GET请求,其参数可以附加到的浏览器地址栏中类似的URL:

cURL www.example.com/index.html?key=value&key2=value2

在本例中,请求将GET变量“key”设置为“value”并将“key2”设置为“value2”的页面。要发送POST请求,需要使用-X标志指定请求类型,并且需要使用-F标志设置各个变量:

cURL -X POST -F ‘key=value’ -F ‘key2=value2’ www.example.com/index.html

在本例中,向相同的URL发送了与以前相同的变量,但是使用的是POST请求而不是GET请求。有了这些基础知识,可以进入稍微高级一点的真实场景。假设需要获取一个文件的内容,但是它们位于一个需要提交登录表单才能访问的网站上。登录时,返回一个cookie,该cookie随后用于允许访问其他页面。

cURL -X POST -F ‘username=bob’ -F ‘password=pa55w0rd’ -c ~/cookie.txt https://www.example.com/login.php

cURL -b ~/cookie.txt -o grabbed.file https://www.example.com/grab-file.php

现在快速浏览一下它是如何工作的。在第一个命令中,使用一个POST请求将用户名和密码变量发送到www.example.com服务器上的login.php文件。-c标志告诉cURL将返回的任何cookie信息保存到给定的文件中。第二个命令使用-b标志告诉cURL将~/cookie.txt文件的内容作为cookie信息与请求一起发送。这意味着该网站将知道以前从cookie信息登录过,然后cURL将把输出保存到名为grabbed.file的文件中。

现在已经介绍了在命令行使用cURL与网站交互时可能需要的大部分内容。它还支持许多其他特性,和往常一样,手册页是获得关于这些特性的信息的好地方。以上就是Hostease美国服务器商介绍什么是cURL,当然还有更多关于URL的介绍有兴趣的朋友可以了解 IIS服务器怎样利用URL重写功能将HTTP跳转到HTTPS

发表评论

电子邮件地址不会被公开。 必填项已用*标注