HTTP協(xié)議,全稱為超文本傳輸協(xié)議,其HTTP幾個縮寫字母的含義為(HyperTest Transfer Protocol),本質(zhì)上是一種用于分布式,協(xié)助式的信息系統(tǒng)應(yīng)用層協(xié)議,也是我們所熟悉的萬維網(wǎng)的通訊基礎(chǔ)。
HTTP的誕生年代并不久遠(yuǎn),在1989年由歐洲的核子研究組織(CERN)發(fā)起,由萬維網(wǎng)協(xié)會(W3C)與互聯(lián)網(wǎng)工程組(IETF)討論協(xié)調(diào),多方共同制定下才有了HTTP1.1作為第一個正式發(fā)表的標(biāo)準(zhǔn)。
HTTP本質(zhì)上是一種客戶端(用戶端),與服務(wù)器端(網(wǎng)站)進行數(shù)據(jù)的請求和應(yīng)答的標(biāo)準(zhǔn),相當(dāng)于標(biāo)準(zhǔn)的數(shù)據(jù)交互必須滿足這一統(tǒng)一標(biāo)準(zhǔn),來方便各方對數(shù)據(jù)的解析與使用,而HTTP作為一種架設(shè)在TCP通信層之上的應(yīng)用層協(xié)議,相當(dāng)于對TCP傳輸?shù)倪@類數(shù)據(jù)做了相關(guān)的規(guī)范,實現(xiàn)一統(tǒng)。比如我們訪問某一個網(wǎng)站,那么客戶端會向服務(wù)器發(fā)起一個HTTP的請求到指定的端口(通常為80端口),那么服務(wù)器在收到這個標(biāo)注的HTTP請求后,需要對這個請求產(chǎn)生應(yīng)答,而應(yīng)答的內(nèi)容則是服務(wù)器上存儲的HTML文件(也就是網(wǎng)頁上看到的內(nèi)容)和圖像數(shù)據(jù),這些回復(fù)同樣必須滿足HTTP標(biāo)準(zhǔn),否則回復(fù)給客戶端的數(shù)據(jù)是無法正常解析的。
前面已經(jīng)概括性地說明了HTTP的工作流程,核心就是請求與回復(fù)的標(biāo)準(zhǔn),也提到了其是建立在TCP層上的一個應(yīng)用層協(xié)議,那么他們詳細(xì)的交互過程是怎么樣的呢?
首先第一步,客戶端需要先連接到指定的web服務(wù)器,當(dāng)你打開瀏覽器輸入網(wǎng)址訪問時,瀏覽器會在后臺創(chuàng)建一個TCP客戶端,向服務(wù)器端請求連接,端口就是前面講到的,一般為80端口。
第二步,后臺需要進行HTTP組包,也就是HTTP協(xié)議的核心,一則數(shù)據(jù),到底長什么樣,需要有什么標(biāo)準(zhǔn),才是協(xié)議的本質(zhì),比如如下一則請求信息,他應(yīng)當(dāng)包含有這些部分。
這樣一則數(shù)據(jù)將會被發(fā)送至服務(wù)器,服務(wù)器需要在解析前面部分后對數(shù)據(jù)部分進行回復(fù),需要注意的是,服務(wù)器是不對來訪數(shù)據(jù)進行保存的,也沒有重發(fā)機制,所以請求失敗是不可逆的,如果失敗需要重新發(fā)起請求。
第三步,服務(wù)器需要對數(shù)據(jù)進行返回,返回數(shù)據(jù)同樣需要滿足HTTP的協(xié)議標(biāo)準(zhǔn),比如如下一則回復(fù)數(shù)據(jù):
當(dāng)客戶端收到了來自于服務(wù)器的返回后,需要根據(jù)HTTP頭部對整個協(xié)議包進行解析,如果解析正確,就可以取出數(shù)據(jù)部分進行使用了,這個數(shù)據(jù)部分可以是多種類型,比如像是上圖的請求類型,是設(shè)備向服務(wù)器發(fā)起請求,想要獲取到此時設(shè)備需要連接的MQTT服務(wù)器的信息以及設(shè)備本身需要接入mqtt服務(wù)器所需的三要素,這種請求也可以返回HTML格式的文檔,也就是我們熟悉的網(wǎng)頁文件,瀏覽器收到這個文件解析出來,就可以顯示到屏幕上,成為了我們所見到的網(wǎng)頁,這種數(shù)據(jù)也可以是文件,圖像等,相當(dāng)于協(xié)議只是載體,一個擁有標(biāo)準(zhǔn)的載體,其承載的數(shù)據(jù)類型是可以不同的。
最后一步,HTTP是一種默認(rèn)的短鏈接協(xié)議,眾所周知TCP層是面向連接的,但是封裝成HTTP用戶層協(xié)議后,再發(fā)起數(shù)據(jù)請求,服務(wù)器返回數(shù)據(jù),客戶端解析出正常數(shù)據(jù)后,是需要斷開連接的,這樣也是為了減少服務(wù)器的壓力。
最后是需要說明一下HTTPS,HTTP傳輸協(xié)議雖然應(yīng)用廣泛,但是其本質(zhì)是一種明文協(xié)議,也就是協(xié)議本身有著不小的安全隱患,其數(shù)據(jù)容易被截取并解析,于是HTTPS應(yīng)運而生,其本質(zhì)就是在HTTP協(xié)議上又增加了一層加密層,對數(shù)據(jù)進行加密,加密方法多種多樣,客戶端與服務(wù)器端雙方根據(jù)加密所需的秘鑰,對數(shù)據(jù)進行加密與解密,來得到正確的數(shù)據(jù)。
HTTP傳輸協(xié)議到目前為止所有的版本可以分為HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0、HTTP 3.0,其中普遍應(yīng)用的是HTTP 1.1版本,正在推進HTTP 2.0版本,以及未來的HTTP 3.0版本,HTTP 3.0協(xié)議利用QUIC作為底層支撐協(xié)議,其融合UDP協(xié)議的速度、性能與TCP的安全可靠,解決了HTTP 2.0中引入的一些缺點,優(yōu)化了互聯(lián)網(wǎng)的傳輸體驗
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3