HTTP協議相關知識總結(一)
/*
參考書籍:《圖解HTTP》 【日】 上野宣
寫在前面:以前看TCP/IP詳解,分分鐘想睡覺,這本書趣味十足,以後有機會可以讀一讀,我是通信工程畢業的,已經有了一定的網絡基礎,TCP/IP協議略懂,雖然我們已經從C/S時代過渡到了B/S時代,理解協議時最好還是C/S模式,關於協議的學習,最好的方法我覺著還是對照著流程用wireshark抓報文分析。自從1997發佈HTTP/1..1,除了更換了一個規範,從RFC2068到RFC2616,其餘的標準一直沿用至今。。。。
ps:我才發現有道雲筆記插入圖片竟然不識別png格式的。。。。
*/
本文主要框架:
關鍵名詞
HTTP(HyperText Transfer Protocol):超文本傳輸協議
URI (Uniform Resource Identifier) :統一資源表示符(RFC4395),http協議就是通過請求URI來定位資源。
URL (Uniform Resource Identifier) :簡單說來URL就是URI的子集
相對URI格式:協議名稱://域名.根域名/目錄/文件名。後綴
絕對URI格式:協議名稱://登陸信息/域名、端口號/帶層次的文件路徑/查詢字符串/片段標識符
DNS(Domain Name System ) : 域名系統
HTTP協議方法
要看懂報文,報文首部的方法一定要明白,以下是對協議方法的一點總結
HTTP協議特點
無狀態協議,所以需要cookie 狀態管理。無狀態協議固然有其優點比如可減少服務器的CPU及內存資源的消耗,不過可以在請求和響應報文中寫入Cookie消息來控制客戶端的狀態。
HTTP報文內的HTTP消息
HTTP協議交互的消息就叫做HTTP報文,是HTTP通信中的基本單位,由8位組字節流組成
報文結構主要如下所示:
HTTP 的一些特定功能:
- 壓縮傳輸的內容編碼
- 分割傳送的分塊傳輸編碼
- 發送多種數據的多部門對象集合
- 獲取部分內容的範圍請求
- 內容協商返回最合適的內容
返回結果的HTTP狀態碼
與HTTP協作的WEB服務器
http/1.1規範允許一臺http服務器搭建多個web站點。物理主機加虛擬主機
http通信時,除客戶端和服務器外,還有一些通信數據轉發的應用程序,例如:代理,網關和隧道。
代理
在客戶端和服務器扮演中間人。追加個via首部消息。有個緩存代理的特點,緩存服務器本身也是一種代理服務器(HLS協議中常用)
網關
也是一服務器,轉發其它服務器的通信數據,同時處理客戶端發來的請求。網關與服務器間可以提供非HTTP協議服務,更安全
隧道
隧道是在相隔很遠的客戶端和服務器倆者之間進行中轉,並保持雙方通信連接的應用程序。本身不會去解析HTTP報文
閱讀更多 何五雜談 的文章