日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

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

從官網可以知道,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等,這當中包含多種協議。最常使用的有FILE、FTP、HTTP、HTTPS等協議。

對于運維人員來說,在我們探測遠程服務的時候,比如http傳輸,SOCKET連接時,這個工具能非常方便的作為驗證工具和測試工具。

下面看幾個curl典型應用實例。

1、 僅僅顯示header信息

這個用法運維人員經常使用,可以探測一個網站的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)參數可以獲取指定網站的header頭信息,可以發現上面這個網站可以正常訪問(200狀態碼),同時此網站的web服務器是nginx/1.13.9,并且還開啟了keep-alive。這些信息都是web運維必須要具備的。

2、顯示http狀態代碼

http狀態碼對web運維來講,非常重要,在對web頁面進行監控的時候,會經常通過狀態碼來判斷網頁的狀態,如果返回狀態碼為非200狀態,那么則認為網頁異常。要獲取網頁狀態碼,除了上面的“-I”參數外,還有更專業的方法,那就是使用 “-s”和“-o”參數組合,最后使用“-w”參數,可以這樣使用:


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

其中:

 

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

 

再來看個例子,通過http協議訪問一個網站,命令如下:

[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/

可以看到輸出結果有個301,這表示當通過http訪問此網站的時候,自動跳轉到了https,執行了301定向操作,所以狀態碼變成了301,第二個輸出“0.141”是變量“%{time_total}”解析出的結果,代表總時間,按秒計。精確到小數點后三位,最后的“https://www.ixdba.net/” 是"%{redirect_url}"變量的輸出結果,代表跳轉后的url。

3、使用curl實現url地址重定向(自動跳轉)

默認情況下CURL不會發送HTTP Location headers(重定向),但使用了“-L”選項后,當一個被請求頁面移動到另一個站點時,就會發送一個HTTP Loaction header作為請求,然后將請求重定向到新的地址上。例如:訪問http://www.ixdba.net 時,會自動將地址重定向到 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

輸出有兩個部分,可以看到有自動的跳轉,這是因為使用了-L參數,curl就會跳轉到新的網址。

4、抓取網頁內容,并保存到本地

curl也能下載文件,達到跟wget相同的功能,例如將一個url文件保存到本地,保存原始文件名,可以通過“-O”參數實現:

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

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

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

這里面涉及兩個curl參數,分別是:

 

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

 

5、通過curl下載文件并開啟斷點續傳

curl也可以實現下載大文件,并實現斷點續傳,先看下面這個例子,如下圖所示:


 

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

在下載一會后,執行ctrl+c,中斷下載,接著再次執行curl下載,看看是否能夠實現斷點續傳功能,如下圖所示:


 

這里使用了三個參數:

-C/--continue-at : 斷點續轉,注意斷點續傳的參數是-C, 要自動續傳的話要使用 "-C -", 否則需要手工指定斷點的字節位置。這個特別注意。

6、對CURL的最大網絡使用帶寬進行限速

與wget類似,curl在下載文件時也會占滿系統帶寬,這樣一來,可能會影響線上業務系統的正常運行,因此,限速也是要做的,可以通過“--limit-rate”選項,實現對curl下載網速限制,來看一個例子:


 

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

7、通過CURL訪問需要授權的頁面

在訪問需要授權的頁面時,可通過-u選項提供用戶名和密碼進行授權

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

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

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

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

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

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

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

看下面這個例子,如下圖所示:


 

要下載一個文件,可以執行如下命令:

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

例如下圖操作:


 

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

將myfile.txt文件上傳到服務器:

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

看下圖操作:


 

curl也可以同時上傳多個文件,方法如下:

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

curl還可以從標準輸入獲取內容保存到服務器指定的文件中,方法如下:

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

9、CURL使用SSL證書訪問HTTPS

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

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

分享到:
標簽:curl
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定