強大的curl命令的介紹和一般用法
curl,全稱CommandLine URL 或 CommandLine Uniform Resource Locator,顧名思義,curl命令是在命令列方式下工作,利用URL的語法進行資料的傳輸或者檔案的傳輸。
這個命令列工具現在多用於Unix和Linux作業系統,是一個開源的工具,功能十分強大。
下面是crul的官方網站,我們可以該網站獲取該工具的最新版本,還有最全面的使用方法。
從官網我們可以知道,該工具支援以下30多種型別的傳輸方式,這當中包含多種協議。
DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling
最常使用的有FILE、FTP、HTTP、HTTPS等協議。
對於程式設計師在說,在我們開發遠端服務的時候,比如http傳輸,SOCKET等網路程式設計時,這個工具能非常方便的作為你的驗證工具和測試工具。
比如下面是最簡單的用法,通過這種方式獲取一個頁面。我輸入的www.baidu.com甚至還不是一個完整的URL,因為沒有指明所用的協議,curl智慧地進行了選擇。
執行後,返回的是一個百度主頁的HTML程式碼。
curl www.baidu.com
本文主要還是介紹curl的一般用法,詳細用法請參閱官網。
curl的用法跟一般的linux/Unix命令無異,一般語法如下。
crul -[選項] [URL]
1. -v 選項,--verbose,指定該選項後,可以跟蹤URL的連線資訊。我們可以根據這個選項看看curl是怎麼工作的。
比如剛剛演示的那個百度連結,我們加入-v選項,就可以看看它是怎麼工作的。
加上選項後返回的資訊,包括很多重要資訊:
域名解釋過程:我們可以得到真正連線的IP地址和埠
請求頭資訊:其中有使用的協議(HTTP),協議的請求方式(GET)
迴應頭資訊:包含狀態碼(200),內容格式(text/html),內容長度等
curl -v www.baidu.com
2.-i 選項,--include,把迴應的頭資訊包含在內,跟-v大同小異,是-v的子集。
curl -i www.baidu.com
3.-I (大寫i)選項,--head,只顯示返回的頭資訊,與-v大同小異,是-v的子集。
curl -I www.baidu.com
4. -u 選項,帶使用者驗證的連線。可以訪問或獲取帶使用者驗證的URL。
curl -u username:password ftp://127.0.0.1/hello.txt
curl -u username ftp://127.0.0.1/hello.txt
curl -u username:password https://127.0.0.1/
5. -d 選項,帶請求引數的連線。比如下面的URL,user=xiaoruan&age=22就是所帶的引數。crul可以帶請求引數。
http://127.0.0.1/index.html?user=xiaoruan&age=22
curl -d 'user=xiaoruan&age=22' http://127.0.0.1/index.html
6. -X 選項,指定請求方式,我們只能URL可以有多種請求方式,最常見的是GET和POST,但請求的方式,包括GET、PUT、POST、DELETE四種方式。
這四種請求方式,對於在做RESTFUL介面開發和測試的人來說,非常方便。curl的用法如下:
curl -XGET www.baidu.com
curl -XPOST www.baidu.com
curl -XDELETE www.baidu.com
curl -XPUT www.baidu.com
curl還有很多很多實用的功能,後續的用法會持續更新,歡迎大牛們一起交流,或者留下你日常工作中常用的或者你認為非常有用的curl用法,不勝感激。