- -w 檢測網站回應速度
- 一行指令
curl -o /dev/null -s -w "%{time_namelookup},%{time_connect},%{time_starttransfer},%{time_total}" http://www.google.com
- Script
$ vim curl-speed.sh
#!/bin/bash
URL=$1
curl -o /dev/null -s -w \
"DNS Resolve: %{time_namelookup}\n\
Client -> Server: %{time_connect}\n\
Server Respon: %{time_starttransfer}\n\
Total time: %{time_total}\n" \
"${URL}"
$ ./curl-speed.sh www.google.com
Client -> Server: 0.040
Server Respon: 0.069
Total time: 0.069
time_namelookup = DNS 解析時間
time_connect = 建立伺服器 TCP 所花的時間
time_starttransfer = 伺服器 return 的第一個字節
time_total = 整個請求的花費時間
- -o 將網頁內容輸出 file
$ curl -o index.html http://www.google.com
- -x 指令 http 使用 proxy server
$ curl -x 192.168.30.30:8080 http://www.google.com
- -D 把 http response cookie 輸出 file
$ curl -D cookie.txt http://www.google.com
- -A 自定義偽裝 user-agent
$ curl -A "TEST" http://www.google.com
- -e 設定 referrer,簡單來說就是偽裝訪問頁面的來路URL
$ curl -e http://shazi.info http://www.google.com
這樣 www.google.com 的 referrer 就會誤以為是從 http://shazi.info 連過來的。
- -O 下載檔案,用 -c 來續傳
$ curl -O http://fileserver/file1.zip
$ curl -O -c http://fileserver/file1.zip
- -r 分段下載
#!bin/bash
FILE="file1.zip"
URL="http://fileserver/${FILE}"
curl -r 0-10240 -o "${FILE}.part1" ${URL} &\
curl -r 10240-20480 -o "${FILE}.part2" ${URL} &\
curl -r 20480-40960 -o "${FILE}.part3" ${URL} &\
curl -r 40960- -o "${FILE}.part4" ${URL}
合併
$ cat file1.zip.part* > file1.zip
- -u 指定登入使用者
$ curl -u user:passwd ftp://fileserver
- -T 上傳檔案,使用 HTTP put method 協議
$ curl -T file1.zip -u user:passwd ftp://fileserver
or
$ curl -T file1.zip http://fileserver
- 使用 GET mode,直接在 url 加入參數
$ curl http://www.google.com/login.php?user=scott&passwd=0000
- -d 使用 POST mode
$ curl -d "user=scott&password=0000" http://www.google.com
- -E HTTPS 使用憑證
$ curl -E ssl.pem https://www.google.com
- 使用 dict 查詢字典
$ curl dict://server/d:computer
Orignal From: 萬用的 curl 模擬各種訪問狀況、檢測訪問速度
沒有留言:
張貼留言