一.HTTP 協議用於客戶端和服務器端之間的通訊安全
二.經過請求和響應的交換達成:服務器
1.請求報文中的內容(意思是:請求訪問某臺 HTTP 服務器上的 /index.htm 頁面資源):
GET /index.htm
HTTP/1.1 Host: hackr.jp網絡
.
(起始行開頭的GET表示請求訪問服務器的類型,稱爲方法 (method);字符串 /index.htm 指明瞭請求訪問的資源對象, 也叫作請求 URI(request-URI); HTTP/1.1,即 HTTP 的版本號,用來提示客戶端使用的 HTTP 協議功能。 請求報文是由請求方法、請求 URI、協議版本、可選的請求首部字段和內容實體構成的。)架構
2.響應報文中的內容:less
(在起始行開頭的 HTTP/1.1 表示服務器對應的 HTTP 版本。 緊挨着的 200 OK 表示請求的處理結果的狀態碼(status code)和緣由 短語(reason-phrase)。下一行顯示了建立響應的日期時間,是首部 字段(header field)內的一個屬性。 接着以一空行分隔,以後的內容稱爲資源實體的主體(entity body)。響應報文基本上由協議版本、狀態碼(表示請求成功或失敗的數字代碼)、用以解釋狀態碼的緣由短語、可選的響應首部字段以及實體主體構成。)網站
三.HTTP 是不保存狀態的協議:加密
做用:爲了更快地處理大量事務,確保協議的可伸縮性,而特地把 HTTP 協議設計成如此簡單的。
侷限:隨着 Web 的不斷髮展,因無狀態而致使業務處理變得棘手的狀況增多了。好比,用戶登陸到一家購物網站,即便他跳轉到該站的其餘頁面後,也須要能繼續保持登陸狀態。
解決方案:HTTP/1.1 雖然是無狀態協議,但爲了實現指望的保持狀態功能,因而引入了 Cookie 技術(後面文章會詳談)。有了 Cookie 再用 HTTP 協議通訊,就能夠管理狀態了。spa
四.請求 URI 定位資源:架構設計
五.告知服務器意圖的 HTTP 方法設計
1.GET :獲取資源
2.POST:傳輸實體主體
3.PUT:傳輸文件
// 響應1的意思實際上是請求執行成功了,但無數據返回
4.HEAD:得到報文首部
5.DELETE:刪除文件
6.OPTIONS:詢問支持的方法
7.TRACE:追蹤路徑
8.CONNECT:要求用隧道協議鏈接代理
總結:
五.持久鏈接節省通訊量
1.短鏈接:HTTP 協議的初始版本中,每進行一次 HTTP 通訊就要斷開一次 TCP 鏈接。
2.持久鏈接的特色是:只要任意一端 沒有明確提出斷開鏈接,則保持 TCP 鏈接狀態。
持久鏈接的好處:減小了 TCP 鏈接的重複創建和斷開所形成的額外開銷,減輕了服務器端的負載。另外,減小開銷的那部分時間,使 HTTP 請求和響應可以更早地結束,這樣 Web 頁面的顯示速度也就相應提升了。
3.管線化:持久鏈接使得多數請求以管線化(pipelining)方式發送成爲可能。從前發送請求後需等待並收到響應,才能發送下一個請求。管線化技術出現後,不用等待響應亦可直接發送下一個請求。而管線化技術則比持久鏈接還要快。請求數越多,時間差就越明顯
六.Cookie 技術
1.引入起因:HTTP協議保留無狀態協議這個特徵的同時又要解決相似的矛盾問題,因而引入了 Cookie 技術。
2.工做原理:Cookie 技術經過在請求和響應報文中寫入 Cookie 信息來控制客戶端的狀態。Cookie 會根據從 端發送的響應報文內的一個叫作 Set-Cookie 的首部字段信息,通知客戶端保存 Cookie。當下次客戶端再往該服務器發送請求時,客戶端會自動在請求報文中加入 Cookie 值後發送出去。服務器端發現客戶端發送過來的 Cookie 後,會去檢查到底是從哪個客戶端發來的鏈接請求,而後對比服務器上的記錄,最後獲得以前的狀態信息。
3.圖例:
發生 Cookie 交互的情景:
HTTP請求報文和響應報文的內容以下: