基於HTTP的功能追加協議

這裏有一份簡潔的前端知識體系等待你查收,看看吧,會有驚喜哦~若是以爲不錯,懇求star哈~前端


HTTP性能瓶頸

HTTP的一些標準會成爲HTTP性能上的瓶頸,好比:git

  • 一條鏈接上只可發送一個請求。
  • 請求只能從客戶端開始,客戶端不能夠接收除響應之外的指令。
  • 請求/響應首部未經壓縮就發送,首部信息越多延遲越大。
  • 發送冗長的首部,每次互相發送相同的首部形成的浪費較多。
  • 可任意選擇數據壓縮格式,非強制壓縮發送。

爲了應對HTTP的性能瓶頸,出現了基於HTTP的功能追加協議。github

Ajax

Ajax(Asynchronous JavaScript and XML,異步JavaScript與XML技術)是一種有效利用JavaScript和DOM(Document Object Model,文檔對象模型)的操做,以達到局部Web頁面替換加載的異步通訊手段。因爲它只更新一部分頁面,響應中傳輸的數據量會所以而減小,這一優勢顯而易見。瀏覽器

Comet的解決方法

Comet會先將響應置於掛起狀態,當服務器端有內容更新時,再返回該響應。所以服務器端一旦有更新,就能夠當即反饋給客戶端。緩存

SPDY

Google在2010年發佈,其開發目標旨在解決HTTP的性能瓶頸,縮短Web頁面的加載時間。SPDY沒有徹底改寫HTTP協議,而是在TCP/IP的應用層與運輸層之間經過新加會話層的形式運做。同時考慮到安全性問題,SPDY規定通訊中使用SSL。安全

使用SPDY後,HTTP協議額外得到的功能:服務器

  • 多路複用(經過單一的TCP鏈接,能夠無限制處理多個HTTP請求。)
  • 賦予請求優先級:能夠給請求逐個分配優先級順序,這樣主要是爲了在發送多個請求時,解決因帶寬低而致使響應變慢的問題。
  • 壓縮HTTP首部:這樣通訊產生的數據包數量和發送的字節數就更少了。
  • 推送功能:支持服務器主動向客戶端推送數據的功能。
  • 服務器提示功能:服務器能夠主動提示客戶端請求所需的資源,因爲在客戶端發現資源以前就能夠獲知資源的存在,所以在資源已緩存等狀況下,能夠避免發送沒必要要的請求。

WebSocket

使用瀏覽器進行全雙工通訊。異步

WebSocket是創建在HTTP基礎上的協議,所以鏈接的發起方還是客戶端,而一旦確立WebSocket通訊鏈接,不論服務器仍是客戶端,任意一方均可直接向對方發送報文。分佈式

WebScoket協議的主要特色:性能

  • 推送功能:支持服務器想客戶端推送數據的推送功能。
  • 減小通訊量:只要創建起WebSocket鏈接,就但願一直保持鏈接狀態,和HTTP相比,不但每次鏈接時的總開銷減小,並且因爲WebSocket的首部信息很小,通訊量也相應減小了。

爲了實現WebSocket通訊,在HTTP鏈接創建以後,須要完成一次「握手」(Handshaking)的步驟。

WebDAV

WebDAV(Web-based Distributed Authoring and Versioning,基於萬維網的分佈式創做和版本控制)是一個可對Web服務器上的內容直接進行文件複製、編輯等操做的分佈式文件系統,它還具有文件建立者管理、文件編輯過程當中禁止其餘用戶內容覆蓋的加鎖功能,以及對文件內容修改的版本控制功能。

相關文章
相關標籤/搜索