1,curl命令
在Linux中curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
2,基本格式
語法:# curl [option] [url]
參數:
-A/--user-agent <string> 設置用戶代理發送給服務器 -b/--cookie <name=string/file> cookie字符串或文件讀取位置 -c/--cookie-jar <file> 操作結束后把cookie寫入到這個文件中 -C/--continue-at <offset> 斷點續轉 -D/--dump-header <file> 把header信息寫入到該文件中 -e/--referer 來源網址 -f/--fail 連接失敗時不顯示http錯誤 -o/--output 把輸出寫到該文件中 -O/--remote-name 把輸出寫到該文件中,保留遠程文件的文件名 -r/--range <range> 檢索來自HTTP/1.1或FTP服務器字節范圍 -s/--silent 靜音模式。不輸出任何東西 -T/--upload-file <file> 上傳文件 -u/--user <user[:password]> 設置服務器的用戶和密碼 -w/--write-out [format] 什么輸出完成后 -x/--proxy <host[:port]> 在給定的端口上使用HTTP代理 -#/--progress-bar 進度條顯示當前的傳送狀態
3,實例
安裝curl命令:>sudo apt-get install curl
使用curl命令:>curl http://www.baidu.com #訪問的是百度首頁的html源碼。
把內容保存在本地文檔中用o參數:>curl -o baidu.html www.baidu.com
從服務器上下載一張圖,保存到本地:>curl -o 1.jpg http://ocs628urt.bkt.clouddn.com/table_1.1.png #命名為1.jpg,如果-o參數后面沒有指定名字,那就默認為服務器上的名字
訪問一個頁面的html代碼並且顯示response信息:>curl -i http://www.baidu.com #response的基本信息如下:HTTP/1.1 200 OK Server: bfe/1.0.8.18 Date: Wed, 02 Nov 2016 09:38:06 GMT Content-Type: text/html Content-Length: 277 Last-Modified: Mon, 13 Jun 2016 02:50:00 GMT Connection: Keep-Alive ETag: "575e1f58-115" Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Pragma: no-cache Accept-Ranges: bytes
訪問一個url但是只顯示response信息:curl -I(大寫的i) url
顯示和服務器的通信過程:>curl -v www.baidu.com
自己設置請求頭部:>curl --header "Content-Type:application/json" www.baidu.com
支持重定向請求:curl -L url #重定向是什么?從WEB服務器接收一個響應請求的HTTP數據流。該數據流包含狀態碼,狀態碼的值由HTTP協議所決定。這里所說的“HTTP數據流”信息也叫“頭信息(Header)”。頭信息中包括了日期,服務器類型,通常還會有一條“200 OK”信息。如果一切良好,那么網絡服務器就會將“200 OK”信息以及請求頁面發送出去。如果網站在這時候已經建立了重定向,那么服務器就會在頭信息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的響應信息。搜索引擎會根據服務器頭信息中的內容作出決定。
4,參考教程和詳細curl命令信息:
https://blog.csdn.net/quincuntial/article/details/53014650