HTTP協議學習筆記
一、web及網絡基礎
TCP/IP分層管理
應用層——傳輸層——網絡層——鏈路層
TCP/IP通信傳輸流
想瀏覽http://www.xxx.com/aaa/頁面,客戶端(瀏覽器)請求DNS服務,得到與域名對應的IP地址,生成HTTP請求報文,TCP將請求報文分割為若幹段,依靠IP協議,搜索對方的地址,一邊跳轉一邊傳送,TCP將收到的報文段重組為原來的順序,WEB服務器依靠HTTP協議,對請求的內容進行處理,請求的處理結果同樣也用TCP/IP協議向用戶回傳。
URL格式
協議方案名://登錄信息@服務器地址:服務器端口號/帶層次的文件路徑?查詢字符串#片段標識符
http://user:[email protected]:80/dir/index.htm?uid=1#ch1
二、HTTP協議
HTTP協議用於客戶端和服務器之間的通信,是無狀態協議。
客戶端發出請求,服務器端響應該請求並返回。
HTTP方法:
GET | 獲取資源 |
POST | 傳輸實體主體 |
PUT | 傳輸文件 |
HEAD | 獲得報文首部 |
DELETE | 刪除文件 |
OPTIONS | 詢問支持的方法 |
TRACE | 追蹤路徑 |
CONNECT | 要求用隧道協議連接代理 |
持久連接
只要任意一端沒有提出斷開連接,則保持TCP連接狀態。
管線化
不必等待響應亦可直接發送下一個請求。
COOKIE
cookie技術通過在請求和響應報文中寫入cookie信息來控制客戶端的狀態。
三、HTTP報文內的HTTP信息
HTTP報文
HTTP協議交互的信息被稱為HTTP報文。請求端(客戶端)的報文叫做請求報文,響應端(服務器端)的報文叫做響應報文。
HTTP報文大致分為報文首部和報文主體兩部分,由空行劃分(CR+LF)。通常,並不一定要有報文主體。
請求報文首部分為請求首部字段 、通用首部字段和實體首部字段;
響應報文首部分為響應首部字段、通用首部字段和實體首部字段。
請求報文和響應報文的首部內容由以下內容組成:
- 請求行
- 狀態行
- 首部字段
- 其他(cookie等)
編碼提升傳輸效率
報文主體和實體主體的差異
報文(message)是HTTP通信中的基本單位,由8位組字節流(octet sequence,其中octet為8個比特)組成,通過HTTP通信傳輸。
實體(entity)作為請求請求或響應的有效載荷數據(補充項)被傳輸,其內容由實體首部和實體主體組成。
HTTP報文的主體用於傳輸請求或響應的實體主體。
通常,報文主體等於實體主體,只有當傳輸中進行編碼操作時,實體主體的內容發生變化,才導致它和報文主體產生差異。
HTTP協議學習筆記