TCP/IP、HTTP 和 HTTPS簡介

我們來系統地介紹一下 TCP/IP、HTTP 和 HTTPS。它們之間的關系可以概括為:??HTTP 和 HTTPS 是運行在 TCP/IP 基礎網絡架構之上的具體應用協議??。

為了更直觀地理解它們之間的關系,我們可以參考下面的網絡分層模型:

flowchart TDsubgraph A [應用層 - 定義應用數據的格式與功能]direction LRA1[HTTP]A2[HTTPS<br>=HTTP + TLS/SSL]endsubgraph T [傳輸層 - 建立“端到端”的可靠連接]T1[TCP]endsubgraph N [網絡層 - 負責“點對點”的地址與路由]N1[IP]endsubgraph L [網絡接口層 - 負責在物理網絡中傳輸幀]L1[以太網 Ethernet<br>Wi-Fi 等]endA -- 承載于 --> TT -- 承載于 --> NN -- 承載于 --> L

下面我們來詳細解釋每一部分。


1. TCP/IP - 互聯網的基石

TCP/IP 不是一個協議,而是一個??協議族??(Protocol Suite),它是整個互聯網通信的基礎架構。

  • ??設計思想??:采用分層模型(如上圖所示),每一層負責不同的通信功能,層與層之間相互獨立。這種設計使得網絡更具靈活性和可擴展性。
  • ??核心組成??:
    • ??IP (Internet Protocol - 網際協議)??:位于網絡層。它主要負責兩件事:
      1. ??尋址??:為互聯網上的每一臺設備分配一個唯一的邏輯地址,即 ??IP 地址??(如 192.168.1.1)。
      2. ??路由??:將數據包從一個網絡設備傳輸到另一個設備。它會把數據分割成一個個的“包”(Packet),并盡力將它們送到目的地。但IP協議本身是??不可靠??的,它不保證數據包一定能到達、也不保證按順序到達。
    • ??TCP (Transmission Control Protocol - 傳輸控制協議)??:位于傳輸層。它在IP協議的基礎上,提供了??可靠??的、??面向連接??的通信服務,彌補了IP協議的不足。
      • ??可靠性??:通過確認機制、重傳機制、校驗和等來確保數據完整無誤地到達。
      • ??面向連接??:在傳輸數據前,會先進行“三次握手”建立連接,傳輸結束后再進行“四次揮手”斷開連接。
      • ??順序保證??:對數據包進行排序,確保接收方收到的數據順序和發送方一致。
    • ??比喻??:如果把數據傳輸比作寄信:
      • ??IP協議??負責的是在信封上寫地址,并把信件扔進郵筒。它只管送,不保證對方一定能收到。
      • ??TCP協議??則像是一家可靠的快遞公司,它確認地址無誤(建立連接),如果信件在途中丟失,它會重新再寄一份(重傳),并且確保收件人按正確的順序收到所有信件(排序)。

??簡單總結:TCP/IP 是底層負責通信的基礎設施,它定義了數據如何打包、尋址、傳輸、路由和接收,確保數據能從一臺計算機的某個程序準確無誤地送達另一臺計算機的某個程序。??


2. HTTP - Web通信的語言

HTTP (HyperText Transfer Protocol - 超文本傳輸協議) 是構建在 TCP/IP 基礎之上的??應用層協議??。它是萬維網(WWW)的數據通信基礎。

  • ??作用??:它定義了客戶端(通常是Web瀏覽器)和服務器之間如何交換信息。它專門負責傳輸??超文本??(如HTML網頁)、圖片、CSS、JavaScript等Web內容。
  • ??工作模式??:基于經典的??請求-響應模型??。
    1. 客戶端(瀏覽器)向服務器的特定端口(默認80)發起一個 ??HTTP請求??。
    2. 服務器處理請求后,返回一個 ??HTTP響應??。
  • ??特點??:
    • ??無狀態??:每個請求都是獨立的,服務器不會記住上一次的請求是誰發的。這簡化了服務器設計,但需要通過Cookie、Session等技術來跟蹤用戶狀態(如登錄狀態)。
    • ??明文傳輸??:HTTP傳輸的數據(包括密碼、信用卡號等敏感信息)都是未加密的明文。這意味著數據在傳輸過程中可能被中間人竊聽或篡改,??非常不安全??。

??簡單總結:HTTP 是Web的“普通話”,瀏覽器和服務器都用它來“對話”,但它說話是公開的,誰都能聽見,不安全。??


3. HTTPS - 安全的HTTP

