在學習http、https、http/2之前,先整理一下OSI網路模型、TCP/IP協定、TCP和UDP等內容。
OSI是一個開放性的通訊系統互連參考模型,是一個由國際標準化組織提出的協定規範。模型由上往下是:
應用層(OSI 的應用層協定包括檔案的傳輸、存取及管理協定(FTAM) ,以及檔案虛擬終端協定(VIP)和公用管理系統資訊(CMIP))
表示層(表示層供多種功能用於應用層資料編碼和轉換,以確保以一個系統應用層發送的資訊可以被另一個系統應用層識別)
會話層(會話層建立、管理和終止表示層與實體之間的通訊會話)
傳輸層(傳輸層向高層提供可靠的端對端的網路資料流服務)
#網路層(網路層負責在來源和終點之間建立連接)
資料鏈結層(資料鏈結層透過實體網路連結供資料傳輸。不同的資料鏈結層定義了不同的網路和協定特徵,其中包括實體編址、網路拓樸結構、錯誤校驗、資料幀序列以及流控)
#物理層(物理層負責最後將資訊編碼成電流脈衝或其它訊號用於網路傳輸)
TCP/IP協定整合了TCP和IP等多種協議,處理電腦與網路之間的傳輸,它參考並整合了OSI網路模型。常見的的TCP/IP協定分為四層,由上往下是:
應用層(應用層對應於OSI 七層參考模型的應用層與表示層)
傳輸層(傳輸層對應於OSI 七層參考模型的傳輸層,它供兩種端對端的通訊服務)
網間層(本層包含IP 協定、RIP 協定(Routing Information Protocol,路由資訊協定),負責資料的包裝、定址與路由。同時也包含網際網路控制封包協定(Internet Control Message Protocol,ICMP)用來供網路診斷資訊)
網路介面層(網路介面層包含用於協作IP資料在已有網路媒體上傳輸的協定)
TCP(Transmission Control Protocol、傳輸控制協定)
是一種連接導向的、可靠的、基於位元組流的傳輸層通訊協定。 UDP(User Datagram Protocol、用戶資料報協定)是一個簡單的資料封包導向的傳輸層協定。他們負責OSI網路模型中傳輸層的處理。
#TCP | UDP |
---|---|
面向連線(三次握手、四次揮手) | 無連線 |
資源佔用較多 | #資源佔用減少 |
保證資料順序 | #資料無順序 |
傳輸速度較慢 | #傳輸速度快 |
保證資料正確性 | 容易丟包 |
串流模式 | 封包模式 |
http(超文本傳輸協定)是一種常用於應用層的協議,它是基於文字傳輸內容。
get、post、head、put、delete、trace、options、connect。
請求行
#請求頭
空白行
其他訊息
1xx訊息-請求已被伺服器接收,繼續處理
2xx成功-請求已成功被伺服器接收、理解、並接受
3xx重定向-需要後續操作才能完成這項請求
4xx請求錯誤-請求含有詞法錯誤或無法被執行
5xx伺服器錯誤-伺服器在處理某個正確請求時發生錯誤
常見狀態碼200(請求成功)、302(重定向到些的url)、304(讀取快取)、404(找不到檔案或目錄)、405(請求指定的方法錯誤)、500(伺服器錯誤)、502(伺服器無效回應)
https可稱為http安全版,主要是http下增加了SSL(安全通訊端層)或TSL(傳輸層安全性),在SSL或TSL在傳輸層對資料進行了加密處理。
1、保證傳輸資訊安全(經過加密)
2、需要申請憑證
3、可以防止業者劫持
4、由於增加了安全層,所以存取速度有所減慢
#5、http網站可以訪問https鏈接,https網站無法訪問http鏈接(除了部分支援mixed-content的瀏覽器)
spdy是Google開放開放的網路傳輸協議,它位於http和ssl層之間,可以加快存取速度。
1、可以降低延遲
2、可以設定請求優先權
3、header壓縮
4、基於https保障傳輸安全性
5、支援server push
http/2(超文本傳輸協定第二版),他對http進行了一些升級改造,也參考了spdy相關的內容(可以稱為spdy的演化版本)。
新的二進位格式
多路復用
header壓縮
支援server push
http/2支援http傳輸、spdy只支援https
http/2和spdy的header壓縮演算法不同
TCP和UDP的差異
HTTP,HTTP2.0,SPDY,HTTPS你應該知道的一些事
深入淺出-網路七層模型&&網路封包
以上是關於http、https、http/2的知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!