HTTP協議用於客戶端和服務器端之間的通訊,並經過請求和響應的交換而達成通訊。請求由客戶端發出,而服務器回覆響應。
2.響應報文:由協議版本、狀態碼(表示請求成功或失敗的數字代碼)、用以解釋狀態碼的緣由短語、可選的響應首部字段以及實體主體構成。 前端
1)HTTP
是不保存狀態的協議,即無狀態協議
,自身不對請求和響應之間的通訊狀態進行保存。協議對於發送過的請求或響應都不作持久化處理
。web
2)這樣的設計對快速處理大量事務,確保協議的可伸縮性
有必定的幫助。可是無狀態也會致使業務處理變得有時棘手:好比,用戶登陸到一家購物網站,即便他跳轉到該站的其餘頁面後,也須要能繼續保持登陸狀態。針對這個實例,網站爲了可以掌握是誰送出的請求,須要保存用戶的狀態
。安全
3)所以,引入了Cookie技術用以實現保持狀態功能
。!!!服務器
GET方法用來請求訪問已被URI識別的資源。指定的資源經服務器端解析後返回響應內容
。若是請求的是文本,則保持原樣返回;若是是相似CGI(通用網關接口)那樣的程序,則返回通過執行後的輸出結果。 網絡
POST方法用來傳輸實體的主體。雖然用GET方法能夠傳輸實體的主體,但通常不用GET方法進行傳輸,而是用POST方法。雖然說 POST 的功能與 GET 很類似,可是POST的主要目的不是獲取響應的主體內容。架構
PUT用來傳輸文件。它要求在請求報文的主體中包含文件內容,而後保存到請求URI指定的位置。PUT方法自身不帶驗證機制,任何人均可以上傳文件,存在着安全性問題。若配合Web應用程序的驗證機制,或架構設計採用REST(表徵狀態轉移)標準的同類Web網站,就可能會開放使用PUT方法。 網站
HEAD方法與GET方法同樣,只是不返回報文主體部分,用於確認URI的有效性及資源更新的日期時間等。 加密
DELETE方法用來刪除文件,是與PUT相反的方法。按請求URI刪除指定的資源。可是HTTP/1.1的DELETE方法自己和PUT方法同樣不帶驗證機制,因此通常Web也不使用。當配合Web應用程序的驗證機制,或遵照REST標準仍是有可能會開放使用的。 spa
OPTIONS方法用來查詢針對請求URI指定的資源支持的方法。 架構設計
TRACE方法讓Web服務器端將以前的請求通訊環回給客戶端。
發送請求時,在Max-Forwards首部字段中填入數值,每通過一個服務器就將該數字減1,當數值恰好減爲0時就中止繼續傳輸,最後接收的請求的服務器則返回狀態碼200 OK的響應。
客戶端能夠經過TRACE方法查詢發送出去的請求是怎樣被加工修改/篡改的。
CONNECT方法要求在與代理服務器通訊時創建隧道,實現用隧道協議進行TCP通訊。主要使用SSL和TLS協議把通訊內容加密後經網絡隧道傳輸。
CONNECT 方法的格式:
CONNECT 代理服務器名:端口號 HTTP版本
HTTP協議的初始版本中,每次進行一次通訊都要斷開一次TCP鏈接。可是因爲傳輸信息量的增大,每次請求都形成的無謂TCP鏈接創建和斷開,增長了通訊量的開銷
。
所以,爲解決上述TCP鏈接的問題,提出了持久鏈接(或HTTP keep-alive)
方法。特色是只要任意一端沒有明確提出斷開鏈接,則保持TCP鏈接狀態
。
持久鏈接的好處在於減小了 TCP 鏈接的重複創建和斷開所形成的額外開銷,減輕了服務器端的負載
。另外,減小開銷的那部分時間,使 HTTP 請求和響應可以更早地結束,這樣 Web 頁面的顯示速度也就相應提升了
。
在 HTTP/1.1
中,全部的鏈接默認都是持久鏈接,但在 HTTP/1.0 內並未標準化。雖然有一部分服務器經過非標準的手段實現了持久鏈接,但服務器端不必定可以支持持久鏈接。毫無疑問,除了服務器端,客戶端也須要支持持久鏈接
。
背景:持久鏈接技術使得管線化方式發送成爲可能
特色:管線化技術出現後使得不用等待響應便可直接發送下一個請求
(從前發送請求後須要等待並接收響應),這樣就能夠作到同時並行發送多個請求,而不須要一個接一個等待響應。
1)無狀態優勢:減小服務器cpu及內存資源的消耗
2)缺點:HTTP是無狀態協議,沒法根據以前的狀態進行本次的請求處理。登陸認證的web頁面不能管理狀態,每次跳轉須要在請求報文添加參數來管理信息
3)若是讓服務器管理所有客戶端狀態則會成爲負擔,保留無狀態協議這個特徵的同時又要解決相似的矛盾問題,因而引入了 Cookie 技術。
Cookie技術經過在請求和響應報文中寫入Cookie信息來控制客戶端的狀態
,Cookie會根據從服務器端發送的響應報文內的一個叫Set-Cookie
的首部字段,通知客戶端保存Cookie
,當下次客戶端再次往該服務器發送請求時,客戶端會自動在請求報文中加入Cookie值後發送出去。服務器會去檢查是從哪一個客戶端發來的請求,而後對比服務器上的記錄,獲得以前的狀態信息。
Cookie 交互的情景:
若是你以爲這篇文章對你有所幫助,那就順便點個贊
吧,點點關注不迷路~
黑芝麻哇,白芝麻發,黑芝麻白芝麻哇發哈!
前端哇發哈