curl能夠看作行瀏覽器命令 html
一、開啓gzip請求。 linux
gzip:一是能夠減小存儲空間,二是經過網絡傳輸文件時,能夠減小傳輸的時間 web
tar是打包,不是壓縮,GZIP用在HTTP協議上是一種用來改進WEB服務器程序性能的技術,將網頁內容壓縮後再傳輸。zip就不用說了,主流的壓縮格式。zip最新的壓縮算法仍是很好的,建議仍是用zip格式化,全平臺通用。 算法
curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte二、監控網頁響應時間
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.kklinux.com"三、監控站點可用性
curl -o /dev/null -s -w %{http_code} "http://www.kklinux.com"四、以http1.0協議請求(默認http1.1)
curl -0 shell
讀取網頁 瀏覽器
$ curl http://www.linuxidc.com
保存網頁或下載文件 服務器
經過-o/-O選項保存下載的文件到指定的文件中:
-o:將文件保存爲命令行中指定的文件名的文件中
-O:使用URL中默認的文件名保存文件到本地 cookie
$ curl http://www.linuxidc.com > page.html $ curl -o page.html http://www.linuxidc.com
使用proxy服務器及其端口:-x 網絡
$ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com
使用cookie來記錄session信息 session
$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com
下次訪問繼續用上次cookie,將cookie信息追加到http request信息中去
$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com指定瀏覽器信息
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.yahoo.com另一個服務器端經常使用的限制方法,就是檢查http訪問的referer。好比你先訪問首頁再訪問裏面所指定的下載頁,這第二次訪問的referer地址就是第一次訪問成功後的頁面地址。這樣, 服務器端只要發現對下載頁面某次訪問的referer地址不是首頁的地址,就能夠判定那是個盜連了 。
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.yahoo.com" -o page.html -D cookie0001.txt http://www.yahoo.comcurl下載文件
curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG#按照服務器上的文件名,保存到本地 curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG #下載多個文件 curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG #下載兩個文件夾下的多個文件,若是重名,後者會替換前者 curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG#自定義文件名的下載,#1是變量,指的是{zzh,nick}這部分,第一次取值zzh,第二次取值nick #2表明的變量,則是第二段可變部分---[001-201],取值從001逐一加到201,原來: ~zzh/001.JPG ---> 下載後: 001-zzh.JPG斷點續傳:
curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG分塊下載
curl -r 0-10240 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
curl -r 10241-20480 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
curl -r 20481-40960 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
curl -r 40961- -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3
不過你須要本身把這些破碎的文件合併起來 若是你用UNIX或蘋果,用 cat zhao.part* > zhao.mp3就能夠
上面講的都是http協議的下載,其實ftp也同樣能夠用。
curl -u name:passwd ftp://ip:port/path/file
或者你們熟悉的
curl ftp://name:passwd@ip:port/path/file
上傳文件 option:-T
咱們向ftp傳一個文件:
curl -T localfile -u name:passwd ftp://upload_site:port/path/
向http服務器上傳文件(put method):
curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi這時,使用的協議是HTTP的PUT method ,http提交一個表單,比較經常使用的是POST模式和GET模式,
GET模式不用option,只須要把變量寫在url裏面就能夠了
curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
而POST模式的option則是 -d
curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi