Pages - Menu

2021年11月27日 星期六

[Linux] Curl 筆記

前言

這個應該是很基本的網路通訊架構,
但是我一點都不知道XDDDDDDD
K完書,又查了點資料才有點概念。
但如果跑去查封包....
應該還是有點懸

正文

最近在K網路架構,有些東西有點概念了。

此時來看這張圖終於瞭解一點。



ref. A Question of Timing

先來看這張圖,
有幾個關鍵字縮寫必須要先知道
SYN : 同步序列號
ACK : 要求回應
FIN :結束
SEQ : 序列號

這邊簡單講,要更詳細的內容,建議去看一下TCP 三向交握 (Three-way Handshake)

在這張圖裡面沒有SEQ這個,因為沒畫出來,在SYN的時候,就會包含SEQ在裡面了。

流程簡單說是這樣的,TCP是有順序性的。

  1. clinet 詢問DNS server ,網域與IP的對應
  2. client 發出請求
  3. server 回應
  4. client 回應,我知道你回了。
  5. server 開始建立ssl憑證
  6. client 發出內容請求
  7. server 回應內容
  8. 結束

好了,再來才是講curl ,
先建立一個 txt檔,

\n
 # DNS 解析時間,也就是查詢到 IP 的時間\n
 time_namelookup: %{time_namelookup}\n
 # TCP 連線時間,就是 TCP 三項交握的時間\n
 time_connect: %{time_connect}\n
 # SSL 連線的時間\n
 time_appconnect: %{time_appconnect}\n
 # 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間\n
 time_redirect: %{time_redirect}\n
 # 從開始到響應開始的時間\n
 time_pretransfer: %{time_pretransfer}\n
 # 從開始到響應開始傳輸的時間\n
 time_starttransfer: %{time_starttransfer}\n
 ----------\n
 # 整體時間\n
 time_total: %{time_total}\n
\n

curl -w @curl-format.txt -o /dev/null https://daimom3020.blogspot.com/

這邊要注意, @curl-format.txt 這邊不能使用路徑方式去找檔案。如果怕改天找不到檔案的話,
curl 可以改成下面的指令

curl -o /dev/null https://daimom3020.blogspot.com/ -w "                   
 # DNS 解析時間,也就是查詢到 IP 的時間
 time_namelookup: %{time_namelookup}
 # TCP 連線時間,就是 TCP 三項交握的時間
 time_connect: %{time_connect}
 # SSL 連線的時間
 time_appconnect: %{time_appconnect}
 # 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間
 time_redirect: %{time_redirect}
 # 從開始到響應開始的時間
 time_pretransfer: %{time_pretransfer}
 # 從開始到響應開始傳輸的時間
 time_starttransfer: %{time_starttransfer}
 ----------
 # 整體時間
 time_total: %{time_total}
\n"

搭配上方的圖片來看,
這邊顯示的時間是累加的,如果要算出區間的時間,
需要自行做相減。

例如,
要知道server處理資料的時間多長,
可使用 time_starttransfer - time_pretransfer ,
就可得知server處理資料的時間。

ref.

沒有留言:

張貼留言