spring5入門(十二):Aspect註解使用、配置檔案使用
阿新 • • 發佈:2022-04-19
一、簡介
curl是一個命令列訪問URL的工具,支援檔案的上傳和下載,作用是發出網路請求,然後得到和提取資料,顯示在"標準輸出"(stdout)上面。可以用它構造http request報文,且可以解析伺服器返回的http response,額外還支援cookie特性,可以用curl完成web瀏覽器的
基本功能,curl還支援HTTPS/FTP/FTPS/TELNET/LDAP等協議。
二、引數
引數 | 說明 |
不加引數 |
正常訪問,返回html資訊(get請求方式)
|
-I |
只顯示http response 的頭資訊
|
-i |
輸出時包括protocol頭資訊
|
-v |
輸出通訊的整個過程,多用於除錯 |
--tarce |
也可用於除錯,還會輸出原始的二進位制資料
|
-L |
會讓http請求跟隨服務的重定向(curl 預設不跟隨重定向)
|
-s |
靜默模式,不輸出錯誤跟進度資訊
|
-S |
只輸出錯誤資訊,通常與-s一起使用
|
-o |
將伺服器的迴應儲存成檔案到當前目錄下,可加路徑儲存(相當於wget命令)
|
-O |
將伺服器迴應儲存成檔案,並將 URL 的最後部分當作檔名儲存當前目錄(加http/https,url要精確到某個檔案)
|
-w |
用於在一次完整且成功的操作後輸出指定格式的內容到標準輸出,後接變數(後文列出變數)
|
示例 |
curl -o /dev/null -s -w %{http_code} www.nginx.com 直接獲取 HTTP 狀態碼(可用於指令碼判斷網站是否正常) |
-d |
用於傳送 POST 請求的資料體(即傳送資料)
|
--data-urlencode |
等同於 -d 傳送 POST 請求的資料體,區別在於會自動將傳送的資料進行 URL 編碼
|
-u |
設定伺服器認證的使用者名稱和密碼
|
引數 |
說明 |
示例 |
-x |
指定proxy伺服器以及其埠,不支援https |
curl -x 127.0.0.1:8080 http://www.baidu.com |
--resolve |
指定域名解析的ip,支援https,支援萬用字元* |
curl https://www.nginx.com --resolve 148.23.23.*:443 |
-X |
指定HTTP請求的方法 |
curl -X POST https://www.baidu.com |
-A |
指定User-Agent |
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36" https://www.baidu.com |
-H |
指定請求頭 |
curl -H "" https://www.baidu.com |
-k | 允許curl使用非安全的ssl連線並且傳輸資料(證書不受信) | |
-G | 構造URL的查詢字串,如省略,會發送post請求 | curl -G -d 'a=test' -d 'count=20' https://nginx.com/search 相當於訪問:https://nginx.com/search?a=test&count=20 |
三、-w引數變數
引數 | 說明 |
url_effective |
最終獲取的url地址,尤其是當你指定給curl的地址存在301跳轉,且通過-L繼續追蹤的情形
|
http_code
|
http狀態碼
|
time_total
|
總時間,按秒計。精確到小數點後三位
|
time_namelookup
|
DNS解析時間,從請求開始到DNS解析完畢所用時間
|
time_connect
|
連線時間,從開始到建立TCP連線完成所用時間,包括前邊DNS解析時間,如果需要單純的得到連線時間,用這個time_connect時間減去前邊time_namelookup時間
|
time_appconnect
|
連線建立完成時間,如SSL/SSH等建立連線或者完成三次握手時間
|
time_pretransfer
|
從開始到準備傳輸的時間
|
time_redirect
|
重定向時間,包括到最後一次傳輸前的幾次重定向的DNS解析,連線,預傳輸,傳輸時間
|
time_starttransfer
|
開始傳輸時間。在發出請求之後,Web 伺服器返回資料的第一個位元組所用的時間
|
size_download
|
下載大小
|
size_upload
|
上傳大小
|
size_request
|
請求的大小
|
speed_download
|
下載速度,單位-位元組每秒
|
speed_upload
|
上傳速度,單位-位元組每秒
|
num_connects
|
最近的的一次傳輸中建立的連線數目
|
num_redirects
|
在請求中跳轉的次數
|
ftp_entry_path
|
當連線到遠端的ftp伺服器時的初始路徑
|
ssl_verify_result
|
ssl認證結果,返回0表示認證成功
|
四、
#測試網路 curl -Lo /dev/null -skw "time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfer} s\ntime_starttransfer: %{time_starttransfer} s\ntime_redirect: %{time_redirect} s\nspeed_download: %{speed_download} B/s\ntime_total: %{time_total} s\n\n" http://url -d "{1:1}"