摘要:服務(wù)器只有處理完一個(gè)請求,才會(huì)接著處理下一個(gè)請求。如果前面的處理特別慢,后面就會(huì)有許多請求排隊(duì)等著。則是一個(gè)徹底的二進(jìn)制協(xié)議,頭信息和數(shù)據(jù)體都是二進(jìn)制,并且統(tǒng)稱為幀頭信息幀和數(shù)據(jù)幀。報(bào)頭壓縮協(xié)議是沒有狀態(tài),導(dǎo)致每次請求都必須附上所有信息。
一、HTTP/1.x Http1.x
缺陷:線程阻塞,在同一時(shí)間,同一域名的請求有一定數(shù)量限制,超過限制數(shù)目的請求會(huì)被阻塞
http1.0缺陷:瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服務(wù)器建立一個(gè)TCP連接(TCP連接的新建成本很高,因?yàn)樾枰蛻舳撕头?wù)器三次握手),服務(wù)器完成請求處理后立即斷開TCP連接,服務(wù)器不跟蹤每個(gè)客戶也不記錄過去的請求;
解決方案:
添加頭信息——非標(biāo)準(zhǔn)的Connection字段Connection: keep-alive
http1.1:改進(jìn)點(diǎn):
持久連接
引入了持久連接,即TCP連接默認(rèn)不關(guān)閉,可以被多個(gè)請求復(fù)用,不用聲明Connection: keep-alive(對于同一個(gè)域名,大多數(shù)瀏覽器允許同時(shí)建立6個(gè)持久連接)
管道機(jī)制
即在同一個(gè)TCP連接里面,客戶端可以同時(shí)發(fā)送多個(gè)請求。
分塊傳輸編碼
即服務(wù)端沒產(chǎn)生一塊數(shù)據(jù),就發(fā)送一塊,采用”流模式”而取代”緩存模式”。
新增請求方式
PUT:請求服務(wù)器存儲(chǔ)一個(gè)資源;
DELETE:請求服務(wù)器刪除標(biāo)識的資源;
OPTIONS:請求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求;
TRACE:請求服務(wù)器回送收到的請求信息,主要用于測試或診斷;
CONNECT:保留將來使用
缺點(diǎn):
雖然允許復(fù)用TCP連接,但是同一個(gè)TCP連接里面,所有的數(shù)據(jù)通信是按次序進(jìn)行的。服務(wù)器只有處理完一個(gè)請求,才會(huì)接著處理下一個(gè)請求。如果前面的處理特別慢,后面就會(huì)有許多請求排隊(duì)等著。這將導(dǎo)致“隊(duì)頭堵塞”
避免方式:一是減少請求數(shù),二是同時(shí)多開持久連接
二、HTTP/2.0特點(diǎn):
采用二進(jìn)制格式而非文本格式;
完全多路復(fù)用,而非有序并阻塞的、只需一個(gè)連接即可實(shí)現(xiàn)并行;
使用報(bào)頭壓縮,降低開銷
服務(wù)器推送
1. 二進(jìn)制協(xié)議
HTTP/1.1 版的頭信息肯定是文本(ASCII編碼),數(shù)據(jù)體可以是文本,也可以是二進(jìn)制。HTTP/2 則是一個(gè)徹底的二進(jìn)制協(xié)議,頭信息和數(shù)據(jù)體都是二進(jìn)制,并且統(tǒng)稱為”幀”:頭信息幀和數(shù)據(jù)幀。
二進(jìn)制協(xié)議解析起來更高效、“線上”更緊湊,更重要的是錯(cuò)誤更少。
2. 完全多路復(fù)用
HTTP/2 復(fù)用TCP連接,在一個(gè)連接里,客戶端和瀏覽器都可以同時(shí)發(fā)送多個(gè)請求或回應(yīng),而且不用按照順序一一對應(yīng),這樣就避免了”隊(duì)頭堵塞”。
3. 報(bào)頭壓縮
HTTP 協(xié)議是沒有狀態(tài),導(dǎo)致每次請求都必須附上所有信息。所以,請求的很多頭字段都是重復(fù)的,比如Cookie,一樣的內(nèi)容每次請求都必須附帶,這會(huì)浪費(fèi)很多帶寬,也影響速度。
對于相同的頭部,不必再通過請求發(fā)送,只需發(fā)送一次;
HTTP/2 對這一點(diǎn)做了優(yōu)化,引入了頭信息壓縮機(jī)制;
一方面,頭信息使用gzip或compress壓縮后再發(fā)送;
另一方面,客戶端和服務(wù)器同時(shí)維護(hù)一張頭信息表,所有字段都會(huì)存入這個(gè)表,產(chǎn)生一個(gè)索引號,之后就不發(fā)送同樣字段了,只需發(fā)送索引號。
4. 服務(wù)器推送
HTTP/2 允許服務(wù)器未經(jīng)請求,主動(dòng)向客戶端發(fā)送資源;
通過推送那些服務(wù)器任務(wù)客戶端將會(huì)需要的內(nèi)容到客戶端的緩存中,避免往返的延遲
三、HTTPSHTTP協(xié)議通常承載于TCP協(xié)議之上,在HTTP和TCP之間添加一個(gè)安全協(xié)議層(SSL或TSL),這個(gè)時(shí)候,就成了我們常說的HTTPS.
1、HTTPS主要作用- (1)對數(shù)據(jù)進(jìn)行加密,并建立一個(gè)信息安全通道,來保證傳輸過程中的數(shù)據(jù)安全; - (2)對網(wǎng)站服務(wù)器進(jìn)行真實(shí)身份認(rèn)證。2、HTTPS和HTTP的區(qū)別
- 1、HTTPS是加密傳輸協(xié)議,HTTP是名文傳輸協(xié)議; - 2、HTTPS需要用到SSL證書,而HTTP不用; - 3、HTTPS比HTTP更加安全,對搜索引擎更友好,利于SEO, - 4、 HTTPS標(biāo)準(zhǔn)端口443,HTTP標(biāo)準(zhǔn)端口80; - 5、 HTTPS基于傳輸層,HTTP基于應(yīng)用層;3、HTTPS和HTTP的工作過程區(qū)別
HTTP 包含動(dòng)作:
瀏覽器打開一個(gè) TCP 連接
瀏覽器發(fā)送 HTTP 請求到服務(wù)器端
服務(wù)器發(fā)送 HTTP 回應(yīng)信息到瀏覽器
TCP 連接關(guān)閉
SSL 包含動(dòng)作:
驗(yàn)證服務(wù)器端
客戶端和服務(wù)器端選擇加密算法和密碼,確保雙方都支持
驗(yàn)證客戶端(可選)
使用公鑰加密技術(shù)來生成共享加密數(shù)據(jù)
創(chuàng)建一個(gè)加密的 SSL 連接
基于該 SSL 連接傳遞 HTTP 請求
3、HTTPS加密方式對稱加密:加密和解密都是使用的同一個(gè)密鑰;
非對稱加密:
加密使用的密鑰和解密使用的密鑰是不相同的,分別稱為:公鑰、私鑰;
公鑰和算法都是公開的,私鑰是保密的。
非對稱加密過程:
服務(wù)端生成配對的公鑰和私鑰
私鑰保存在服務(wù)端,公鑰發(fā)送給客戶端
客戶端使用公鑰加密明文傳輸給服務(wù)端
服務(wù)端使用私鑰解密密文得到明文
數(shù)字簽名:簽名就是在信息的后面再加上一段內(nèi)容,可以證明信息沒有被修改過。
“積跬步、行千里”—— 持續(xù)更新中~,喜歡留下個(gè)贊哦!
往期經(jīng)典好文:
JavaScript經(jīng)典面試題匯總
我的前端面試日記
相關(guān)好文推薦:
http報(bào)文詳解
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95514.html
摘要:靈活允許傳輸任意類型的數(shù)據(jù)對象。無連接每次響應(yīng)一個(gè)請求,響應(yīng)完成以后就斷開連接。無狀態(tài)服務(wù)器不保存瀏覽器的任何信息。每次提交的請求之間沒有關(guān)聯(lián)。非流水線發(fā)出一個(gè)報(bào)文,等到響應(yīng),再發(fā)下一個(gè)報(bào)文。同時(shí),流還支持優(yōu)先級和流量控制。 版權(quán)聲明:本文為博主原創(chuàng)文章,遵循[ CC 4.0by-sa ](http://creativecommons.org/li...,轉(zhuǎn)載請附上原文出處鏈接和本...
摘要:一端用私鑰加密,另一端用公鑰解密,也確保了來源目前現(xiàn)在好像使用了數(shù)字簽名就萬無一失了,其實(shí)還有問題。如果公鑰被偽造了,后面的數(shù)字簽名其實(shí)就毫無意義了。具有校驗(yàn)機(jī)制,一旦被篡改,通信雙方會(huì)立刻發(fā)現(xiàn)。配備身份證書,防止身份被冒充。 一、前言 只有光頭才能變強(qiáng) HTTP博文回顧: PC端:HTTP就是這么簡單 PC端:HTTP面試題都在這里 微信公眾號端:HTTP就是這么簡單 微信公眾號端...
閱讀 1122·2021-11-23 10:05
閱讀 1805·2021-11-12 10:36
閱讀 1862·2019-08-30 15:56
閱讀 1698·2019-08-29 12:32
閱讀 3056·2019-08-28 18:04
閱讀 3441·2019-08-26 12:17
閱讀 2512·2019-08-26 11:35
閱讀 1253·2019-08-23 15:11