【心得】一文梳理高頻面試題 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的區別并附加記憶方法

面試時很容易遇到的一個問題—— HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的區別,其實這四個版本的發展實際上是一環扣一環的,是逐步完善的,本文希望幫助讀者梳理清楚各個版本之間的區別,并且給出當前各個版本的應用情況,以及總結了兩個記憶口訣,希望對大家有幫助。

文章目錄

  • 一、HTTP各版本協議的應用情況
  • 二、HTTP 1.0與HTTP 1.1的區別
    • 1.連接方式
    • 2.Host頭字段
    • 3.請求方式
    • 4.管道化
    • 5.狀態碼
    • 6.緩存處理
    • 7.斷點續傳
    • 記憶口訣
  • 三、HTTP 1.1與HTTP 2.0的區別
    • 1.頭部壓縮
    • 2.傳輸格式
    • 3.數據包發送順序(多路復用)
    • 4.記憶口訣
  • 四、HTTP 2.0與HTTP 3.0的區別
    • 1、 傳輸層協議
    • 2、 連接建立速度:
    • 3、 隊頭堵塞
    • 4、 錯誤恢復
    • 5、 安全性
  • 總結


一、HTTP各版本協議的應用情況

HTTP協議自誕生以來,有一下幾個比較重要的版本:

HTTP/1.0
HTTP/1.1
HTTP/2(也可以叫做HTTP 2.0)
HTTP/3(也可以叫做HTTP 3.0)

其中:
? HTTP/1.1 是目前最廣泛使用的版本
? HTTP/2 和 HTTP/3 是現代高性能 Web 應用的首選協議,HTTP/3 正在逐步普及。
而HTTP/1.0已經被廢棄了。

二、HTTP 1.0與HTTP 1.1的區別

1.連接方式

HTTP 1.0默認為短連接,每次請求需新建TCP連接(三次握手),響應后立即關閉?。HTTP 1.1默認持久連接,允許復用TCP連接發送多個請求,減少握手開銷?。

2.Host頭字段

HTTP1.0 無強制HOST頭,無法區分同一IP的不同虛擬主機,而HTTP1.1必須包含Host頭,支持虛擬主機技術(如多域名共享服務器)?

3.請求方式

HTTP 1.0?:僅支持GET、HEAD、POST三種方法?
HTTP 1.1?:新增OPTIONS、PUT、DELETE、TRACE、CONNECT方法,功能更豐富?

4.管道化

HTTP 1.0 必須等待響應后再發送新請求?
HTTP 1.1 支持管道化,可連續發送多個請求(但響應需按順序返回)?

5.狀態碼

HTTP 1.1新增了24個錯誤狀態響應碼,如100 Continue 410 Gone

6.緩存處理

?HTTP 1.0?:僅支持Expires和If-Modified-Since,依賴絕對時間?36。
?HTTP 1.1?:新增Cache-Control(如max-age)、ETag,支持更靈活的相對時間緩存策略?

7.斷點續傳

HTTP 1.1增加了Range字段,支持斷點續傳,而HTTP 1.0則沒有

記憶口訣

持久連接省握手,區分節點HOST頭,請求方式更多有,管道連發多請求,狀態緩存續傳牛。

三、HTTP 1.1與HTTP 2.0的區別

1.頭部壓縮

HTTP 1.1?:頭部字段重復傳輸(如Cookie),占用帶寬?。
?HTTP 2.0?:如果你發出了多個請求,并且它們的頭部(header)是相同的,那么 HTTP2 協議會幫你消除同樣的部分。

2.傳輸格式

HTTP 1.1?:基于文本格式解析,兼容性強但效率低?。
?HTTP 2.0?:采用二進制分幀傳輸(二進制幀),解析更快、健壯性更強。?

3.數據包發送順序(多路復用)

HTTP 1.1:單個TCP連接需按順序處理請求,存在隊頭阻塞問題,需建立多個連接并行傳輸?。
HTTP 2.0: HTTP/2 的數據包不是按順序發送的,同?個連接??連續的數據包,可能屬于不同的回應。(對數據包做了標記,標志其屬于哪一個請求,其中規定客戶端發出的數據流編號為奇數,服務器發出的數據流編號為偶數。客戶端還可以指定數據流的優先級,優先級?的請求,服務器就先響應該請求)

4.記憶口訣

二部曲(二:二進制格式傳輸,部:頭部壓縮,曲(序):數據包發送不按順序)

四、HTTP 2.0與HTTP 3.0的區別

這個呢是一環扣一環的 只要記住一個是TCP 一個是UDP 其余的區別都是可以推理出來的,故不需要口訣

