關(guān)于HTTP補(bǔ)學(xué)
?
一、HTTP能干什么
通過下圖能夠直觀的看出:“交換數(shù)據(jù)?”
二、HTTP請(qǐng)求例子
- 一個(gè) HTTP?方法,通常是由一個(gè)動(dòng)詞,像?GET、POST?等,或者一個(gè)名詞,像?OPTIONS、HEAD?等,來定義客戶端執(zhí)行的動(dòng)作。典型場(chǎng)景有:客戶端意圖抓取某個(gè)資源(使用
GET
);發(fā)送?HTML 表單的參數(shù)值(使用POST
);以及其他情況下需要的那些其他操作。- 要獲取的那個(gè)資源的路徑——去除了當(dāng)前上下文中顯而易見的信息之后的 URL,比如說,它不包括協(xié)議(
http://
)、域名(這里的域名是developer.mozilla.org
),或是 TCP 的端口(這里的端口是?80
)。- HTTP 協(xié)議版本號(hào)。
- 為服務(wù)端表達(dá)其他信息的可選標(biāo)頭。
- 請(qǐng)求體(body),類似于響應(yīng)中的請(qǐng)求體,一些像 POST 這樣的方法,請(qǐng)求體內(nèi)包含需要了發(fā)送的資源。?
- HTTP 協(xié)議版本號(hào)。
- 一個(gè)狀態(tài)碼(status code),來指明對(duì)應(yīng)請(qǐng)求已成功執(zhí)行或是沒有,以及相應(yīng)的原因。
- 一個(gè)狀態(tài)信息,這個(gè)信息是一個(gè)不權(quán)威、簡(jiǎn)短的狀態(tài)碼描述
- HTTP?標(biāo)頭,與請(qǐng)求標(biāo)頭類似。
- 可選項(xiàng),一個(gè)包含了被獲取資源的主體。
三、請(qǐng)求
HTTP 定義了一組請(qǐng)求方法用來指定對(duì)目標(biāo)資源的行為。它們一般是名詞,但這些請(qǐng)求方法有時(shí)會(huì)被叫做 HTTP 動(dòng)詞。最常用的請(qǐng)求方法是?GET
?和?POST
:
-
GET?方法請(qǐng)求指定的資源。
GET
?請(qǐng)求應(yīng)該只被用于獲取數(shù)據(jù)。 - POST?方法向服務(wù)器發(fā)送數(shù)據(jù),因此會(huì)改變服務(wù)器狀態(tài)。這個(gè)方法常在?HTML 表單中使用。
四、鏈接管理
HTTP 的傳輸協(xié)議主要依賴于 TCP 來提供從客戶端到服務(wù)器端之間的連接。在早期,HTTP 使用一個(gè)簡(jiǎn)單的模型來處理這樣的連接。這些連接的生命周期是短暫的:每發(fā)起一個(gè)請(qǐng)求時(shí)都會(huì)創(chuàng)建一個(gè)新的連接,并在收到應(yīng)答時(shí)立即關(guān)閉。
4.1、短鏈接
4.2、長(zhǎng)鏈接
在 HTTP/1.1 之前?;蛘?,這被稱之為一個(gè)?keep-alive?連接。
4.3、流水線
五、HTTP緩存
HTTP 緩存會(huì)存儲(chǔ)與請(qǐng)求關(guān)聯(lián)的響應(yīng),并將存儲(chǔ)的響應(yīng)復(fù)用于后續(xù)請(qǐng)求。
緩存分為:私有緩存和共享緩存
私有緩存是綁定到特定客戶端的緩存——通常是瀏覽器緩存。
共享緩存:代理緩存和托管緩存。
代理緩存:除了訪問控制的功能外,一些代理還實(shí)現(xiàn)了緩存以減少網(wǎng)絡(luò)流量 ——目前不需要關(guān)注代理緩存,
托管緩存:托管緩存由服務(wù)開發(fā)人員明確部署,以降低源服務(wù)器負(fù)載并有效地交付內(nèi)容。示例包括反向代理、CDN 和 service worker 與緩存 API 的組合。
Cookie
HTTP Cookie(也叫 Web Cookie 或?yàn)g覽器 Cookie)是服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù)。瀏覽器會(huì)存儲(chǔ) cookie 并在下次向同一服務(wù)器再發(fā)起請(qǐng)求時(shí)攜帶并發(fā)送到服務(wù)器上。
HTTP會(huì)話
在像 HTTP 這樣的客戶端——服務(wù)器(Client-Server)協(xié)議中,會(huì)話分為三個(gè)階段:
- 客戶端建立一條 TCP 連接(如果傳輸層不是 TCP,也可以是其他適合的連接)。
- 客戶端發(fā)送請(qǐng)求并等待應(yīng)答。
- 服務(wù)器處理請(qǐng)求并送回應(yīng)答,回應(yīng)包括一個(gè)狀態(tài)碼和對(duì)應(yīng)的數(shù)據(jù)。
從 HTTP/1.1 開始,連接在完成第三階段后不再關(guān)閉,客戶端可以再次發(fā)起新的請(qǐng)求。這意味著第二步和第三步可以連續(xù)進(jìn)行數(shù)次。文章來源:http://www.zghlxwxcb.cn/news/detail-633696.html
引用:HTTP文章來源地址http://www.zghlxwxcb.cn/news/detail-633696.html
到了這里,關(guān)于HTTP(超文本傳輸協(xié)議)學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!