HTTP協議用於客戶端和服務器端之間的通訊git
在兩臺計算機之間,必有一端擔任客戶端角色,另外一端擔任服務器端角色,有時角色可能會互換,HTTP協議可以明確區分哪端是客戶端,哪端是服務器端github
由客戶端發出請求報文,服務器端回覆響應報文服務器
請求報文的構成網絡
響應報文的構成frontend
注意:請求和響應報文的內容實體前都空一行
性能
HTTP協議自身不具有保存以前發送過的請求和響應的功能測試
爲了解決一些須要保存狀態的業務場景(好比保存登陸狀態),HTTP/1.1引入了Cookie技術google
HTTP協議使用URI讓客戶端定位到資源spa
客戶端發送請求時,須要將URI信息包含在請求報文內
https://www.google.cn/index.html
爲例,指定URI的方式有如下兩種:GET https://www.google.cn/index.html HTTP/1/1
GET /index.html HTTP/1/1 Host: www.google.cn
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
方法 | 描述 |
---|---|
GET | 【獲取資源】請求指定的頁面信息,並返回實體主體。 |
HEAD | 【得到報文首部】相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 |
POST | 【傳輸實體主體】向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的創建和/或已有資源的修改。 |
PUT | 【傳輸文件】從客戶端向服務器傳送的數據取代指定的文檔的內容。 |
DELETE | 【刪除文件】請求服務器刪除指定的頁面。 |
CONNECT | 【要求用隧道協議鏈接代理】HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。 |
OPTIONS | 【詢問支持的方法】容許客戶端查看服務器的性能。 |
TRACE | 【追蹤路徑】回顯服務器收到的請求,主要用於測試或診斷。 |
當創建一個TCP鏈接後,能夠發送多個請求/響應。除非任意一端提出斷開鏈接,不然一直保持TCP鏈接狀態
管線化是指客戶端不用等待響應可直接發送下一個請求,這樣可以同時並行發送多個請求