目錄
HTTP/1.1 的優(yōu)點有哪些?
HTTP/1.1 的缺點有哪些?
HTTP 1.0,1.1,2.0,3.0 的主要區(qū)別
HTTP/1.1 相比 HTTP/1.0 提高了什么性能?
HTTP/2 做了什么優(yōu)化?
HTTP/3 做了哪些優(yōu)化?
HTTP/1.1 的優(yōu)點有哪些?
HTTP 最突出的優(yōu)點是「簡單、靈活和易于擴展、應(yīng)用廣泛和跨平臺」。
1. 簡單
HTTP 基本的報文格式就是 header + body,頭部信息也是 key-value 簡單文本的形式,易于理解
2. 靈活和易于擴展
HTTP 協(xié)議里的各類請求方法、URI/URL、狀態(tài)碼、頭字段等每個組成要求都沒有被固定死,都允許開發(fā)人員自定義和擴充。
同時 HTTP 由于是工作在應(yīng)用層,則它下層可以隨意變化,比如:
- HTTPS 就是在 HTTP 與 TCP 層之間增加了 SSL/TLS 安全傳輸層;
3. 應(yīng)用廣泛和跨平臺
互聯(lián)網(wǎng)發(fā)展至今,HTTP 的應(yīng)用范圍非常的廣泛,從臺式機的瀏覽器到手機上的各種 APP,從看新聞、刷貼吧到購物、理財、吃雞,HTTP 的應(yīng)用遍地開花,同時天然具有跨平臺的優(yōu)越性。
HTTP/1.1 的缺點有哪些?
1. 無狀態(tài)雙刃劍
無狀態(tài)的壞處,既然服務(wù)器沒有記憶能力,它在完成有關(guān)聯(lián)性的操作時會非常麻煩。
例如登錄->添加購物車->下單->結(jié)算->支付,這系列操作都要知道用戶的身份才行。但服務(wù)器不知道這些請求是有關(guān)聯(lián)的,每次都要問一遍身份信息。
這樣每操作一次,都要驗證信息,這樣的購物體驗還能愉快嗎?別問,問就是酸爽!
2. 明文傳輸雙刃劍
HTTP 的所有信息都暴露在了光天化日下,相當(dāng)于信息裸奔。在傳輸?shù)穆L的過程中,信息的內(nèi)容都毫無隱私可言,很容易就能被竊取,如果里面有你的賬號密碼信息,那你號沒了。
3. 不安全
HTTP 比較嚴(yán)重的缺點就是不安全:
- 通信使用明文(不加密),內(nèi)容可能會被竊聽。比如,賬號信息容易泄漏,那你號沒了。
- 不驗證通信方的身份,因此有可能遭遇偽裝。比如,訪問假的淘寶、拼多多,那你錢沒了。
- 無法證明報文的完整性,所以有可能已遭篡改。比如,網(wǎng)頁上植入垃圾廣告,視覺污染,眼沒了。
HTTP 1.0,1.1,2.0,3.0 的主要區(qū)別
HTTP/1.1 相比 HTTP/1.0 提高了什么性能?
HTTP/1.1 相比 HTTP/1.0 性能上的改進(jìn):
- 使用長連接的方式改善了 HTTP/1.0 短連接造成的性能開銷。
- 支持管道網(wǎng)絡(luò)傳輸,只要第一個請求發(fā)出去了,不必等其回來,就可以發(fā)第二個請求出去,可以減少整體的響應(yīng)時間。
但 HTTP/1.1 還是有性能瓶頸:
- 請求 / 響應(yīng)頭部未經(jīng)壓縮就發(fā)送,首部信息越多延遲越大。只能壓縮 Body 的部分;
- 發(fā)送冗長的首部。每次互相發(fā)送相同的首部造成的浪費較多;
- 服務(wù)器是按請求的順序響應(yīng)的,如果服務(wù)器響應(yīng)慢,會招致客戶端一直請求不到數(shù)據(jù),也就是隊頭阻塞;
- 沒有請求優(yōu)先級控制;
- 請求只能從客戶端開始,服務(wù)器只能被動響應(yīng)。
HTTP/2 做了什么優(yōu)化?
HTTP/2 協(xié)議是基于 HTTPS 的,所以 HTTP/2 的安全性也是有保障的。
那 HTTP/2 相比 HTTP/1.1 性能上的改進(jìn):
- 頭部壓縮
- 二進(jìn)制格式
- 并發(fā)傳輸
- 服務(wù)器主動推送資源
1. 頭部壓縮
HTTP/2 會壓縮頭如果你同時發(fā)出多個請求,他們的頭是一樣的或是相似的,那么,協(xié)議會幫你消除重復(fù)的部分。
2. 二進(jìn)制格式
HTTP/2 不再像 HTTP/1.1 里的純文本形式的報文,而是全面采用了二進(jìn)制格式。
這樣雖然對人不友好,但是對計算機非常友好,因為計算機只懂二進(jìn)制,那么收到報文后,無需再將明文的報文轉(zhuǎn)成二進(jìn)制,而是直接解析二進(jìn)制報文,這增加了數(shù)據(jù)傳輸?shù)男?/strong>。
3. 并發(fā)傳輸
我們都知道 HTTP/1.1 的實現(xiàn)是基于請求-響應(yīng)模型的。同一個連接中,HTTP 完成一個事務(wù)(請求與響應(yīng)),才能處理下一個事務(wù),也就是說在發(fā)出請求等待響應(yīng)的過程中,是沒辦法做其他事情的,如果響應(yīng)遲遲不來,那么后續(xù)的請求是無法發(fā)送的,也造成了隊頭阻塞的問題。
HTTP/2就解決了這個問題,可以并發(fā)傳輸
4、服務(wù)器推送
HTTP/2 還在一定程度上改善了傳統(tǒng)的「請求 - 應(yīng)答」工作模式,服務(wù)端不再是被動地響應(yīng),可以主動向客戶端發(fā)送消息。
HTTP/3 做了哪些優(yōu)化?
前面我們知道了 HTTP/1.1 和 HTTP/2 都有隊頭阻塞的問題:文章來源:http://www.zghlxwxcb.cn/news/detail-729899.html
- HTTP/1.1 中的管道雖然解決了請求的隊頭阻塞,但是沒有解決響應(yīng)的隊頭阻塞,因為服務(wù)端需要按順序響應(yīng)收到的請求,如果服務(wù)端處理某個請求消耗的時間比較長,那么只能等響應(yīng)完這個請求后, 才能處理下一個請求,這屬于 HTTP 層隊頭阻塞。
- HTTP/2 雖然通過多個請求復(fù)用一個 TCP 連接解決了 HTTP 的隊頭阻塞 ,但是一旦發(fā)生丟包,就會阻塞住所有的 HTTP 請求,這屬于 TCP 層隊頭阻塞。
HTTP/2 隊頭阻塞的問題是因為 TCP,所以 HTTP/3 把 HTTP 下層的 TCP 協(xié)議改成了 UDP!文章來源地址http://www.zghlxwxcb.cn/news/detail-729899.html
到了這里,關(guān)于【HTTP版本】HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0等重點知識匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!