HTTP 請求延遲解決方案
HTTP1.1請求缺陷在當前體現越來越明顯,具體參閱HTTP1.1優點與缺點一章節。
解決隊頭堵塞(Head-of-line blocking)不考慮應用HTTP2協議的話,主要有如下兩種方式:
(1).減少請求數量。
(2).同時多開持久連線。
基於以上兩種解決思路,衍生出以下幾種具體的解決方案:
(1).css sprites技術:
將大量較小的圖片合併成一張大圖,比如一個頁面有大量的瑣碎的背景圖片。
那麼可以將瑣碎背景圖片合併在一張背景圖之上,然後再利用JavaScript或css技術將圖片"切割"使用。
簡單圖示如下:
HTTP1.1裡,下載一張大圖比下載100張小圖快得,但是某些頁面只需要顯示其中幾張小圖時
此方案的缺點就凸顯出來,它必須將整張大圖都從快取裡取出,而不能將最頻繁使用的那些圖片保留在快取裡。
(2).使用內聯圖片:
也就是使用Data:URL方式表示圖片,這樣就避免的一次HTTP請求。
具體參閱Data:URL表示圖片一章節。
(3).檔案拼接:
一個大型的網站,可能會引入大量的JavaScript檔案,這樣需要傳送多次請求。
當前可以通過一些前端工具,將這些JavaScript檔案合併器起來,於是就可以達到減少請求次數的目的。
(4).分片:
它就是將被請求的資源分散在儘可能多的主機上。
一個客戶端最多隻能對同一主機建立的TCP連線是有限制的。
所以我們可以將資源分發很多主機之上,這樣就可以建立更多的TCP連線。
圖示如下:
上述圖片對於分片進行了展示,比較簡單不多介紹。
相關文章
- 💢線上高延遲請求排查
- Flutter中http請求抓包解決方案FlutterHTTP
- 使用OpenTracing跟蹤Go中的HTTP請求延遲GoHTTP
- JS HTTP 請求終極解決方案 - fly.jsJSHTTP
- MySQL主從複製延遲解決方案MySql
- 主從複製延遲推薦解決方案
- mysql同步(複製)延遲的原因及解決方案MySql
- Mysql 非同步複製延遲的原因及解決方案MySql非同步
- 前端http請求跨域問題解決前端HTTP跨域
- axios請求超時解決方案iOS
- Http請求體詳解HTTP
- Ajax 跨域請求 Access to XMLHttpRequest 解決方案跨域XMLHTTP
- HTTP Get,Post請求詳解HTTP
- 設計方案--移動端延遲300ms的原因以及解決方案
- http請求HTTP
- HTTP 請求HTTP
- Android的延遲實現的幾種解決方案以及原理分析Android
- 疫情延遲 題解
- http請求概述HTTP
- HTTP請求方法HTTP
- http請求頭HTTP
- go http請求GoHTTP
- jQuery ajax請求返回401問題解決方案jQuery
- Google 怎麼解決長尾延遲問題Go
- 怎麼解決伺服器延遲問題伺服器
- 【MySQL】常見slave 延遲原因以及解決方法MySql
- http請求頭個欄位解釋HTTP
- 合併HTTP請求vs並行HTTP請求,到底誰更快?HTTP並行
- 合併HTTP請求 vs 並行HTTP請求,到底誰更快?HTTP並行
- 跨域請求?兩種解決方案CORS與JSONP跨域CORSJSON
- Cookie 與 HTTP請求CookieHTTP
- Jsoup http請求JSHTTP
- Android Http請求AndroidHTTP
- HTTP請求報文HTTP
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- 基於 HTTP 請求攔截,快速解決跨域和代理 MockHTTP跨域Mock
- 【MySQL】六、常見slave 延遲原因以及解決方法MySql
- 《RabbitMQ》| 解決訊息延遲和堆積問題MQ