亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

curl,全稱CommandLine URL 或 CommandLine Uniform Resource Locator,顧名思義,curl命令是在命令行方式下工作,利用URL的語(yǔ)法進(jìn)行數(shù)據(jù)的傳輸或者文件的傳輸。

crul的官方網(wǎng)站是 HTTPS://curl.haxx.se/ , 我們可以通過該網(wǎng)站獲取此工具的最新版本,還有最全面的使用方法。

從官網(wǎng)可以知道,curl支持30多種類型的傳輸方式,例如:FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Te.NET and TFTP等,這當(dāng)中包含多種協(xié)議。最常使用的有FILE、FTP、HTTP、HTTPS等協(xié)議。

對(duì)于運(yùn)維人員來說,在我們探測(cè)遠(yuǎn)程服務(wù)的時(shí)候,比如http傳輸,SOCKET連接時(shí),這個(gè)工具能非常方便的作為驗(yàn)證工具和測(cè)試工具。

下面看幾個(gè)curl典型應(yīng)用實(shí)例。

1、 僅僅顯示header信息

這個(gè)用法運(yùn)維人員經(jīng)常使用,可以探測(cè)一個(gè)網(wǎng)站的header信息,例如:

[root@localhost ~]# curl -I https://www.ixdba.net HTTP/1.1 200 OK Server: Nginx/1.13.9 Date: Mon, 04 Mar 2019 08:11:31 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive

通過curl的“-I”(大寫的i)參數(shù)可以獲取指定網(wǎng)站的header頭信息,可以發(fā)現(xiàn)上面這個(gè)網(wǎng)站可以正常訪問(200狀態(tài)碼),同時(shí)此網(wǎng)站的web服務(wù)器是nginx/1.13.9,并且還開啟了keep-alive。這些信息都是web運(yùn)維必須要具備的。

2、顯示http狀態(tài)代碼

http狀態(tài)碼對(duì)web運(yùn)維來講,非常重要,在對(duì)web頁(yè)面進(jìn)行監(jiān)控的時(shí)候,會(huì)經(jīng)常通過狀態(tài)碼來判斷網(wǎng)頁(yè)的狀態(tài),如果返回狀態(tài)碼為非200狀態(tài),那么則認(rèn)為網(wǎng)頁(yè)異常。要獲取網(wǎng)頁(yè)狀態(tài)碼,除了上面的“-I”參數(shù)外,還有更專業(yè)的方法,那就是使用 “-s”和“-o”參數(shù)組合,最后使用“-w”參數(shù),可以這樣使用:


[root@localhost ~]#curl -s -o /dev/null -w %{http_code}"n" http://www.baidu.com 200

其中:

 

? “-s”: 表示安靜模式,不輸出錯(cuò)誤,或者進(jìn)度條之類的。 ? “-o”: 表示指定輸出結(jié)果到某個(gè)文件,不指定的話默認(rèn)是終端。這里是將結(jié)果寫入空設(shè)備中。 ? “-w”表示輸出一些定義的元數(shù)據(jù),這里輸出的是%{http_code},即http狀態(tài)碼。除去http_code,還有http_connect、time_total、time_connect、time_Appconnect、time_redirect、size_download 、size_upload 、content_type、ssl_verify_result等變量可供選擇。輸出變量需要按照%{variable_name}的格式。 ? “n”表示換行

 

再來看個(gè)例子,通過http協(xié)議訪問一個(gè)網(wǎng)站,命令如下:

[root@localhost ~]#curl -s -o /dev/null -w %{http_code}" "%{time_total}" "%{redirect_url}"n" http://www.ixdba.net 301 0.141 https://www.ixdba.net/

可以看到輸出結(jié)果有個(gè)301,這表示當(dāng)通過http訪問此網(wǎng)站的時(shí)候,自動(dòng)跳轉(zhuǎn)到了https,執(zhí)行了301定向操作,所以狀態(tài)碼變成了301,第二個(gè)輸出“0.141”是變量“%{time_total}”解析出的結(jié)果,代表總時(shí)間,按秒計(jì)。精確到小數(shù)點(diǎn)后三位,最后的“https://www.ixdba.net/” 是"%{redirect_url}"變量的輸出結(jié)果,代表跳轉(zhuǎn)后的url。

3、使用curl實(shí)現(xiàn)url地址重定向(自動(dòng)跳轉(zhuǎn))

默認(rèn)情況下CURL不會(huì)發(fā)送HTTP Location headers(重定向),但使用了“-L”選項(xiàng)后,當(dāng)一個(gè)被請(qǐng)求頁(yè)面移動(dòng)到另一個(gè)站點(diǎn)時(shí),就會(huì)發(fā)送一個(gè)HTTP Loaction header作為請(qǐng)求,然后將請(qǐng)求重定向到新的地址上。例如:訪問http://www.ixdba.net 時(shí),會(huì)自動(dòng)將地址重定向到 https://www.ixdba.net 上。

[root@localhost ~]# curl -L -I http://www.ixdba.net HTTP/1.1 301 Moved Permanently Server: nginx/1.13.9 Date: Fri, 01 Mar 2019 07:25:57 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: https://www.ixdba.net/ Strict-Transport-Security: max-age=31536000; includeSubDomains; preload HTTP/1.1 200 OK Server: nginx/1.13.9 Date: Fri, 01 Mar 2019 07:25:58 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive

