Http介紹

1、Http的概念

http是tcp/ip協(xié)議族中的一個(gè)協(xié)議,是工作在應(yīng)用層的。

2、和http協(xié)議關(guān)系密切的協(xié)議tcp和ip協(xié)議

ip協(xié)議是工作在網(wǎng)絡(luò)層的

tcp協(xié)議是工作在傳輸層的,提供可靠的字節(jié)流服務(wù),tcp能夠提供可靠的傳輸服務(wù)是因?yàn)椴扇×巳挝帐值牟呗浴5谝淮伟l(fā)送的時(shí)候會(huì)發(fā)送帶有SYN標(biāo)志的包,接收方接收后會(huì)回傳一個(gè)帶有SYN/ACK標(biāo)志的包,發(fā)送方收到后然后發(fā)送帶有ACK標(biāo)志的包。

3、Http的特點(diǎn)

http永遠(yuǎn)有一個(gè)客戶端和一個(gè)服務(wù)端,客戶端發(fā)送請(qǐng)求,服務(wù)端進(jìn)行響應(yīng),服務(wù)端是不能主動(dòng)發(fā)送通知的

http是不能夠保存狀態(tài)的,但是為了能夠保存狀態(tài),引用了cookie技術(shù)

http1.1版本默認(rèn)是持久性連接,可以同時(shí)并行發(fā)送多個(gè)請(qǐng)求

4、Http返回狀態(tài)碼

200:請(qǐng)求成功,ok,如果你的請(qǐng)求方法是HEAD,那么返回的也只是頭部

204:請(qǐng)求成功,但是返回的只有頭部,沒有主體

206:請(qǐng)求成功,返回主體是你指定范圍的內(nèi)容,range部分

301:永久重定向 302:臨時(shí)重定向 303:URI已經(jīng)更新 ? 這幾個(gè)返回碼都需要客戶端將PUT換成GET(不是協(xié)議要求,而是一般的瀏覽器是這樣做的),刪除主體重新請(qǐng)求

307:臨時(shí)重定向,但是不要求客戶端將PUT換成GET

304:請(qǐng)求的資源已經(jīng)找到,但是并不符合你添加的條件

400:你的請(qǐng)求報(bào)文格式有問題

401:請(qǐng)求的用戶沒有認(rèn)證或者認(rèn)證失敗了

403:請(qǐng)求的資源被禁止訪問,就是說你沒有權(quán)限

404:無法找到被請(qǐng)求的資源,有的時(shí)候服務(wù)器拒絕請(qǐng)求不想說明原因時(shí),也這樣使用

500:網(wǎng)絡(luò)或者服務(wù)端執(zhí)行請(qǐng)求發(fā)生錯(cuò)誤

503:服務(wù)端超出負(fù)荷或者正在維護(hù)

5、Http的報(bào)文格式

請(qǐng)求報(bào)文

響應(yīng)報(bào)文

6、報(bào)文頭部(首部)字段信息

報(bào)文頭部字段由 字段名:字段值 ?加回車換行構(gòu)成。其中字段值可以由多個(gè)值構(gòu)成,字段值之間用“,”隔開。

通用頭部字段

Cache-Control:這個(gè)字段,值是可以多選的。public明確表明其他用戶也可以用這個(gè)緩存;private與public完全完全相反;no-cache告訴服務(wù)器必須從源服務(wù)器返回?cái)?shù)據(jù);no-cache=Location,如果服務(wù)器返回的報(bào)文響應(yīng)中這么設(shè)置,那么客戶端將不能使用緩存;no-store暗示請(qǐng)求或者響應(yīng)有機(jī)密的信息,這才是真正的不使用緩存;max-age=時(shí)間(秒),如果客戶端有這個(gè)設(shè)置,只要緩存存在的時(shí)間小于指定的時(shí)間,就用緩存的資源,也就是說這里是緩存的一個(gè)有效期;no-transform,無論是在請(qǐng)求中還是在響應(yīng)中,緩存都不能改變報(bào)文主體的媒體類型,

Connection:close,服務(wù)器想明確斷開連接;keep-Alive一直保持連接,就是持久連接,1.1版本都是默認(rèn)持久連接的

Date: 值是http報(bào)文創(chuàng)建的日期和時(shí)間,一般的格式為 Tue,03-Jul-12 04:40:59 GMT

Transfer-Encoding:報(bào)文主體在傳輸時(shí)采用的編碼格式,值有chunked

請(qǐng)求頭部字段

Accept:這個(gè)字段可通知服務(wù)器,客戶端能夠處理的媒體類型。這個(gè)字段的值也是可以多選的。

文本文件- text/html,text/plain, text/css ,application/xhtml+xml,application/xml

圖片文件- image/jpeg,image/gif,image/png

視頻文件- video/mpeg,video/quicktime

應(yīng)用程序使用的二進(jìn)制文件- application/octet-stream,application/zip

Accept-Charset:告知服務(wù)器客戶端支持的字符集 ,值就是通用的字符集 iso-8859-5,unicode-1-1等

Accept-Encoding: 客戶端支持的內(nèi)容編碼,值可以多選。gzip,compress,deflate,identify

Accept-Language:客戶端支持的自然語(yǔ)言集,值可以多選。zh-cn,zh;q=0.7,en-us,en;q=0.3 (q指的是優(yōu)先級(jí),用分號(hào)隔開)

Authorization:客戶端的認(rèn)證信息(證書值)

Host:這個(gè)字段會(huì)告知服務(wù)器請(qǐng)求資源所在的的主機(jī)名和端口號(hào),這個(gè)值就是域名或者IP地址

Proxy-Authorization:認(rèn)證,與Authorization相同,不同的是,認(rèn)證行為發(fā)生在客戶端和代理服務(wù)器之間

Range:指定獲取部分資源的范圍 比如:bytes=5001-10000,表示請(qǐng)求獲取5001個(gè)字節(jié)到10000字節(jié)的數(shù)據(jù)

User-Agent:用于傳達(dá)瀏覽器的種類

實(shí)體頭部字段

Content-Encoding:報(bào)文主體內(nèi)容采用的編碼方式,gizp,compress,deflate,identify

Content-Language:報(bào)文主體采用的自然語(yǔ)言集

Content-Length:報(bào)文主體部分的大小,單位是字節(jié)

Content-MD5:MD5值,用于檢查報(bào)文主體在傳輸中是否保持完整

Content-Range:針對(duì)的是范圍請(qǐng)求,告知客戶端返回的是哪一部分的內(nèi)容

Content-Type:實(shí)體主體對(duì)象的媒體類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容