linux curl命令詳解

2021-07-16 07:06:34 字數 1924 閱讀 7166

curl是乙個利用url語法在命令列方式下工作的檔案傳輸工具。本文介紹了它的簡單用法。

1、獲得一張頁面

2、表單(form)的獲取

在web頁面設計中,form是很重要的元素。form通常用來收集並向**提交資訊。提交資訊的方法有兩種,get方法和post方法。先討論get方法,例如在頁面中有這樣一段:

那麼瀏覽器上會出現乙個文字框和乙個標為「ok」的按鈕。按下這個按鈕,表單就用get方法向伺服器提交文字框的資料。例如原始頁面是在 www.hotmail.com/when/birth.html看到的,然後您在文字框中輸入1905,然後按ok按鈕,那麼瀏覽器的url現在應該 是:「www.hotmail.com/when/junk.cgi?birthyear=1905&press=ok」

對於這種網頁,curl可以直接處理,例如想獲取上面的網頁,只要輸入:

就可以了。

表單用來提交資訊的第二種方法叫做post方法,post方法和get方法的區別在於get方法使用的時候,瀏覽器中會產生目標url,而post不會。類似get,這裡有乙個網頁:

瀏覽器上也會出現乙個文字框和乙個標為「ok」的按鈕。按下這個按鈕,表單用post方法向伺服器提交資料。這時的url是看不到的,因此需要使用特殊的方法來抓取這個頁面:

這個命令就可以做到。

2023年年末,rfc 1867定義了一種新的post方法,用來上傳檔案。主要用於把本地檔案上傳到伺服器。此時頁面是這樣寫的:

對於這種頁面,curl的用法不同:

curl -f upload=@localfilename -f press=ok url

這個命令的實質是將本地的檔案用post上傳到伺服器。有關post還有不少用法,使用者可以自己摸索。

3、使用put方法。

http協議檔案上傳的標準方法是使用put,此時curl命令使用-t引數:

4、有關認證。

5、引用。

6、指定使用者客戶端。

7、cookies

cookie是伺服器經常使用的一種記憶客戶資訊的方法。如果cookie被記錄在了檔案中,那麼使用命令:

curl -b stored_cookies_in_file www.cookiesite.com

curl可以根據舊的cookie寫出新cookie併發送到**:

curl -b cookies.txt -c newcookies.txt www.cookiesite.com

8、加密的http——https

如果是通過openssl加密的https協議傳輸的網頁,curl可以直接訪問:

curl

9、http認證。

如果是採用證書認證的http位址,證書在本地,那麼curl這樣使用:

curl -e mycert.pem

參考讀物和注意事項:curl非常博大,使用者要想使用好這個工具,除了詳細學習引數之外,還需要深刻理解http的各種協議與url的各個語法。這裡推薦幾個讀物:

rfc 2616 http協議語法的定義。

rfc 2396 url語法的定義。

rfc 2109 cookie是怎樣工作的。

rfc 1867 http如何post,以及post的格式

curl是免費軟體,ibm公司對curl不提供技術支援。

via

Linux curl命令詳解

b cookie cookie字串或檔案讀取位置 c cookie jar 操作結束後把cookie寫入到這個檔案中 c continue at 斷點續轉 d dump header 把header資訊寫入到該檔案中 e referer f fail 連線失敗時不顯示http錯誤 o output ...

Linux curl命令引數詳解

curl 一 linux curl用法舉例 1.linux curl抓取網頁 如發現亂碼,可以使用iconv 轉碼 fgb2312 iconv的用法請參閱 在linux unix系統下用iconv命令處理文字檔案中文亂碼問題 2.linux curl使用 linux curl使用http 抓取頁面 ...

Linux curl命令引數詳解

一 linux curl用法舉例 1.linux curl抓取網頁 如發現亂碼,可以使用iconv轉碼 fgb2312 2.linux curl使用 linux curl使用http 抓取頁面 使用socks 抓取頁面 伺服器位址可以從爬蟲 上獲取。3.linux curl處理cookies 接收c...