Http與Https區別和聯系

一、HTTP 詳解

HTTP(HyperText Transfer Protocol)?? 是互聯網數據通信的基礎協議,用于客戶端(瀏覽器)與服務器之間的請求-響應交互

核心特性??:

1.無連接(Connectionless)??

每次請求/響應后立即斷開 TCP 連接(早期 HTTP/1.0)。HTTP/1.1 默認啟用持久連接(Connection: keep-alive),但邏輯上仍視為獨立的請求

2.無狀態(Stateless)??

??核心問題??:服務器不記錄先前請求的任何信息(如用戶登錄狀態)

協議層特性??:HTTP 協議本身不保存任何請求上下文,??每個請求相互獨立

優點??
  • 服務器無需存儲狀態 → 降低內存占用

  • 易擴展:適合負載均衡(請求可轉發至任意后端服務器)

影響??

每個請求都被視為全新請求,無法直接關聯用戶身份

有狀態

為構建邏輯上的“有狀態”,需在應用層添加額外機制

解決方案??:

  • ??Cookie??:服務器通過響應頭?Set-Cookie在客戶端存儲標識符

  • ??Session??:服務器生成唯一 Session ID 綁定用戶狀態(依賴 Cookie 傳遞 ID)

  • ??Token(如 JWT)??:客戶端在請求頭攜帶加密令牌(Authorization: Bearer <token>

??方案??

??原理??

??示例??

??Cookie??

服務器通過?Set-Cookie在客戶端存儲標識符(如會話ID)

Set-Cookie: user_id=abc123; Path=/

??Session??

服務器存儲用戶狀態(內存/數據庫),通過 Cookie 中的 Session ID 關聯用戶

服務端存儲:{ "abc123": {username:"Alice"} }

??Token??

客戶端存儲加密令牌(如 JWT),包含用戶信息及簽名,服務器無需存儲狀態

Authorization: Bearer eyJhbGciOi...

注意??:

  • 這些方案在 ??HTTP 上層??構建狀態,??不改變 HTTP 無狀態本質??。

  • Session 依賴集中存儲(如 Redis),高并發場景需解決分布式一致性

無狀態vs有狀態的對比與關聯

??維度??

??無狀態(原生 HTTP)??

??有狀態(應用層實現)??

??協議設計??

請求獨立,無記憶性

通過 Cookie/Session/Token 關聯用戶

??服務器復雜度??

高(需管理 Session 存儲、Token 驗證)

??擴展性??

?????? 優秀(無狀態易水平擴展)

???? 中等(需共享 Session 存儲機制)

??安全性??

弱(明文傳輸)

可疊加 HTTPS 增強安全

??典型應用??

靜態資源請求、API 無狀態調用

用戶登錄、購物車、個性化服務

核心聯系??:

  • ??狀態管理建立在 HTTP 之上??:所有狀態方案需通過 HTTP 頭(Cookie/Authorization)傳遞標識

  • ??HTTPS 是安全基石??:Cookie/Session ID/Token 需通過 HTTPS 傳輸防止竊取

典型應用場景分析
無狀態優先場景??
  • ??RESTful API 設計??:

    GET /api/products/123  # 請求包含完整資源標識符,無需上下文

    → 符合 HTTP 無狀態特性,易于緩存和擴展。

  • ??CDN 靜態資源分發??:圖片、CSS 等文件通過無狀態請求分發 → 支持邊緣節點緩存

??有狀態必需場景??
  • ??用戶登錄系統??:

    • 登錄請求 → 服務器返回 Session ID(HTTPS + Cookie)

    • 后續請求攜帶 Session ID → 服務器驗證身份

  • ??電商購物車??:用戶添加商品 → 服務器通過 Session 關聯用戶存儲購物車數據

  • ??金融交易??:敏感操作需 Token(JWT)驗證身份及權限,并強制 HTTPS 加密

??HTTPS 強制場景??
  • ??所有涉及隱私的場景??:登錄、支付、個人信息修改

  • ??防止中間人攻擊??:公共 Wi-Fi 下的網絡請求

  • ??合規性要求??:GDPR、PCI-DSS 等法規強制加密

關鍵結論
?底層差異??
  • HTTP 在 TCP 上明文傳輸。

  • HTTPS 通過 TLS/SSL 實現加密隧道。

??狀態管理真相??
  • HTTP 協議??天生無狀態??

  • “有狀態服務”是??應用層通過 Cookie/Session/Token 模擬??的邏輯狀態

??應用選擇原則??

??需求??

??技術選型??

公開靜態資源

HTTP + 無狀態

用戶身份驗證

HTTPS + Cookie/Session

分布式 API

HTTPS + JWT(無狀態 Token)

高性能敏感操作

HTTPS + 短時效 Token

💡 ??終極架構建議??:

  • ??全站 HTTPS??:現代瀏覽器已標記 HTTP 站點為“不安全”

  • ??狀態最小化??:優先使用無狀態 Token(JWT)降低服務器負擔

  • ??分層設計??:

[客戶端] → HTTPS → [API 網關] → 無狀態微服務(認證/業務分離)

3.請求/響應模型??

  • ??請求方法??:GET(獲取資源)、POST(提交數據)、PUT/DELETE(更新/刪除)等

  • ??狀態碼??:

    • 200 OK:成功

    • 404 Not Found:資源不存在

    • 500 Internal Server Error:服務器錯誤

4.URL 結構??

http://host:port/path?query=value#fragment

  • 明文傳輸所有數據(路徑、參數、Cookie 可見)

HTTP 底層(TCP 協議棧)

|-----------------------|
|      應用層 (HTTP)     | → 定義數據格式(請求頭/響應體)
|-----------------------|
|      傳輸層 (TCP)      | → 建立可靠連接(三次握手),保證數據完整
|-----------------------|
|      網絡層 (IP)       | → 路由尋址(IP 數據包傳輸)
|-----------------------|
| 數據鏈路層 (Ethernet)  | → 物理設備間數據幀傳輸
|-----------------------|

關鍵過程??

  • 1.客戶端通過 DNS 解析域名 → 獲取目標服務器 IP
  • 2.TCP三次握手建立連接(SYN → SYN/ACK → ACK)
  • 3.HTTP 發送明文請求:GET /index.html HTTP/1.1
  • 4.服務器返回明文響應:HTTP/1.1 200 OK+ HTML 內容
  • 5.TCP 四次揮手斷開連接(FIN → ACK)

?

二、HTTPS 詳解

HTTPS(HTTP Secure)?? = HTTP + SSL/TLS 加密層,解決 HTTP 的安全風險

核心機制??:

?1.加密(Encryption)??

  • ??對稱加密??:傳輸數據時使用共享密鑰(效率高)

  • ??非對稱加密??:交換對稱密鑰時使用公鑰/私鑰(防止竊聽)

  • ??流程??(簡化):

    • 客戶端請求服務器公鑰
    • 用公鑰加密隨機生成的??對稱密鑰??并發送給服務器
    • 雙方使用對稱密鑰加密后續通信

2.??身份驗證(Authentication)??

  • ??數字證書??:由可信 ??CA(證書頒發機構)?? 簽發,證明服務器身份

  • 瀏覽器驗證證書有效性(是否過期、域名匹配、CA 是否可信)

?3.數據完整性(Integrity)??

  • TLS 使用 MAC(消息認證碼)防止數據篡改

優勢??

  • 防竊聽(加密數據)

  • 防篡改(數據完整性校驗)

  • 防冒充(證書驗證身份)

??HTTPS 底層(TLS/SSL 加密層)

|-----------------------|
|         HTTP          |
|-----------------------|
|        TLS/SSL        | → 加密、身份驗證、數據完整性保護
|-----------------------|
|          TCP          |
|-----------------------|

?TLS 握手核心步驟??

  • ??Client Hello??:客戶端發送支持的加密算法 + 隨機數?ClientRandom
  • ??Server Hello??:服務器選擇加密算法,返回證書 + 隨機數?ServerRandom
  • ??證書驗證??:客戶端驗證服務器證書合法性(CA 鏈校驗)
  • ??密鑰交換??:
    • 客戶端生成 ??Pre-Master Key?? → 用證書公鑰加密后發送給服務器

    • 雙方通過?ClientRandom + ServerRandom + Pre-Master Key生成 ??Master Secret??(對稱加密密鑰)

  • ??加密通信??:后續所有 HTTP 數據使用對稱加密傳輸

技術要點??

  • ??非對稱加密??(RSA/ECC)用于安全交換??對稱密鑰??

  • ??對稱加密??(AES)用于高效加密應用層數據

  • ??數字簽名??(SHA256)保證數據未被篡改

三、HTTP 的“無狀態” vs “有狀態”方案

??特性??

??無狀態(Stateless)??

??有狀態(Stateful)方案??

??協議本質??

HTTP 協議本身無狀態

通過技術手段模擬狀態

??典型場景??

基本 HTTP 請求

登錄狀態、購物車數據

??實現方式??

無額外處理

Cookie + Session / JWT / Token

??服務器壓力??

低(無狀態存儲)

高(需存儲 Session 數據)

??擴展性??

高(易于水平擴展)

依賴 Session 共享機制(如 Redis 集群)

??注??:HTTP 協議始終是??無狀態??的,"有狀態服務"指應用層通過技術(如Session)實現的邏輯狀態

四、關鍵區別對比(HTTP vs HTTPS)

??特性??

??HTTP??

??HTTPS??

??端口??

80

443

??加密??

? 明文傳輸

? TLS/SSL 加密

??身份驗證??

? 無驗證

? CA 證書驗證服務器身份

??數據安全??

易被竊聽/篡改

防竊聽、防篡改、防冒充

??性能??

? 更高(無加密開銷)

?? 略低(加密/解密消耗資源)

??使用場景??

不敏感信息(如靜態頁面)

登錄、支付、隱私數據

五、如何解決 HTTP 無狀態?

??1.Cookie 機制??

  • 服務器通過?Set-Cookie響應頭設置鍵值對

  • 瀏覽器每次請求自動攜帶?Cookie

??2.Session 機制??

  • 服務器創建 Session 存儲用戶狀態(內存/數據庫)

  • 通過 Cookie 傳遞 Session ID 綁定用戶

3.??Token 機制(如 JWT)??

  • 服務器生成加密 Token 包含用戶信息

  • 客戶端存儲 Token 并在請求頭(Authorization)中發送

??注意??:這些方案在??應用層??實現狀態管理,??不改變 HTTP 無狀態本質??

六.總結

  • ??HTTP??:高效、無狀態、明文傳輸,適用于非敏感場景

  • ??HTTPS??:通過 SSL/TLS 實現加密、身份認證和數據完整性,必用于安全場景

  • ??狀態管理??:需依賴 Cookie/Session/Token 等方案構建邏輯狀態

選擇 HTTP/HTTPS 取決于數據敏感性,而狀態管理是構建復雜應用的必然需求

?

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

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

相關文章

飛算JavaAI:開啟 Java 開發 “人機協作” 新紀元

每日一句 明天是新的一天&#xff0c; 你也不再是昨天的你。 目錄每日一句一、需求到架構&#xff1a;AI深度介入開發“源頭設計”1.1 需求結構化&#xff1a;自然語言到技術要素的精準轉化1.2 架構方案生成&#xff1a;基于最佳實踐的動態適配二、編碼全流程&#xff1a;從“…

Qt項目鍛煉——TODO(五)

發現問題如果是自己創建的ui文件&#xff0c;怎么包含進自己的窗口類并且成為ui成員&#xff1f;一般來說Qt designer 會根據你.ui文件生成對應的ui_文件名這個類&#xff08;文件名是ui文件名&#xff09;&#xff0c;它包含了所有 UI 組件&#xff08;如按鈕、文本框、標簽等…

Vue框架之模板語法全面解析

Vue框架之模板語法全面解析一、模板語法的核心思想二、插值表達式&#xff1a;數據渲染的基礎2.1 基本用法&#xff1a;渲染文本2.2 純HTML渲染&#xff1a;v-html指令2.3 一次性插值&#xff1a;v-once指令三、指令系統&#xff1a;控制DOM的行為3.1 條件渲染&#xff1a;v-if…

從零開始的語言模型構建 CS336 第一課(一)

語言模型的發展歷史 &#x1f3d7; Early foundation models (2010年代后期) 2018&#xff1a;ELMo&#xff08;基于 LSTM 預訓練 微調&#xff09;[Peters 2018]2018&#xff1a;BERT&#xff08;基于 Transformer 預訓練 微調&#xff09;[Devlin 2018]2019&#xff1a;G…

微信獲取access_token授權的兩種不同情況

1.網頁授權&#xff1a;需要頁面調用授權的sdk&#xff0c;首先需要獲取到code參數 &#xff08;A.網頁版的獲取code參考另一篇文章&#xff1a;https://blog.csdn.net/ettamei/article/details/148763361?spm1011.2415.3001.5331 B.前端sdk提供&#xff1a;code只有5分鐘的有…

達夢數據庫windows靜默安裝

<DATABASE> <!-- 安裝數據庫的語言配置&#xff0c;簡體中文版: ZH&#xff0c;繁體中文版: CHT&#xff0c;英文版: EN&#xff0c;不區分大小寫。不允許為空 --> <LANGUAGE>ZH</LANGUAGE> <!-- 安裝程序的時區配置&#xff0c;缺省為08:00&#…

20250709榮品RD-RK3588開發板的Android13系統下修改為連續長按10s開機

20250709榮品RD-RK3588開發板的Android13系統下修改為連續長按10s開機 2025/7/9 10:11緣起&#xff1a;由于榮品RD-RK3588開發板使用的PMIC是RK806。 以前在榮品PRO-RK3566開發板上使用的PMIC是RK809上做過了長按開機的。 直接遷移過來了&#xff01;1、根據RK809的DATASHEET&a…

20250713-`Seaborn.pairplot` 的使用注意事項

Seaborn.pairplot 的使用注意事項 sns.pairplot 是 Seaborn 中最常用、最強大的探索性數據分析&#xff08;EDA&#xff09;函數之一。 它在一個調用里就能同時展示&#xff1a; 任意兩兩變量間的 散點圖&#xff08;觀察關系、聚類、異常值&#xff09;對角線上每個變量的 單…

如何選擇合適的AI論文寫作工具?七個AI英文論文寫作網站

在寫作英文論文時&#xff0c;許多人往往會遇到寫作思路卡殼、語言不流暢、重復率過高等問題。幸運的是&#xff0c;AI論文寫作工具的出現&#xff0c;極大地提升了寫作效率和質量。這些工具不僅可以幫你快速生成內容、擴展論點&#xff0c;還可以優化語言&#xff0c;幫助你順…

【保姆級喂飯教程】idea中安裝Conventional Commit插件

目錄前言一、安裝二、測試前言 之前了解到了Conventional Commit規范&#xff0c;idea中好像沒什么鉤子工具&#xff0c;測試一下Conventional Commit插件吧 一、安裝 點擊file-settings 點擊plugins插件&#xff0c;搜索Conventional Commit&#xff0c;點擊install安裝&…

# 電腦每次重啟都自動啟動惠普安裝程序,怎么取消?

電腦每次重啟都自動啟動惠普安裝程序&#xff0c;怎么取消&#xff1f; 一、通過任務管理器禁用&#xff1a; 1&#xff09;右鍵點擊任務欄上的空白區域&#xff0c;選擇 “任務管理器”。 2&#xff09;在任務管理器窗口中&#xff0c;點擊頂部菜單欄上的 “啟動” 選項卡。 3…

QT遇到過的樣式記錄

此帖主要記錄平常工程里遇到的qt樣式 窗口無邊框 原始文檔 void QWidget::setWindowFlag(Qt::WindowType flag, bool on true) Sets the window flag flag on this widget if on is true; otherwise clears the flag. This function was introduced in Qt 5.9. See also se…

軟件設計師中級概念題

軟件過程模型 1. 瀑布模型&#xff1a; 五個階段&#xff1a;需求分析、設計、編碼、測試、運行與維護。 為軟件的開發和維護提供了一種有效的管理模式&#xff0c;它是以文檔作為驅動、合適于軟件需求很明確的軟件項目模型。瀑布模型假設&#xff0c;一個待開發的系統需求是完…

Elasticsearch安裝、入門、基礎API操作、全文檢索、精準查詢、地理查詢、復合查詢、排序、分頁、高亮、數據聚合、自動補全、數據同步、ES集群

學習資料&#xff1a; 通過網盤分享的文件&#xff1a;Elasticsearch 鏈接: https://pan.baidu.com/s/18BxA0BH0G–jwy95uFmFZQ 提取碼: yyds 初識ES正向索引倒排索引ES與MySQL 概念對比安裝ES操作索引庫mapping屬性創建索引庫{"mappings": {"properties":…

教程:如何查看瀏覽器擴展程序的源碼

在學習前端、自動化或擴展開發時&#xff0c;我們常常會想研究某個瀏覽器插件的實現邏輯。即使擴展沒有公開源碼&#xff0c;只要我們本地安裝了它&#xff0c;就可以查看它的完整源代碼進行學習。? 方法一&#xff1a;從瀏覽器插件目錄提取源碼 第一步&#xff1a;打開擴展程…

虛擬儲能與分布式光伏協同優化:新型電力系統的靈活性解決方案

安科瑞顧強摘要&#xff1a; 在全球能源結構向低碳化、智能化加速轉型的背景下&#xff0c;分布式光伏的大規模接入為電力系統帶來機遇的同時&#xff0c;也因其波動性與間歇性帶來了運行挑戰。本文聚焦于虛擬儲能系統&#xff08;Virtual Energy Storage System, VESS&#xf…

java valueOf方法

一,什么是valueOf方法?valueOf是java包裝類(比如Long,Integer等)中提供的一個靜態方法二,valueOf的主要作用是什么主要作用是將其他類型的數據轉換為當前包裝類的對象三,代碼實例:咱們以Long.valueOf為例,1,他可以接受一個long類型的數值,返回對應的Long對象(把基本類型long包…

工業平板電腦 vs 消費級平板:從防護等級到使用壽命全方面對比

平板電腦已經廣泛應用于各個行業。但你知道嗎&#xff1f;市面上常見的“平板”其實可以分為兩大類&#xff1a;工業平板電腦和消費級平板電腦。雖然它們看起來都是“平板”&#xff0c;但用途、性能和適用場景卻大不相同。今天&#xff0c;我們就來聊聊這兩者的區別&#xff0…

MySQL技術筆記-索引+慢 SQL+鎖 全鏈路優化實戰

目錄 前言 MySQL索引 一、概述 二、索引分類 &#xff08;一&#xff09;按功能特性分類 &#xff08;二&#xff09;按存儲方式分類 &#xff08;三&#xff09;按數據結構分類 &#xff08;四&#xff09;按索引字段數量分類 三、索引的優缺點 &#xff08;一&…

S7-1200 與 S7-300 PNS7-400 PN UDP 通信 TIA 相同項目

7-1200 與 S7-300 PN/S7-400 PN UDP 通信 TIA 相同項目S7-1200 與 S7-300 PN 口之間的以太網通信可以通過 UDP 協議來實現&#xff0c;使用的通信指令是在雙方 CPU 調用通信-開放式用戶通信TSEND_C&#xff0c;TRCV_C&#xff08;1200支持&#xff0c;300不支持&#xff09;或T…