HTTP 作用
用于客戶端和服務(wù)器端的通信。
請(qǐng)求資源一方成為客戶端静暂,提供資源一方成為服務(wù)器端济丘。
有時(shí)候,雙方角色可能會(huì)互換洽蛀。
請(qǐng)求必須由客戶端發(fā)出摹迷,而服務(wù)器端回復(fù)響應(yīng)。
請(qǐng)求報(bào)文
請(qǐng)求報(bào)文是由請(qǐng)求方法郊供、請(qǐng)求 URL峡碉、協(xié)議版本、可選的請(qǐng)求首部字段和內(nèi)容實(shí)體構(gòu)成的驮审。
響應(yīng)報(bào)文
響應(yīng)報(bào)文基本上由協(xié)議版本鲫寄、狀態(tài)碼、用以解釋狀態(tài)碼的原因短語(yǔ)疯淫、可選的響應(yīng)首部字段以及實(shí)體主體構(gòu)成地来。
HTTP 特性
HTTP 是一種不保存狀態(tài),即無(wú)狀態(tài)(stateless)協(xié)議熙掺。
這是為了更快地處理大量事務(wù)未斑,確保協(xié)議的可伸縮性,而特意把 HTTP 協(xié)議設(shè)計(jì)成如此簡(jiǎn)單的币绩。
為了實(shí)現(xiàn)期望的保持狀態(tài)的功能蜡秽,于是引入了 Cookie 技術(shù)。
HTTP 使用 URI 定位互聯(lián)網(wǎng)上的資源缆镣。
如果不是訪問特定資源芽突,而是訪問服務(wù)器,可以使用
*
號(hào)董瞻。
HTTP 方法
-
GET
獲取資源寞蚌。
-
POST
傳輸實(shí)體主體(創(chuàng)建資源)。
-
PUT
傳輸文件
-
DELETE
刪除文件
-
HEAD
獲得報(bào)文首部
-
OPTIONS
詢問支持的方法
-
TRACE
追蹤路徑钠糊,可以查詢發(fā)送出去的請(qǐng)求是如何被加工篡改的挟秤。
容易引發(fā) XST(跨站追蹤)攻擊,所以不用眠蚂。
-
CONNECT
要求用隧道協(xié)議連接代理煞聪。主要使用 SSL 和 TLS 協(xié)議吧通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸。
持久化和管線化
持久化指的是和服務(wù)器端保持持久連接逝慧,直到有一方提出斷開昔脯,才結(jié)束連接。
管線化指的是同時(shí)并發(fā)發(fā)送多個(gè)請(qǐng)求笛臣。即多個(gè)http請(qǐng)求不需要等待相應(yīng)的應(yīng)答就能夠?qū)戇M(jìn)同一個(gè)socket的技術(shù)云稚。
使用 Cookie 管理狀態(tài)
如果讓服務(wù)器管理全部客戶端狀態(tài),會(huì)加大服務(wù)器的負(fù)擔(dān)沈堡。
所以為了保留無(wú)狀態(tài)協(xié)議并且解決類似的矛盾静陈,引入了 Cookie 技術(shù)。
Cookie 技術(shù)通過(guò)在請(qǐng)求和響應(yīng)報(bào)文中寫入 Cookie 信息來(lái)控制客戶端的狀態(tài)。