curl用於和服務端交互,而不用經過網頁界面認為操作,常用於判定指定url的服務是否能正常調用。
curl的基本用法:
1.判定指定url連通性,curl -v
https://www.baidu.com
2.調用接口,curl -H "Content-Type:application/json" -X POST -d '{"operator": "killianxu","place_type":"tt"}'
http://www.killianxu.cn/api/get_place_list

可在網頁
https://curl.trillworks.com/,將curl調用轉換為python代碼
3.判定https的url是否連通,並獲取其它交互的詳細信息,包括tcp連接延時,SSL握手延時等,curl -m 2 -k -sS -v -w '%{time_connect}\n%{time_total}\n%{http_code}\n%{time_appconnect}\n'
https://118.24.225.168:22 -H Host:
1557367664.cq.1253702919.clb.myqcloud.com --trace-time
-m,--max-time <seconds>整個交互完成的超時時間。
-k ,--insecure,建立不安全連接。用於https協議,SSL握手過程,從服務端獲取的證書,不進行驗證。
-sS,請求發生錯誤時,顯示錯誤信息,比如這里的curl: (28) Operation timed out after 2001 milliseconds with 0 out of -1 bytes received。
-v顯示請求的詳細過程,用於調試的目的,如果不加-v,顯示如下:
-w,--write-out <format>定義請求完成時要顯示的信息。這里的format為'%{time_connect}\n%{time_total}\n%{http_code}\n%{time_appconnect}\n',time_connect為tcp連接時間,time_appconnect為SSL握手時間,time_total是總時間,http_code是狀態碼(000有很多原因,包括tcp連接延時、ssl握手延時、操作超時等,這里可通過輸出的錯誤信息查看原因),更多可顯示的其他信息可man curl查看。
-H,--header <header>定義頭部信息
--trace-time,顯示curl過程的時間戳,用於查看時間耗在哪步。
當進行大量curl請求時,會出現SSL握手延時整體變大的情況,跟curl版本有關系。
NSS版本的curl SSL握手第一步時間比較長,可能和實現方式有關,可換為OpenSSL版本。
OpenSS版本curl安裝如下(可安裝在任意路徑,不會覆蓋已有版本):
2.tar -jxvf
curl-7.65.3.tar.bz2
3. ./configure
4.make