輸出有兩個(gè)部分,可以看到有自動(dòng)的跳轉(zhuǎn),這是因?yàn)槭褂昧?L參數(shù),curl就會(huì)跳轉(zhuǎn)到新的網(wǎng)址。

4、抓取網(wǎng)頁(yè)內(nèi)容,并保存到本地

curl也能下載文件,達(dá)到跟wget相同的功能,例如將一個(gè)url文件保存到本地,保存原始文件名,可以通過“-O”參數(shù)實(shí)現(xiàn):

[root@localhost ~]# curl -O https://www.ixdba.net/archives/2017/06/653.htm

但是有時(shí)候url中的文件名不固定或者想下載后重命名,可以通過“-o”實(shí)現(xiàn),例如將url中的文件下載到本地,并命名為test.html,命令如下:

[root@localhost ~]#curl -o test.html https://www.ixdba.net/archives/2017/06/653.htm

這里面涉及兩個(gè)curl參數(shù),分別是:

 

? -o/--output 將文件保存為命令行中指定的文件名的文件中 ? -O/--remote-name 使用URL中默認(rèn)的文件名保存文件到本地

 

5、通過curl下載文件并開啟斷點(diǎn)續(xù)傳

curl也可以實(shí)現(xiàn)下載大文件,并實(shí)現(xiàn)斷點(diǎn)續(xù)傳,先看下面這個(gè)例子,如下圖所示:


 

可以看到,curl下載文件其實(shí)比wget更好用,可以看到下載文件時(shí)的各個(gè)屬性,文件總大小,已下載大小,下載耗時(shí)多少,下載速度多少等等。

在下載一會(huì)后,執(zhí)行ctrl+c,中斷下載,接著再次執(zhí)行curl下載,看看是否能夠?qū)崿F(xiàn)斷點(diǎn)續(xù)傳功能,如下圖所示:


 

這里使用了三個(gè)參數(shù):

-C/--continue-at : 斷點(diǎn)續(xù)轉(zhuǎn),注意斷點(diǎn)續(xù)傳的參數(shù)是-C, 要自動(dòng)續(xù)傳的話要使用 "-C -", 否則需要手工指定斷點(diǎn)的字節(jié)位置。這個(gè)特別注意。

6、對(duì)CURL的最大網(wǎng)絡(luò)使用帶寬進(jìn)行限速

與wget類似,curl在下載文件時(shí)也會(huì)占滿系統(tǒng)帶寬,這樣一來,可能會(huì)影響線上業(yè)務(wù)系統(tǒng)的正常運(yùn)行,因此,限速也是要做的,可以通過“--limit-rate”選項(xiàng),實(shí)現(xiàn)對(duì)curl下載網(wǎng)速限制,來看一個(gè)例子:


 

這是限制下載速度為2M,看最下面的下載速度剛好是2048k左右,實(shí)現(xiàn)了帶寬限速。

7、通過CURL訪問需要授權(quán)的頁(yè)面

在訪問需要授權(quán)的頁(yè)面時(shí),可通過-u選項(xiàng)提供用戶名和密碼進(jìn)行授權(quán)

[root@localhost ~]# curl -u username:password URL

上面的做法很明顯,存在密碼泄露的風(fēng)險(xiǎn),通常的做法是在命令行只輸入用戶名,之后會(huì)提示輸入密碼,這樣可以保證在查看歷史記錄時(shí)不會(huì)將密碼泄露。

[root@localhost ~]# curl -u username URL

8、通過curl從FTP服務(wù)器下載、上傳文件

CURL不但支持http,同樣也支持FTP下載,若在url中指定的是某個(gè)文件路徑而非具體的某個(gè)要下載的文件名,CURL則會(huì)列出該目錄下的所有文件名而并非下載該目錄下的所有文件

例如:列出public_html下的所有文件夾和文件

curl -u ftpuser:ftppass ftp://ftp_server/public_html/

看下面這個(gè)例子,如下圖所示:


 

要下載一個(gè)文件,可以執(zhí)行如下命令:

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/getssl.php

例如下圖操作:


 

除了下載操作,curl也可以將文件上傳到FTP服務(wù)器上,通過“-T”選項(xiàng)可將指定的本地文件上傳到FTP服務(wù)器上。例如:

將myfile.txt文件上傳到服務(wù)器:

curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

看下圖操作:


 

curl也可以同時(shí)上傳多個(gè)文件,方法如下:

curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

curl還可以從標(biāo)準(zhǔn)輸入獲取內(nèi)容保存到服務(wù)器指定的文件中,方法如下:

curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

9、CURL使用SSL證書訪問HTTPS

有時(shí)候在通過curl下載基于https的鏈接文件時(shí),會(huì)提示ssl認(rèn)證失敗,或者ssl不可信,此時(shí)可以使用 -k 或者“-insecure”選項(xiàng),來忽略簽名認(rèn)證的警告。 這樣就可以讓curl命令執(zhí)行不安全的SSL連接,進(jìn)而去獲取數(shù)據(jù)。
命令使用示例如下:

curl -k https://abc.com curl --insecure https://www.tttao.com

分享到:
標(biāo)簽:curl
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定