談一談HTTP協(xié)議
HTTP協(xié)議是超文本傳輸協(xié)議,用于客戶端與服務(wù)器之間的通信,它是目前互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種應(yīng)用層協(xié)議,www都要遵守http協(xié)議,
http協(xié)議規(guī)定:請求從客戶端發(fā)出,最后服務(wù)器端響應(yīng) 該請求并返回,就是說 先從客戶端開始建立通信的,服務(wù)器端在沒有接收到請求之前不會發(fā)送響應(yīng);
http協(xié)議的請求報文是由:請求方法、請求URI、協(xié)議版本、請求首部字段和請求實體構(gòu)成的
http協(xié)議的響應(yīng)報文是由:協(xié)議版本、狀態(tài)碼、原因短語、響應(yīng)首部字段以及響應(yīng)實體構(gòu)成的
http是無狀態(tài)協(xié)議,就是自身不具備保存之前發(fā)送過的請求或響應(yīng)的功能,但是為了實現(xiàn)保持狀態(tài)的功能,引入了Cookie技術(shù),有了Cookie就可以管理狀態(tài)了
http協(xié)議可用的方法有:GET(獲取資源)、POST(傳輸實體)、PUT(傳輸文件)、HEAD(獲得報文首部)、DELETE(刪除文件)等等
http1.0/1.1/2.0區(qū)別:
1.http1.0需要使用keep-alive參數(shù)來告知服務(wù)器端要建立一個長連接,而http1.1默認就是長連接,http是基于tcp/ip協(xié)議的,創(chuàng)建一個tcp連接是需要經(jīng)過三次握手的,有一定的開銷,如果每次通訊都要重新建立連接的話,對性能有影響,因此要維持一個長連接,可以用一個長連接來發(fā)多個請求
2.http1.1支持只發(fā)送請求頭信息,如果服務(wù)器認為客戶端有權(quán)限請求服務(wù)器,則返回101,否則返回401,客戶端如果接收了100,才開始把請求體發(fā)送到服務(wù)器,這樣當服務(wù)器返回401的時候,客戶端就不用再發(fā)送請求體了,節(jié)約了帶寬
3.http1.1中新增了24個錯誤狀態(tài)響應(yīng)碼,如409表示請求的資源與資源的當前狀態(tài)發(fā)生沖突,410表示服務(wù)器上某個資源被永久性的刪除
4.http2.0使用了多路復用的技術(shù),做到同一個連接并發(fā)處理多個請求,并且并發(fā)請求的數(shù)量比http1.1大了好幾個數(shù)量級
5.http1.1不支持請求頭數(shù)據(jù)的壓縮,http2.0可以對請求頭數(shù)據(jù)進行壓縮,傳輸更快
【版權(quán)聲明】:本站內(nèi)容來自于與互聯(lián)網(wǎng)(注明原創(chuàng)稿件除外),如文章或圖像侵犯到您的權(quán)益,請及時告知,我們第一時間刪除處理!謝謝!