HTTPS (HyperText Transfer Protocol Secure - 超文本傳輸安全協議) 不是一個新的協議,而是 ??HTTP over SSL/TLS?? 的簡稱。

  • ??本質??:它在HTTP和TCP之間加入了一個??安全層??(SSL/TLS協議)。
  • ??作用??:這個安全層主要提供三個核心安全功能:
    1. ??加密??:通過SSL/TLS證書對通信內容進行加密,防止數據在傳輸過程中被竊聽。即使被截獲,攻擊者看到的也只是亂碼。
    2. ??完整性校驗??:通過摘要算法驗證數據在傳輸過程中是否被篡改。
    3. ??身份認證??:通過SSL證書驗證網站服務器的真實性,防止用戶訪問到假冒的釣魚網站。(瀏覽器地址欄的鎖標志“🔒”就代表此認證已通過)。
  • ??工作端口??:默認使用??443??端口。
  • ??與HTTP的關系??:HTTPS = HTTP + 加密 + 認證 + 完整性保護。

??簡單總結:HTTPS 是穿著盔甲、戴著防偽面具的HTTP。它用加密來防竊聽,用認證來防假冒,用校驗來防篡改,極大地提升了Web通信的安全性。?? 現在,HTTPS已經成為所有網站的標配,尤其是涉及用戶隱私和支付的網站。


總結與關系

特性TCP/IPHTTPHTTPS
??層級??網絡層、傳輸層應用層應用層(HTTP + SSL/TLS)
??角色??互聯網通信的??基礎架構??Web內容的??傳輸協議????安全版??的Web內容傳輸協議
??安全性??不直接提供安全保證??不安全??,明文傳輸??安全??,加密傳輸
??功能??尋址、路由、建立可靠連接定義Web請求和響應的格式在HTTP基礎上增加加密、認證
??比喻??高速公路和交通規則在高速公路上運輸的??明信片??在高速公路上運輸的??加密保險箱??

??最終關系可以理解為:??
??HTTPS?? 是在 ??HTTP?? 之上增加了安全保障,而 ??HTTP?? 和 ??HTTPS?? 又是依靠底層的 ??TCP/IP?? 協議來最終完成數據傳輸的。

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

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

相關文章

【30】C#實戰篇——獲取路徑下的文件名(不包含路徑和擴展名),文件名由連續的數字編號+連續的字母編號組成,并分離出文件名數字部分和英文部分

文章目錄1 要求2 分析 與 實現1 要求 寫一個函數&#xff0c;獲取路徑下的文件名&#xff08;不包含路徑和擴展名&#xff09;&#xff0c;并分離出文件名fileName &#xff0c;文件名編號SN&#xff0c;文件名前綴WMT &#xff1b; 輸入文件路徑&#xff0c;解析出不帶"…

EasyExcel部署Docker缺少字體報錯

報文 java.lang.NullPointerException: nullat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)at sun.awt.FontConfiguration.init(FontConfiguration.java:107)at sun.awt.…

從“收款工具”到“智能中樞”:AI如何重構POS系統的技術架構與商業價值?

引?:從交易終端到智能中樞的?字路? 在現代商業的繁忙圖景中 ,銷售點( Point of Sale, POS) 系統?期以來被視為交易流程的終點 ——?個簡單完成收款、打印票據的?具。然? ,這?認知正在被迅速顛覆。 隨著數字經濟的深 化 ,POS系統已演變為連接顧客、 商品與服務的…

unity以戰斗截圖并加上微信二維碼分享

開發游戲時&#xff0c;會遇到戰斗結算&#xff0c;成就等獎勵界面&#xff0c;鼓勵玩家分享到朋友圈&#xff0c;這時通常會在圖片上加上一些內容&#xff0c;比如游戲Logo&#xff0c;二維碼下載等內容。現在分享一下我制作游戲分享圖片的過程。第一步首先截圖&#xff0c;截…

新手向:實現驗證碼程序

本文將從零開始&#xff0c;通過一個簡單的驗證碼程序。即使你沒有任何編程基礎&#xff0c;也能跟著這篇文章一步步學習。第一章&#xff1a;Java開發環境搭建1.1 安裝JDK要開始Java編程&#xff0c;首先需要安裝Java開發工具包(JDK)。JDK是Java開發的核心環境&#xff0c;包含…

使用Flask實現接口回調地址

使用Flask實現接口回調地址 一、接口回調的基本概念 接口回調&#xff08;Callback&#xff09;是一種異步通信機制&#xff0c;當某個事件發生時&#xff08;如支付完成、任務結束&#xff09;&#xff0c;服務提供方會主動調用預先配置的URL&#xff08;即回調地址&#xff0…

vue2+jessibuca播放h265視頻

文檔地址&#xff1a;http://jessibuca.monibuca.com/api.html#background 1,文件放在public中 2,在html中引入 3&#xff0c;子組件 <template><div :id"container id"></div> </template><script> export default {props: [url,…

Behavioral Fingerprinting of Large Language Models

Behavioral Fingerprinting of Large Language Models Authors: Zehua Pei, Hui-Ling Zhen, Ying Zhang, Zhiyuan Yang, Xing Li, Xianzhi Yu, Mingxuan Yuan, Bei Yu Deep-Dive Summary: 行為指紋識別大型語言模型 摘要 當前的大型語言模型&#xff08;LLMs&#xff09;基…