1、 傳輸層協議

HTTP 2.0:基于TCP
HTTP 3.0: 基于UDP(并基于QUIC協議來實現可靠連接)

2、 連接建立速度:

HTTP 2.0: 需要TCP三次握手+TLS三次握手,建立速度較慢
HTTP 3.0:只需要QUIC的三次握手( ?0-RTT 或 1-RTT 連接建立?),速度很快

3、 隊頭堵塞

需要說明的是,HTTP 2.0相比于HTTP 1.1,基于多路復用(就是那個數據包的發送順序),已經解決了應用層的隊頭阻塞。
但是由于HTTP 2.0是基于TCP的,所以在傳輸層,若底層 TCP 數據包丟失或延遲,所有通過該連接傳輸的 HTTP/2 流需等待 TCP 重傳,導致?傳輸層隊頭阻塞。
而HTTP 3.0通過改用 QUIC(基于 UDP)徹底規避了傳輸層阻塞?。

4、 錯誤恢復

HTTP 2.0 依賴 TCP 的?重傳機制?,恢復速度受限于 TCP 擁塞控制算法?
HTTP 3.0 QUIC 內置?快速重傳與恢復機制?,通過前向糾錯(FEC)減少丟包影響?

5、 安全性

?HTTP 2.0?:通常依賴 ?HTTPS?(需額外 TLS 握手),但協議本身未強制加密?
?HTTP 3.0?:QUIC ?原生集成 TLS 1.3?,加密為默認且不可關閉,安全性更高?

總結

HTTP協議的迭代始終圍繞?性能優化、效率提升、安全性增強?展開,不同版本的核心區別也需從上述方面進行理解記憶。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72187.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大模型部署與調優:從基礎到高效優化全解析

大模型部署與調優:從基礎到高效優化全解析 1. 引言 隨著深度學習的快速發展,大模型(Large Models) 在自然語言處理(NLP)、計算機視覺(CV)、推薦系統等領域的應用日益廣泛。然而&am…

小紅書app復制短鏈,分享鏈接轉直接可訪問鏈接

簡介:小紅書手機app分享的鏈接需要點擊才能獲取完成鏈接,本文教大家如何通過代碼的方式將xhs的短連接轉化為長鏈接。 1.正常我們分享的鏈接是這樣的: 44 小豬吃宵夜發布了一篇小紅書筆記,快來看吧! 😆 KeA…

DeepSeek 助力 Vue3 開發:打造絲滑的彈性布局(Flexbox)

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏關注哦 💕 目錄 Deep…

DeepSeek開源周Day5壓軸登場:3FS與Smallpond,能否終結AI數據瓶頸之爭?

2025年2月28日,DeepSeek開源周迎來了第五天,也是本次活動的收官之日。自2月24日啟動以來,DeepSeek團隊以每天一個開源項目的節奏,陸續向全球開發者展示了他們在人工智能基礎設施領域的最新成果。今天,他們發布了Fire-F…

SQL AnyWhere 的備份與恢復

目錄 一、備份 二、恢復 1、自動恢復 2、映像恢復 3、日志恢復-指定時間點 4、日志恢復-指定偏移 5、完整的恢復流程 6、恢復最佳實踐 三、其他操作 1、dbtran 2、SQL Shell 工具 數據庫的安裝與基本使用內容請參考博客: SAP SQLAnyWhere 17 的安裝與基本使用_sql…

入門基礎項目(SpringBoot+Vue)

文章目錄 1. css布局相關2. JS3. Vue 腳手架搭建4. ElementUI4.1 引入ElementUI4.2 首頁4.2.1 整體框架4.2.2 Aside-logo4.2.3 Aside-菜單4.2.4 Header-左側4.2.5 Header-右側4.2.6 iconfont 自定義圖標4.2.7 完整代碼 4.3 封裝前后端交互工具 axios4.3.1 安裝 axios4.3.2 /src…

unity學習61:UI布局layout

目錄 1 布局 layout 1.1 先準備測試UI,新增這樣一組 panel 和 image 1.2 新增 vertical layout 1.3 現在移動任意一個image 都會影響其他 1.3.1 對比 如果沒有這個,就會是覆蓋效果了 1.3.2 對比 如果沒有這個,就會是覆蓋效果了 1.4 總結&#xf…

翻譯: 深入分析LLMs like ChatGPT 一

大家好,我想做這個視頻已經有一段時間了。這是一個全面但面向普通觀眾的介紹,介紹像ChatGPT這樣的大型語言模型。我希望通過這個視頻讓大家對這種工具的工作原理有一些概念性的理解。 首先,我們來談談你在這個文本框里輸入內容并點擊回車后背…

