什么是延遲?
延遲是用戶操作與結果響應之間經過的時間。網絡延遲特指網絡內部或 Internet 上發(fā)生的延遲。實際上,延遲是指用戶操作與網站或應用程序對此操作做出響應之間的時間,例如,用戶點擊網頁鏈接到瀏覽器顯示該網頁之間的延遲時間。
盡管 Internet 上的數(shù)據(jù)以光速傳播,但由于 Internet 基礎設施設備造成的距離和延遲的影響,延遲永遠無法完全消除。但延遲可以并且應該最小化。大量的延遲會導致網站性能下降, 對 SEO 產生負面影響 ,并可能導致用戶完全離開網站或應用程序。
什么導致互聯(lián)網延遲?
網絡延遲的主要原因之一是距離,特別是發(fā)出請求的客戶端設備與響應這些請求的服務器之間的距離。如果網站托管在俄亥俄州哥倫布市的數(shù)據(jù)中心,它將在 10 到 15 毫秒之內迅速響應辛辛那提(約 100 英里外)用戶的請求。而洛杉磯(約 2200 英里外)的用戶將面臨接近 50 毫秒的更長延遲。
增加幾毫秒似乎并不算多,但客戶端和服務器建立連接所需的所有來回通信、頁面的總大小和加載時間,以及數(shù)據(jù)沿路經過的網絡設備,都會導致延遲加劇??蛻舳税l(fā)出請求后,響應到達客戶端設備所花費的時間量稱為往返時間(RTT) 。
穿越 Internet 的數(shù)據(jù)通常不僅要跨越一個網絡,還要跨越多個網絡。HTTP 響應需要通過的網絡越多,造成延遲的機會就越多。例如,當數(shù)據(jù)包跨越網絡時,它們會通過 Internet 交換點(IXP)。在那里,路由器必須處理和路由數(shù)據(jù)包,有時路由器可能需要將它們分解為較小的數(shù)據(jù)包,所有這些都會導致 RTT 增加幾毫秒。
此外,網頁的構建方式也可能導致性能降低。具有大量內容或從多個第三方加載內容的網頁可能運行緩慢,因為瀏覽器必須下載大文件才能顯示它們。用戶可能就在其要訪問的網站的托管數(shù)據(jù)中心旁邊,但是,如果網站包含多張高清圖片(舉例來說),加載圖像時仍然可能會有一些延遲。
網絡延遲、吞吐量和帶寬
延遲、帶寬和吞吐量都相互關聯(lián),但是它們衡量的是不同的事物。帶寬是在任何給定時間可以通過網絡的最大數(shù)據(jù)量。吞吐量是給定時間段內實際通過的平均數(shù)據(jù)量。吞吐量不一定等于帶寬,因為它會受到延遲的影響。延遲是時間的度量,而不是某時段內下載的數(shù)據(jù)量。
如何減少延遲?
使用 CDN (內容交付網絡)是減少延遲的重要一步。CDN 緩存靜態(tài)內容,從而大大減少 RTT。(使用 Cloudflare CDN,還可以通過 Cloudflare Workers 緩存動態(tài)內容。)CDN 服務器分布在多個位置,因此內容存儲在距離最終用戶更近的位置,無需傳輸很遠的距離即可到達用戶。這意味著加載網頁將花費更少的時間,從而提高網站的速度和性能。
Web 開發(fā)人員還可以最大程度地減少渲染阻塞資源的數(shù)量(例如,最后加載 JavaScript),優(yōu)化圖像以加快加載速度,并盡可能減小文件大小。代碼極簡化是減少 JavaScript 和 CSS 文件大小的一種方法。
通過策略性地首先加載某些資產,可以減少感知到的延遲??梢詫⒕W頁配置為首先加載頁面的上半版版面區(qū)域,以便用戶在頁面加載完之前就可以開始與頁面進行交互(上半版版面指用戶向下滾動之前在瀏覽器窗口中顯示的內容)。網頁也可以使用延遲加載技術,僅在需要時加載資產。這些方法實際上并沒有改善網絡延遲,但是確實改善了用戶對頁面速度的感知。
用戶如何解決延遲問題?
有時,網絡延遲是由用戶端而非服務器端的問題引起的。盡管帶寬不能保證網站性能,但如果持續(xù)存在延遲問題,消費者始終可以選擇購買更多帶寬。切換到以太網而不是 WiFi 將使 Internet 連接更加穩(wěn)定,并且通常會提高 Internet 速度。用戶還應定期應用固件更新并在必要時完全更換設備,以確保其互聯(lián)網設備最新。