簡(jiǎn)述:引言HTTP協(xié)議是HyperTextTransferProtocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。HTTP是基于TCP/IP協(xié)議通信協(xié)議來傳遞數(shù)據(jù)(HTML文件、圖片文件、查詢結(jié)果等)。它不
引言
HTTP協(xié)議是HyperTextTransferProtocol(超文本傳輸協(xié)議)的縮寫是用于從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。HTTP是基于TCP/IP協(xié)議通信協(xié)議傳輸數(shù)據(jù)(HTML文件、圖片文件、查詢結(jié)果等)。它不涉及數(shù)據(jù)包(packet)客戶端與服務(wù)器之間的通信格式主要規(guī)定,默認(rèn)使用80端口。
一、Http的特點(diǎn)
1.簡(jiǎn)單快捷:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳輸請(qǐng)求方法和路徑。常用的請(qǐng)求方法有GET、HEAD、PUT、DELETE、POST。每種方法規(guī)定了不同類型的客戶和服務(wù)器接觸。HTTP協(xié)議簡(jiǎn)單HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。
2、靈活:HTTP允許傳輸任何類型的數(shù)據(jù)對(duì)象。
3.無連接:無連接的意思是限制每個(gè)連接只處理一個(gè)請(qǐng)求。服務(wù)器處理客戶請(qǐng)求并接到客戶響應(yīng)后,斷開連接。這樣可以節(jié)省傳輸時(shí)間。
4、無狀態(tài):HTTP協(xié)議無狀態(tài),HTTP協(xié)議本身不保存請(qǐng)求和響應(yīng)之間的通信狀態(tài)。任何兩次請(qǐng)求之間都沒有依賴關(guān)系。直觀地說,每個(gè)請(qǐng)求都是獨(dú)立的,與前面的請(qǐng)求和后面的請(qǐng)求沒有直接的聯(lián)系。協(xié)議本身并不保留以前所有的請(qǐng)求或響應(yīng)信息。這是為了更快地處理大量事務(wù),確保協(xié)議的可伸縮性HTTP協(xié)議設(shè)計(jì)如此簡(jiǎn)單。
二、Http報(bào)文
Http報(bào)告包括兩部分:請(qǐng)求報(bào)告和響應(yīng)報(bào)告,其中請(qǐng)求報(bào)告由請(qǐng)求銀行組成(requestline)、請(qǐng)求頭(header)、空行和請(qǐng)求體由四個(gè)部分組成。響應(yīng)報(bào)告由四個(gè)部分組成:狀態(tài)線、響應(yīng)頭、空行和響應(yīng)體。接下來,我們將詳細(xì)介紹請(qǐng)求報(bào)告的各個(gè)部分及其功能。
1、請(qǐng)求行
用于說明請(qǐng)求類型、訪問資源和使用的資源HTTP版本。
POST/chapter17/user.htmlHTTP/1.1
以上代碼中POST代表請(qǐng)求方法,/chapter17/user.html表示URI,HTTP/1.1代表協(xié)議和協(xié)議的版本?,F(xiàn)在流行的是Http1.版本1。你也可以理解以下2。.0:讓面試官顫抖HTTP2.0協(xié)議面試題。
2、請(qǐng)求頭
由關(guān)鍵字/值對(duì)組成,每行一對(duì),關(guān)鍵字和值英文冒號(hào)“:”分隔。
請(qǐng)求頭部通知服務(wù)器關(guān)于客戶端請(qǐng)求的信息。它包含許多關(guān)于客戶端環(huán)境和請(qǐng)求文本的有用信息。
Host:表示主機(jī)名稱,虛擬主機(jī)。Connection:HTTP/1.增加,使用keepalive,也就是說,一個(gè)連接可以發(fā)送多個(gè)請(qǐng)求。User-Agent:要求發(fā)出者、兼容性和定制需求。3、空行
最后一個(gè)請(qǐng)求頭之后是空行,這個(gè)行很重要,說明請(qǐng)求頭已經(jīng)結(jié)束,接下來是請(qǐng)求文本。
4、請(qǐng)求體
可承載多個(gè)請(qǐng)求參數(shù)的數(shù)據(jù)。
name=tom&password=1234&realName=tomson
攜帶上述代碼name、password、realName三個(gè)請(qǐng)求參數(shù)。
三、HTTP請(qǐng)求方法
GET:請(qǐng)求指定的頁面信息,并返回實(shí)體主體。HEAD:類似于get請(qǐng)求,但回復(fù)響應(yīng)中沒有具體內(nèi)容,用于獲取報(bào)頭。POST:向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。在請(qǐng)求體中包含數(shù)據(jù)。PUT:從客戶端傳輸?shù)椒?wù)器的數(shù)據(jù)取代了指定文檔的內(nèi)容。DELETE:請(qǐng)求服務(wù)器刪除指定頁面。四、GET與POST區(qū)別
GET瀏覽器返回時(shí)無害,POST會(huì)再次提交請(qǐng)求。GET瀏覽器會(huì)主動(dòng)緩存請(qǐng)求,POST不,除非手動(dòng)設(shè)置。GET請(qǐng)求參數(shù)將完全保留在瀏覽器歷史記錄中,POST參數(shù)不會(huì)保留。GET請(qǐng)求在URL中間傳輸?shù)膮?shù)有長(zhǎng)度限制,POST沒有限制。GET參數(shù)通過URL傳遞,POST放在Requestbody中。五、Http狀態(tài)碼
狀態(tài)代碼由三位數(shù)組成。第一個(gè)數(shù)字定義響應(yīng)類別,分為五類:
1xx:指示信息——表示已接收請(qǐng)求并繼續(xù)處理。2xx:成功——表示請(qǐng)求已被成功接受、理解和接受。3xx:重定向——要完成要求,必須進(jìn)一步操作。4xx:客戶端錯(cuò)誤——語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)。5xx:服務(wù)器端錯(cuò)誤——服務(wù)器未能滿足法律要求。例如,我們通常有兩種常見的錯(cuò)誤狀態(tài)碼:
403Forbidden//禁止訪問被要求頁面404NotFound//請(qǐng)求資源不存在,例如輸入錯(cuò)誤URL
看看這篇文章《兩個(gè)有趣的地圖幫助你理解》HTTP狀態(tài)碼》
六、連接持久
1.為什么需要持久連接?
HTTP在協(xié)議的初始版本中,每次進(jìn)行一次HTTP通信必須斷開一次TCP連接。就當(dāng)年的通信情況而言,即便如此,也沒有什么問題,因?yàn)樗鼈兌际切∪萘康奈谋緜鬏?。可隨著HTTP文檔中包含大量圖片的普及越來越多。例如,使用瀏覽器瀏覽包含多張圖片的圖片HTML發(fā)送請(qǐng)求訪問頁面時(shí)HTML同時(shí),頁面資源也會(huì)要求HTML頁面中包含的其他資源。因此,每一個(gè)請(qǐng)求都會(huì)導(dǎo)致不必要的TCP建立和斷開連接,增加通信成本。
2.連接持久的特點(diǎn)
為解決上述TCP連接問題,HTTP/1.1和一部分的HTTP/1.想出了持久連接(HTTPPersistentConnections,也稱為HTTPkeep-alive或HTTPconnectionreuse)方法。持久連接的特點(diǎn)是,只要任何一端沒有明確提出斷開連接,保持連接TCP連接狀態(tài)。
持久連接的優(yōu)點(diǎn)是減少了TCP重復(fù)建立和斷開連接造成的額外費(fèi)用減輕了服務(wù)器端的負(fù)載。此外,減少費(fèi)用的時(shí)間使HTTP請(qǐng)求和響應(yīng)可以提前結(jié)束,以便Web頁面的顯示速度也相應(yīng)提高。
在HTTP/1.默認(rèn)情況下,所有連接都是持久連接,但在1中HTTP/1.0內(nèi)部沒有標(biāo)準(zhǔn)化。雖然一些服務(wù)器通過非標(biāo)準(zhǔn)手段實(shí)現(xiàn)了持久連接,但服務(wù)器端可能無法支持持久連接。毫無疑問,除了服務(wù)器端,客戶端還需要支持久連接。
七、管線化
持久連接使大多數(shù)請(qǐng)求成為管道(pipelining)發(fā)送方式是可能的。在發(fā)送下一個(gè)請(qǐng)求之前,需要等待并收到響應(yīng)。管道技術(shù)出現(xiàn)后,下一個(gè)請(qǐng)求可以直接發(fā)送,無需等待響應(yīng)。
這樣,多個(gè)請(qǐng)求就可以并行發(fā)送,而不需要一個(gè)接一個(gè)地等待響應(yīng)。一般來說,請(qǐng)求包裝一次傳輸過去,響應(yīng)包裝一次傳輸回來。管道化的前提是在持久連接下。
如果要求一張包含10張圖片的圖片HTMLWeb頁面,與挨個(gè)連接相比,用持久連接可以讓請(qǐng)求更快結(jié)束。管道技術(shù)比持久連接更快。請(qǐng)求越多,時(shí)差越明顯??蛻魝€(gè)資源需要客戶端的要求。以前的做法是同一個(gè)TCP在連接中,先發(fā)送A請(qǐng)求,然后等待服務(wù)器響應(yīng),收到B請(qǐng)求,等等,管道機(jī)制允許瀏覽器同時(shí)發(fā)送10個(gè)請(qǐng)求,但服務(wù)器仍然按順序響應(yīng)A請(qǐng)求,完成B請(qǐng)求。
因此,在使用持久連接的情況下,連接上的信息傳遞類似于:
請(qǐng)求1->響應(yīng)1->請(qǐng)求2->響應(yīng)2->請(qǐng)求3->響應(yīng)3
管道發(fā)送變成了類似的:
請(qǐng)求1->請(qǐng)求2->請(qǐng)求3->響應(yīng)1->響應(yīng)2->響應(yīng)3
騰佑科技提供SSL證書服務(wù)價(jià)格低至299/年;騰佑科技為活動(dòng)期間購(gòu)買的用戶提供免費(fèi)安裝ssl技術(shù)支持服務(wù)證書,免費(fèi)定制安全解決方案,使數(shù)據(jù)更安全!任何問題都可以隨時(shí)咨詢?cè)诰€客戶服務(wù)!
騰佑科技(www.mubashirfilms.com)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網(wǎng)基礎(chǔ)設(shè)施及軟硬件于一體化的高新技術(shù)企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質(zhì),并擁有多個(gè)國(guó)家版權(quán)局認(rèn)證。公司自成立以來,一直致力于發(fā)展互聯(lián)網(wǎng)IDC數(shù)據(jù)中心DataCenter、云計(jì)算Cloud、大數(shù)據(jù)BigDate、人工智能AI、內(nèi)容加速CDN、互聯(lián)網(wǎng)安全、軟件定制開發(fā)等產(chǎn)品服務(wù)及行業(yè)客戶技術(shù)一體化智能解決方案;2018年成為百度智能云AI河南服務(wù)中心。
售前咨詢熱線:400-996-8756
備案提交:0371-89913068
售后客服:0371-89913000
搜索詞
熱門產(chǎn)品推薦