目標是解決http的性能瓶頸,縮短web頁面的加載時間web
使用HTTP協議必須從客戶端到服務器進行確認,若服務器沒有更新就產生徒勞的通訊瀏覽器
HTTP的瓶頸:緩存
一條鏈接上只能夠發送一個請求服務器
請求只能從客戶端開始,客戶端不能夠接收除響應之外的指令websocket
請求/響應首部未經壓縮就發送,首部信息越多延遲越大異步
發送冗長的首部。每次互相發送相同的首部形成的浪費較多socket
可任意選擇數據壓縮格式。非強制壓縮發送分佈式
Ajax的解決方法性能
Ajax是一種有效利用js和DOM的操做,以達到局部Web頁面替換加載的異步通訊手段。網站
優勢:它只更新局部頁面,傳輸的數據量變小
缺點:實時獲取內容會產生大量請求
HTTP協議自己的問題還存在
Comet的解決方法
服務器接收請求後,Comet會先將響應掛起。一旦但服務器有更新,當即給客戶端響應。
優勢:能夠作到實時更新
缺點:爲了保留響應,一次鏈接的持續時間變長了,會消耗資源
HTTP協議自己的問題還存在
SPDY在TCP/IP的應用層與傳輸層之間加入的會話層(SPDY通訊使用SSL)
優勢:
(1) 多路複用流:單一的TCP能夠處理多個http請求。TCP的處理效率提升。
(2)賦予請求優先級:給請求逐個分配優先級順序,解決因帶寬低致使響應變慢的問題。
(3)壓縮HTTP首部:壓縮請求和響應的首部。通訊的數據包數量和發送的字節變小。
(4)推送功能:支持服務器主動向客戶端推送數據。沒必要等待客戶端請求。
(5)服務器提示功能:主動提示客戶端請求所需的資源。若資源已緩存可避免發送請求。
缺點:
(1)SPDY是將單個IP地址的通訊多路複用,若網站使用多個域名下的資源,改善比較差。
(2)不能改變web自己的速度
WebSocket逐步成爲獨立的協議標準。
WebSocket只要解決Ajax和Comet裏XMLHttpRequest附帶的缺陷所引發的問題
一旦web服務器和客戶端之間創建起WebSocket協議的通訊鏈接,(不管客戶端仍是服務器均可以直接發送報文)
推送功能:支持服務器向客戶端推送數據
減小通訊量:一致保存鏈接狀態,總開銷還減小。(緣由,首部信息少)
須要用到HTTP的Upgrade首部字段告訴服務器使用WebSocket通訊。
Sec-WebSockey-Key:記錄握手必不可少的鍵值
Sec-WebSockey-Key:記錄使用的子協議
對於以前的請求,返回狀態碼101 Switching Protocols 的響應
JS可調用 the WebSocket API內提供的WebSocket程序接口,以實現WebSocket協議下全雙工通訊,
HTTP/2.0特色:
改善用戶使用Web時的速度體驗
HTTP2.0性能加強的核心:
二進制分幀
HTTP 2.0最大的特色:
不會改動HTTP 的語義,HTTP 方法、狀態碼、URI 及首部字段,等等這些核心概念上一如往常,卻能致力於突破上一代標準的性能限制,改進傳輸性能,實現低延遲和高吞吐量
HTTP 2.0是在應用層(HTTP2.0)和傳輸層(TCP or UDP)之間增長一個二進制分幀層
(1)SPDY
(2)HTTP Speed+Mobility (微軟起草,用於改善並提升移動端通訊時的通訊速度和性能的標準,它創建在Google提出的SPDY與WebSocket的基礎之上)
(3)NetWork-Friendly HTTP Upgrade (主要在移動端通訊時改善HTTP性能的標準)
(1)HTTP/2使用二進制數據流,HTTP/1.x使用效率較低的文本數據。
(2)HTTP/2支持首部壓縮
在請求後,返回的數據包括描述信息:來源,類型,長度,能夠緩存的時間等。而且在HTTP/2中進行了壓縮。
(3)HTTP/2使用管道Pipelining傳輸(雙向字節流)
在HTTP1.1中服務器必須與接收請求,以相同的順序進行收發響應。HTTP/2支持異步,能夠更快的處理響應。
(4)HTTP/2支持多路複用
在HTTP1.1裏,在任什麼時候間只能在TCP鏈接處理一個請求,瀏覽器同時請求幾個鏈接時,若是是大或慢的資源會致使文件下載延遲。HTTP/2能夠容許在同一時間的單個鏈接發出多個請求和接收多個響應。
(5)HTTP/2支持請求優先級
(6)HTTP/2支持服務器推送
WebDAV:對web服務器的內容直接進行文件複製、編輯、加鎖等操做的分佈式系統
集合:是一種統一管理多個資源的概念。以集合爲單位可進行各類操做。也可實現相似集合的集合這樣的疊加。
資源:把文件或集合稱爲資源
屬性:定義資源的屬性。定義以「名稱=值」的格式執行。
鎖:把文件設置成沒法編輯狀態。多我的同時編輯時,可防止在同一時間進行內容寫入。
目的:實現遠程文件管理
propfind:獲取屬性
proppatch:修改屬性
mkcol:建立集合
copy:複製資源及屬性
move:移動資源
lock:資源加鎖
unlock:資源解鎖
102 Processing:可正常處理請求,但目前是處理中狀態
207 Multi-Status:存在多種狀態
422 Unprocessible Entily:格式正確,內容有誤
424 Failed Dependency:處理與某請求關聯的請求失敗,所以再也不維持依賴關係
507 Insufficient Storage:保存空間不足
一、防火牆能夠禁止非指定協議和端口
二、web的使用率最高(HTTP的端口80、HTTPS的端口443)
三、http導入簡單
四、http服務器、客戶端已成規模