Ubuntu 下 nginx-1.24.0 源碼分析 - ngx_conf_add_dump

ngx_conf_add_dump 定義在src\core\ngx_conf_file.c static ngx_int_t ngx_conf_add_dump(ngx_conf_t *cf, ngx_str_t *filename) {off_t size;u_char *p;uint32_t hash;ngx_buf_t *buf;ngx_str_node_t *sn;ngx_conf_dump_t *cd;has…

Oracle 導出所有表索引的創建語句

在Oracle數據庫中,導出所有表的索引創建語句通常涉及到使用數據字典視圖來查詢索引的定義,然后生成對應的SQL語句。你可以通過查詢DBA_INDEXES或USER_INDEXES視圖(取決于你的權限和需求)來獲取這些信息。 使用DBA_INDEXES視圖 如…

快速搭建多語言網站的 FastAdmin 實踐

快速搭建多語言網站的 FastAdmin 實踐 引言 在全球化的背景下,越來越多的網站需要支持多種語言,以便滿足不同用戶的需求。FastAdmin 是一個基于 ThinkPHP 的快速后臺開發框架,提供了豐富的功能和靈活的擴展性,非常適合用于快速搭…

Python 實戰:構建分布式文件存儲系統全解析

Python 實戰:構建分布式文件存儲系統全解析 在當今數據爆炸的時代,分布式文件存儲系統憑借其高可擴展性、高可靠性等優勢,成為了數據存儲領域的熱門選擇。本文將詳細介紹如何使用 Python 構建一個簡單的分布式文件存儲系統。從系統架構設計&…

【綜合項目】api系統——基于Node.js、express、mysql等技術

目錄 0 前言 1 初始化 2 注冊登錄 2.1 注冊 2.1.1 功能:密碼加密(2.3.3) 2.1.1.1 操作 2.1.1.2 bcryptjs詳解 2.1.2 插入新用戶(2.3.4) 2.1.3 優化:表單數據驗證(2.5) …

tableau之標靶圖、甘特圖和瀑布圖

一、標靶圖 概念 標靶圖(Bullet Chart)是一種用于顯示數據與目標之間關系的可視化圖表,常用于業務和管理報告中。其設計旨在用來比較實際值與目標值,同時展示額外的上下文信息(如趨勢)。 作用 可視化目標…

Linux下的網絡通信編程

在不同主機之間,進行進程間的通信。 1解決主機之間硬件的互通 2.解決主機之間軟件的互通. 3.IP地址:來區分不同的主機(軟件地址) 4.MAC地址:硬件地址 5.端口號:區分同一主機上的不同應用進程 網絡協議…

網絡七層模型—OSI參考模型詳解

網絡七層模型:OSI參考模型詳解 引言 在網絡通信的世界中,OSI(Open Systems Interconnection)參考模型是一個基礎且核心的概念。它由國際標準化組織(ISO)于1984年提出,旨在為不同廠商的設備和應…

530 Login fail. A secure connection is requiered(such as ssl)-java發送QQ郵箱(簡單配置)

由于cs的csdN許多文章關于這方面的都是vip文章,而本文是免費的,希望廣大網友覺得有幫助的可以多點贊和關注! QQ郵箱授權碼到這里去開啟 授權碼是16位的字母,填入下面的mail.setting里面的pass里面 # 郵件服務器的SMTP地址 host…

Sqlserver安全篇之_TLS的證書概念

證書的理解 參考Sqlserver的官方文檔https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/certificate-overview?viewsql-server-ver16 TLS(Transport Layer Security)傳輸層安全和SSL(Secure Sockets Layer)安全套接字層協議位于應用程序協議層和TCP/…

【SQL】掌握SQL查詢技巧:數據分組與排序

目錄 1. GROUP BY 1.1 定義與用途1.2 示例說明1.3 注意事項1.4 可視化示例 2. ORDER BY 2.1 定義與用途2.2 升序說明(默認)2.3 降序排序2.4 多列排序2.5 可視化示例 3. GROUP BY 與 ORDER BY 的結合使用4. 可視化示例總結 在數據庫管理中,S…

SOME/IP-SD -- 協議英文原文講解6

前言 SOME/IP協議越來越多的用于汽車電子行業中,關于協議詳細完全的中文資料卻沒有,所以我將結合工作經驗并對照英文原版協議做一系列的文章。基本分三大塊: 1. SOME/IP協議講解 2. SOME/IP-SD協議講解 3. python/C舉例調試講解 5.1.3.1 E…