HTTP 請(qǐng)求報(bào)文由3部分組成(請(qǐng)求行+請(qǐng)求頭+請(qǐng)求體)
HTTP請(qǐng)求報(bào)文
1是請(qǐng)求方法,GET和POST是最常見(jiàn)的HTTP方法,初次以外還包括 DELETE、HEAD格二、OPTIONS劈彪、PUT、TRACE顶猜,不過(guò)現(xiàn)在大部分的瀏覽器只支持GET和POST
2是請(qǐng)求對(duì)應(yīng)的URL地址,他和報(bào)文頭的Host屬性,組合起來(lái)是一個(gè)完整的請(qǐng)求URL
3是協(xié)議民稱和版本號(hào)
4是報(bào)文頭,有若干個(gè)屬性,形式為key:val,服務(wù)端據(jù)此獲取客戶端信息
5是報(bào)文體,它將一個(gè)頁(yè)面表單中的組件值通過(guò)param1=val1&parma=2的鍵值對(duì)形式編碼成一個(gè)格式化串,它承載多個(gè)請(qǐng)求參數(shù)的數(shù)據(jù),不但報(bào)文頭可以傳遞請(qǐng)求參數(shù),URL也可以通過(guò)/chapter15/user.html? param1=value1¶m2=value2”的方式傳遞數(shù)值
HTTP請(qǐng)求報(bào)文頭屬性
什么是報(bào)文頭屬性呢,報(bào)文頭屬性有什么用呢?
比如說(shuō)吧,當(dāng)你在公司cv代碼的時(shí)候,突然之間餓意來(lái)襲,你就打電話,讓樓下的餐館送個(gè)外賣,你給老板說(shuō):老板,給我來(lái)個(gè)最便宜的蓋飯,送到xxx,我叫屌絲碼農(nóng)
這里你要的蓋飯相當(dāng)于報(bào)文體,而我叫屌絲碼農(nóng)這種信息就相當(dāng)于報(bào)文體,他是一些附屬屬性,為的是讓你們的交易更加順利.
所以HTTP的報(bào)文頭的屬性,就是為啦讓客戶端和瀏覽器端更加便捷长窄、順利
常見(jiàn)的HTTP報(bào)文頭屬性
-
Accpet
- 告訴服務(wù)端,客戶端接收什么類型的響應(yīng)
-
Referer
- 表示這是請(qǐng)求是從哪個(gè)URL進(jìn)來(lái)的,比如想在網(wǎng)上購(gòu)物,但是不知道選擇哪家電商平臺(tái),你就去問(wèn)度娘,說(shuō)哪家電商的東西便宜啊,然后一堆東西彈出在你面前,第一給就是某寶,當(dāng)你從這里進(jìn)入某寶的時(shí)候,這個(gè)請(qǐng)求報(bào)文的Referer就是www.baidu.com
-
Cache-Control
- 對(duì)緩存進(jìn)行控制,如一個(gè)請(qǐng)求希望響應(yīng)的內(nèi)容在客戶端緩存一年,或不被緩可以通過(guò)這個(gè)報(bào)文頭設(shè)置
-
Accept-Encoding
-
這個(gè)屬性是用來(lái)告訴服務(wù)器能接受什么編碼格式,包括字符編碼,壓縮形式(一般都是壓縮形式)
- 例如:Accept-Encoding:gzip, deflate(這兩種都是壓縮格式)
-
-
Host
- 指定要請(qǐng)求的資源所在的主機(jī)和端口
User-Agent 作用:告訴服務(wù)器挠日,客戶端使用的操作系統(tǒng)嚣潜、瀏覽器版本和名稱
HTTP響應(yīng)報(bào)文
響應(yīng)報(bào)文與請(qǐng)求報(bào)文一樣,由三個(gè)部分組成(響應(yīng)行,響應(yīng)頭,響應(yīng)體)
1報(bào)文協(xié)議及版本;
2狀態(tài)碼及狀態(tài)描述庇麦;
3響應(yīng)報(bào)文頭喜德,也是由多個(gè)屬性組成住诸;
4響應(yīng)報(bào)文體,即我們要的數(shù)據(jù)丧诺。
HTTP狀態(tài)碼
簡(jiǎn)單說(shuō)下常見(jiàn)的幾個(gè)狀態(tài)碼
200 OK 表示成功
303 重定向,把你重定向到其他頁(yè)面
304 資源并未修改,可以直接使用本地的緩存
404 找不到頁(yè)面(頁(yè)面被刪除或其他)
500 服務(wù)端錯(cuò)誤
HTTP響應(yīng)報(bào)文屬性
-
Cache-Control
- 響應(yīng)輸出到客戶端后,服務(wù)端通過(guò)該屬性告訴客戶端該怎么控制響應(yīng)內(nèi)容的緩存
-
ETag
- 表示你請(qǐng)求資源的版本,如果該資源發(fā)生啦變化,那么這個(gè)屬性也會(huì)跟著變
-
Location
- 在重定向中或者創(chuàng)建新資源時(shí)使用
-
Set-Cookie
- 服務(wù)端可以設(shè)置客戶端的cookie