某互聯網大廠的面試go語言從基礎到實戰的經驗和總結

### 一面 #### 1. **實習項目**- 可以簡要描述你的項目經歷&#xff0c;最好是與職位相關的項目。如果是與技術棧相關的項目&#xff0c;比如 Go、C、Golang 或 Python&#xff0c;重點講述項目中的技術細節和你如何解決問題。#### 2. **Go學習多久**- 說明你學習 Go 語言的時間…

掌握Java控制流:編程決策的藝術

控制流語句是用來 控制程序執行順序 的關鍵工具&#xff0c;它們允許你根據不同的條件執行不同的代碼塊&#xff0c;或者重復執行某段代碼。這使得程序能夠根據輸入和情況做出智能的決策&#xff0c;而不僅僅是線性的執行。1. 條件語句 (Conditional Statements)條件語句允許你…

Docker 安裝 MySQL 和 Redis 完整指南

前言 在開發環境中,使用 Docker 安裝數據庫服務是一種快速、便捷的方式。本文將詳細介紹如何在 macOS 上使用 Docker 安裝 MySQL 和 Redis,并解決國內網絡訪問 Docker Hub 的問題。 環境準備 macOS 系統 Docker Desktop 已安裝 網絡連接 配置 Docker 國內鏡像源 方法一:通…

Spring Boot---自動配置原理和自定義Starter

1.自動配置原理2.自定義starter①dmybatis-spring-boot-autoconfigure步驟一&#xff1a;先創建項目步驟二&#xff1a;導入響應的依賴步驟三&#xff1a;創建自動配置的配置類步驟四&#xff1a;創建配置文件項目結構②dmybatis-spring-boot-starter步驟一&#xff1a;先創建項…

【后端】MySQL 常用 SQL 語句大全

整理一份 MySQL 常用 SQL 語句大全&#xff0c;從基礎操作到進階查詢&#xff0c;都涵蓋。方便日常開發和學習參考。1. 數據庫操作-- 查看所有數據庫 SHOW DATABASES;-- 創建數據庫 CREATE DATABASE db_name;-- 刪除數據庫 DROP DATABASE db_name;-- 使用數據庫 USE db_name;--…

[iOS] 單例模式的深究

文章目錄前言一、什么是單例模式二、單例模式的優缺點優點缺點三、模式介紹1.懶漢模式&#xff08;GCD & 互斥鎖&#xff09;GCD 寫法互斥鎖寫法&#xff08;雙重檢查鎖&#xff09;2.餓漢模式總結懶漢式 互斥鎖&#xff08;Mutex&#xff09;**懶漢式 GCD (dispatch_onc…

解決Discord.py中的/help命令問題

在使用Discord.py開發機器人時,常常會遇到一些常見的問題,比如命令找不到或者命令功能不符合預期。本文將詳細探討如何解決在使用@bot.slash_command定義/help命令時遇到的問題,并提供一個完整的實例來展示如何正確設置這個命令。 問題描述 當你在Discord機器人中輸入/hel…

解決VSCode默認F5配置無法啟動調試器的問題

前幾天做筆試&#xff0c;最后一題代碼有點問題&#xff0c;習慣性地按了個F5啟動gdb發現居然爆炸了&#xff0c;報錯找不到編譯出來的二進制文件&#xff0c;看著像是默認配置的問題&#xff0c;由于時間緊迫最后只能用輸出大法解決。 感覺不可理喻&#xff0c;幾年前調程序的…

webrtc弱網-LossBasedBweV2類源碼分析與算法原理

1. 核心功能LossBasedBweV2是WebRTC Google Congestion Control (GoogCC) 算法套件中的第二代基于丟包的帶寬估計器。它的核心功能是&#xff1a;帶寬估計&#xff1a; 根據網絡數據包的丟失情況&#xff0c;估算當前網絡路徑可用的帶寬上限。其核心假設是&#xff1a;當發送速…

AI代理化檢索:智能信息獲取新范式

代理化檢索(Agentic Retrieval)是一種由AI代理自主管理的信息檢索范式,通過動態規劃、工具調用和多步推理提升復雜查詢的處理能力。其核心機制、技術實現和應用特點如下: 一、核心機制 自主決策循環 代理通過循環執行"規劃-行動-觀察"流程處理查詢: 規劃階段:…

Android Studio中的各種Java版本區別

Android Studio中的各種Java版本 創建一個項目&#xff0c;app模塊的build.gradle.kts默認配置如下&#xff1a; plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android) }android {namespace "cn.android666.javaversiontest"comp…

ubuntu新增磁盤擴展LV卷

登錄平臺 login as: wqbboy wqbboy172.17.2.86s password: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSyst…