1、HTTP協(xié)議用戶(hù)用戶(hù)客戶(hù)端和服務(wù)器端之間的通信
請(qǐng)求訪問(wèn)資源的一端稱(chēng)為客戶(hù)端,提供資源相應(yīng)的為服務(wù)端
滿(mǎn)足HTTP通信前提條件要有服務(wù)端和客戶(hù)端。
根據(jù)通信鏈路可以確定服務(wù)端和客戶(hù)端的。
2、通過(guò)請(qǐng)求和相應(yīng)的交換達(dá)成通信
是由客戶(hù)端發(fā)出請(qǐng)求服務(wù)端響應(yīng)
客戶(hù)端的請(qǐng)求報(bào)文是由請(qǐng)求方法、協(xié)議版本、URI、可選的首部字段和內(nèi)容實(shí)體構(gòu)成
服務(wù)端響應(yīng)的報(bào)文是由協(xié)議版本、狀態(tài)碼、用于解釋狀態(tài)碼的原因短語(yǔ)、可選的響應(yīng)首部以及實(shí)體主體構(gòu)成。
3、HTTP不保存狀態(tài)協(xié)議
Http協(xié)議時(shí)無(wú)狀態(tài)的。
每一次請(qǐng)求和上一次的請(qǐng)求都是無(wú)關(guān)的;協(xié)議本身不保留之前一切的請(qǐng)求或響應(yīng)的報(bào)文信息。
使用Cookie來(lái)管理狀態(tài)。
4、通過(guò)URI來(lái)定位資源
5、HTTP請(qǐng)求的方法
1、GET 獲取資源
一般用于請(qǐng)求獲取資源,通過(guò)服務(wù)器處理之后;
可以用來(lái)頭信息進(jìn)行資源緩存;
2、POST 傳輸實(shí)體主體
一般用戶(hù)表單的提交
3、PUT 傳輸文件
一般REST標(biāo)準(zhǔn)的Web網(wǎng)站才會(huì)使用。
4、HEAD ?獲取報(bào)文首部
只返回頭部,用于確認(rèn)URI的有效及資源更新的日期時(shí)間。
5、DELETE 刪除文件
一般用于刪除文件,一般返回204(No Content)。
6 OPTIONS 詢(xún)問(wèn)支持的方法
查詢(xún)對(duì)該URI支持的方法
6、使用方法下達(dá)命令
7、持久連接節(jié)省通信量
在http v0.9和v1.0(一部分)時(shí)每一次通信都需要斷開(kāi)一次TCP鏈接。
如果一個(gè)Web中有包含很短資源比如css、js和圖片資源就需要建立很多次鏈接,TCP需要多次握手。
7.1 持久化鏈接
HTTP v1.0中需要指定 keep live才可以持久還鏈接。
HTTP v1.1默認(rèn)鏈接都是持久化的。
需要客戶(hù)端和服務(wù)端同時(shí)支持。
7.2管道化
優(yōu)點(diǎn):不用等待就可以發(fā)送下一個(gè)請(qǐng)求;比持久化鏈接更快。
8、Cookie管理狀態(tài)
服務(wù)端會(huì)給客戶(hù)端一個(gè)響應(yīng)的頭信息 Set-Cookie信息,同時(shí)通知客戶(hù)端保存該Cookie信息;下次客戶(hù)端請(qǐng)求的時(shí)候會(huì)在報(bào)文中帶上Cookie信息,然后和服務(wù)端的記錄做對(duì)比,最后得到之前的狀態(tài)信息。