HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文
文章目錄
- HTTP 介紹
- 請(qǐng)求數(shù)據(jù)包/請(qǐng)求消息/請(qǐng)求報(bào)文
- 請(qǐng)求數(shù)據(jù)包解析
- 響應(yīng)數(shù)據(jù)包/響應(yīng)消息/響應(yīng)報(bào)文
HTTP 介紹
概念:Hyper Text Transfer Protocol 超文本傳輸協(xié)議
傳輸協(xié)議:定義了客戶端和服務(wù)器端通信時(shí)發(fā)送數(shù)據(jù)的格式
特點(diǎn):
1.基于TCP/IP的高級(jí)協(xié)議
2.默認(rèn)端口號(hào):80
3.基于請(qǐng)求/響應(yīng)模型的:一次請(qǐng)求對(duì)應(yīng)一次響應(yīng)
4.無(wú)狀態(tài)的:每次請(qǐng)求之間相互獨(dú)立,不能交互數(shù)據(jù)
歷史版本:
1.0:每一次請(qǐng)求響應(yīng)都會(huì)建立新的連接;每一次新的請(qǐng)求都會(huì)建立新的連接
1.1:復(fù)用連接
請(qǐng)求數(shù)據(jù)包/請(qǐng)求消息/請(qǐng)求報(bào)文
1.第一部分,請(qǐng)求行(數(shù)據(jù)包中的一行內(nèi)容)
請(qǐng)求行包括三部分內(nèi)容:
1.1.請(qǐng)求方式(get/post)
2.1.請(qǐng)求資源路徑(端口號(hào)之后的內(nèi)容,比如 /appname/servlet)
3.1.協(xié)議的類型與版本
2.第二部分,若干消息頭(消息頭是由 w3c 定義的一些有特殊含義的鍵值對(duì))
也叫請(qǐng)求頭,客戶端告訴服務(wù)端一些信息
2.1.消息頭的樣式,比如:content-type= text/html;
2.2.服務(wù)器和瀏覽器都會(huì)遵守這些消息頭的約定。
2.3.消息頭一般由服務(wù)器或者瀏覽器自動(dòng)生成,但是也可以通過(guò)編程的方式生成
常見(jiàn)請(qǐng)求頭:
1.User- Agent:瀏覽器告訴服務(wù)器,我訪問(wèn)你使用的瀏覽器版本信息。可以在服務(wù)器端獲取該頭的信息,解決瀏覽器的兼容性問(wèn)題
2.Accept:瀏覽器告訴服務(wù)器,瀏覽器可以接收的內(nèi)容格式,即服務(wù)器可以返回給瀏覽器什么格式的內(nèi)容
3.Accept-Encoding:瀏覽器告訴服務(wù)器,瀏覽器可以接收的壓縮格式
4.Referer:告訴服務(wù)器,我(當(dāng)前請(qǐng)求)從哪里來(lái)
作用:
防盜鏈,判斷訪問(wèn)來(lái)源,從而屏蔽非法訪問(wèn)
統(tǒng)計(jì)工作,統(tǒng)計(jì)不同的訪問(wèn)來(lái)源
5.Connection:連接狀態(tài)
3.第三部分,實(shí)體內(nèi)容
也叫請(qǐng)求體,封裝請(qǐng)求消息中的請(qǐng)求參數(shù)
3.1.如果請(qǐng)求方式是 post 方式,請(qǐng)求參數(shù)及值會(huì)放在這兒。
3.2.如果請(qǐng)求方式是 get 方式,請(qǐng)求參數(shù)與值包含在請(qǐng)求資源路徑里面。
請(qǐng)求數(shù)據(jù)包解析
響應(yīng)數(shù)據(jù)包/響應(yīng)消息/響應(yīng)報(bào)文
1.第一部分:狀態(tài)行
也叫響應(yīng)行
HTTP/1.1 200 OK
協(xié)議版本 狀態(tài)碼 狀態(tài)碼描述
1.1.協(xié)議的類型與版本
1.2.狀態(tài)碼(狀態(tài)碼是一個(gè)數(shù)字,不同的數(shù)字代表不同的含義)
1.3.狀態(tài)碼的描述
2.第二部分:若干消息頭
也叫響應(yīng)頭
2.1.格式
響應(yīng)頭名稱:值
2.1.1Content-Type:text/html;charset=UTF-8
告訴瀏覽器返回是html格式的文本內(nèi)容,使用的編碼格式是UTF-8。這樣瀏覽器就會(huì)使用html引擎解析文本內(nèi)容,且使用UTF-8進(jìn)行解碼。
2.1.2.Content-Length:101
文本內(nèi)容的字節(jié)數(shù)
2.1.3.Content-disposition
in-line:默認(rèn)值,告訴客戶端在當(dāng)前頁(yè)面內(nèi)打開(kāi)響應(yīng)體的內(nèi)容
attachment:告訴客戶端以附件形式打開(kāi)響應(yīng)體的內(nèi)容。常用于文件的下載。
3.第三部分:實(shí)體內(nèi)容
也叫響應(yīng)體
服務(wù)器返回給瀏覽器的最終數(shù)據(jù)。例如,html源代碼;圖片的二進(jìn)制碼等
總結(jié)
以上是生活随笔為你收集整理的HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。