curl擷取網站的回應時間

來源:互聯網
上載者:User

標籤:curl

curl擷取網站的回應時間




0.問題


總有人反饋說開啟某個頁面比較慢,

但是他們並不清楚到底慢在哪裡。

同樣的問題,

在我們訪問外部業務的介面時,

往往也是感覺很慢,

但就是不清楚慢在哪裡。




1.分析


當我們開啟一個網頁,

對於一個不需要考慮技術的人,

想象的畫面應該是,

我們通過地址欄問瀏覽器要個東西,

然後瀏覽器通過我們提供的地址去對應的伺服器取對應的檔案,

然後根據伺服器的回應將內容顯示給我們。


從一個營運人員的視角,

可能就不能這麼簡單粗暴地想象了,

否則可能永遠也無法確認問題究竟出現在哪裡了。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/95/A2/wKiom1kX67SyNSqHAAKGkcagTis841.png-wh_500x0-wm_3-wmp_4-s_4264917737.png" title="1488804830_17_w960_h720.png" alt="wKiom1kX67SyNSqHAAKGkcagTis841.png-wh_50" />



簡單點來概括下,

1.當我們開啟瀏覽器,在地址欄輸入www.qq.com時,

瀏覽器首先會根據瀏覽器緩衝,電腦緩衝,電腦hosts檔案,DNS服務來解析www.qq.com對應的網路地址是多少,這個過程會根據解析地方的不同而耗時不同。


使用瀏覽器緩衝和電腦緩衝,

返回的結果是最快的,但是可能不是最新的,也可能是錯誤的。

通過hosts檔案解析網域名稱的優先順序是高於DNS服務的解析的,

我們也可以在hosts中修改某些網域名稱的解析結果。


2.瀏覽器獲得網域名稱相應IP後,開始與伺服器進行三向交握進行串連。

3.瀏覽器與伺服器建立串連後向其發起服務要求

4.伺服器內部處理完請求後,將處理結果發送給瀏覽器

5.瀏覽器解析伺服器發送的結果,然後展示給使用者


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/95/A2/wKioL1kX68iS9lg3AAOA_bEGVE0404.png-wh_500x0-wm_3-wmp_4-s_2826386342.png" title="1488807484_30_w960_h720.png" alt="wKioL1kX68iS9lg3AAOA_bEGVE0404.png-wh_50" />


上面簡單描述了瀏覽器在與伺服器進行服務要求的過程,

其中任何一個環節耗時過久都將影響到使用者訪問網站的速度。



2.Curl擷取相關資料


使用cur  -w/--write-out l擷取相關資料


幾個比較關鍵的參數:


url_effective 最後擷取的URL。

http_code 上一次HTTP(S)或FTP(S)操作返回的響應碼。在7.18.2版加入的response_code顯示同樣的資訊。

http_connect 在最後一次對cURL的CONNECT請求的響應(從代理)中發現的數值代碼。 (在7.12.4版加入)

time_total 全部操作耗費的時間,單位為秒。精確到毫秒。

time_namelookup 從開始到網域名稱解析完成耗費的時間,單位為秒。

time_connect TCP串連遠程主機(或Proxy 伺服器)所耗時間,單位為秒。

time_appconnect SSL/SSH/等與遠程主機串連/握手完成花費的時間,單位為秒。(在7.19.0 版加入)

time_pretransfer 從開始到檔案將要傳輸前花費的時間,單位為秒。包括指定的協議所有預傳輸命令和negotiations。

time_redirect 所有重新導向步驟的時間,包網域名稱解析、串連、預傳輸和最後事務開始前的傳輸,單位為秒。time_redirect顯示多重重新導向的完整執行時間。(在7.12.3版加入 )

time_starttransfer  從開始到第一個位元組將被傳輸前耗費的時間,單位為秒。

這包括time_pretransfer和伺服器需要的運算結果的時間。

size_download下載的總位元組數。

size_upload上傳的總位元組數。

size_header 下載的header的總位元組數。

size_request 發送的HTTP請求的總位元組數。

speed_download curl成功下載的平均下載速度。

speed_upload curl成功上傳的平均上傳速度。





3.擷取請求的耗時資訊



針對特定的請求,通過curl可以擷取到各個環節的耗時情況,

比如網域名稱解析的耗時,建立串連的耗時,服務端處理的耗時,總的耗時。



國內某合作方素材


curl -o /dev/null -s -w "http_code: %{http_code}\nhttp_connect:%{http_connect}\ncontent_type:%{content_type}\ntime_dns:%{time_namelookup}\ntime_redirect:%{time_redirect}\ntime_pretransfer:%{time_pretransfer}\ntime_connect:%{time_connect}\ntime_starttransfer:%{time_starttransfer}\ntime_total:%{time_total}:\nspeed_download:%{speed_download}\n " "http://di.adsame.com/flv_test/20161107143341_231.jpg";


http_code: 200

http_connect:000

content_type:image/jpeg

time_dns:0.005

time_redirect:0.000

time_pretransfer:0.013

time_connect:0.013

time_starttransfer:0.021

time_total:0.029:

speed_download:441815.000


蘋果官網圖片素材


curl -o /dev/null -s -w "http_code: %{http_code}\nhttp_connect:%{http_connect}\ncontent_type:%{content_type}\ntime_dns:%{time_namelookup}\ntime_redirect:%{time_redirect}\ntime_pretransfer:%{time_pretransfer}\ntime_connect:%{time_connect}\ntime_starttransfer:%{time_starttransfer}\ntime_total:%{time_total}:\nspeed_download:%{speed_download}\n " "http://images.apple.com/v/iphone-7/d/images/overview/design_hero_large.jpg";


http_code: 200

http_connect:000

content_type:image/jpeg

time_dns:0.449

time_redirect:0.000

time_pretransfer:0.456

time_connect:0.456

time_starttransfer:0.465

time_total:0.493:

speed_download:419293.000

 


微博短網域名稱連結


curl -o /dev/null -s -w "http_code: %{http_code}\nhttp_connect:%{http_connect}\ncontent_type:%{content_type}\ntime_dns:%{time_namelookup}\ntime_redirect:%{time_redirect}\ntime_pretransfer:%{time_pretransfer}\ntime_connect:%{time_connect}\ntime_starttransfer:%{time_starttransfer}\ntime_total:%{time_total}:\nspeed_download:%{speed_download}\n "  -L "http://t.cn/Rip1YJA"


http_code: 200

http_connect:000

content_type:text/html;charset=GBK

time_dns:0.210

time_redirect:0.079

time_pretransfer:0.240

time_connect:0.240

time_starttransfer:0.290

time_total:0.369:

speed_download:4349.000

 


4.其他


目前只能用curl擷取到指定請求的靜態頁面,還是無法像瀏覽器那樣將頁面中的連結都請求到,

這樣就無法真實反應瀏覽器中訪問頁面的耗時情況。

不過當使用者反映訪問某個頁面慢的時候,

通過curl訪問對應的地址基本上可以確定,

單個請求主要耗時在哪裡。


本文出自 “營運者說:從菜鳥到老鳥” 部落格,請務必保留此出處http://liuqunying.blog.51cto.com/3984207/1925464

curl擷取網站的回應時間

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.