協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或規(guī)則。
HTTP協(xié)議,即超文本傳輸協(xié)議(Hypertext transfer protocol)。是一種詳細(xì)規(guī)定了瀏覽器和萬(wàn)維網(wǎng)(WWW = World Wide Web)服務(wù)器之間互相通信的規(guī)則,通過(guò)因特網(wǎng)傳送萬(wàn)維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議。
HTTP是一個(gè)應(yīng)用層協(xié)議,由請(qǐng)求和響應(yīng)構(gòu)成,是一個(gè)標(biāo)準(zhǔn)的客戶端服務(wù)器模型。HTTP是一個(gè)無(wú)狀態(tài)的協(xié)議。
在Internet中所有的傳輸都是通過(guò)TCP/IP進(jìn)行的。HTTP協(xié)議作為TCP/IP模型中應(yīng)用層的協(xié)議也不例外。HTTP協(xié)議通常承載于TCP協(xié)議之上,有時(shí)也承載于TLS或SSL協(xié)議層之上,這個(gè)時(shí)候,就成了我們常說(shuō)的HTTPS。
HTTP協(xié)議永遠(yuǎn)都是客戶端發(fā)起請(qǐng)求,服務(wù)器回送響應(yīng)。這樣就限制了使用HTTP協(xié)議,無(wú)法實(shí)現(xiàn)在客戶端沒(méi)有發(fā)起請(qǐng)求的時(shí)候,服務(wù)器將消息推送給客戶端。
HTTP協(xié)議的主要特點(diǎn)可概括如下:
1、支持客戶/服務(wù)器模式。支持基本認(rèn)證和安全認(rèn)證。
2、簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。
3、靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。
4、HTTP 0.9和1.0使用非持續(xù)連接:限制每次連接只處理一個(gè)請(qǐng)求,服務(wù)器處理完客戶的請(qǐng)求,并收到客戶的應(yīng)答后,即斷開連接。HTTP 1.1使用持續(xù)連接:不必為每個(gè)web對(duì)象創(chuàng)建一個(gè)新的連接,一個(gè)連接可以傳送多個(gè)對(duì)象,采用這種方式可以節(jié)省傳輸時(shí)間。
5、無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒(méi)有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。
HTTP協(xié)議是無(wú)狀態(tài)的和Connection: keep-alive的區(qū)別:
無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒(méi)有記憶能力,服務(wù)器不知道客戶端是什么狀態(tài)。從另一方面講,打開一個(gè)服務(wù)器上的網(wǎng)頁(yè)和你之前打開這個(gè)服務(wù)器上的網(wǎng)頁(yè)之間沒(méi)有任何聯(lián)系。
HTTP是一個(gè)無(wú)狀態(tài)的面向連接的協(xié)議,無(wú)狀態(tài)不代表HTTP不能保持TCP連接,更不能代表HTTP使用的是UDP協(xié)議(無(wú)連接)。
從HTTP/1.1起,默認(rèn)都開啟了Keep-Alive,保持連接特性,簡(jiǎn)單地說(shuō),當(dāng)一個(gè)網(wǎng)頁(yè)打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,如果客戶端再次訪問(wèn)這個(gè)服務(wù)器上的網(wǎng)頁(yè),會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。
Keep-Alive不會(huì)永久保持連接,它有一個(gè)保持時(shí)間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間。
資料均為網(wǎng)絡(luò)搜集而來(lái),僅用于個(gè)人學(xué)習(xí),請(qǐng)勿轉(zhuǎn)載。