計算機網絡——HTTP/IP 協議通俗入門詳解

HTTP/IP 協議通俗入門詳解

    • 一、什么是 HTTP 協議?
      • 1. 基本定義
      • 2. HTTP 是怎么工作的?
    • 二、HTTP 協議的特點
    • 三、HTTPS 是什么?它和 HTTP 有啥區別?
      • 1. HTTPS 概述
      • 2. HTTP vs HTTPS
    • 四、HTTP 的通信過程
      • 步驟詳解:
    • 五、常見 HTTP 請求方法
    • 六、HTTP 狀態碼詳解
    • 七、HTTP 1.0 和 HTTP 1.1 的區別
    • 八、HTTPS 建立連接過程詳解
    • 九、HTTP 會話結束的判斷方式
    • 十、IP 地址 vs MAC 地址
    • 總結

一、什么是 HTTP 協議?

1. 基本定義

HTTP(HyperText Transfer Protocol)超文本傳輸協議,是一種基于 TCP/IP 協議應用層協議,用于客戶端(瀏覽器)和服務端(Web服務器)之間的數據傳輸。

HTTP 協議讓你能打開網頁、下載圖片、發送表單請求等。比如你打開百度首頁,其實就是瀏覽器向服務器發起了一個 HTTP 請求,服務器返回了網頁代碼,你的瀏覽器再把這些內容顯示出來。

2. HTTP 是怎么工作的?

HTTP 是基于 “請求-響應” 模型:

  • 瀏覽器(客戶端)發送一個請求;
  • Web 服務器收到請求并返回響應;
  • 瀏覽器根據響應展示內容。

二、HTTP 協議的特點

特點說明
簡單快速請求格式簡單,處理速度快
靈活支持多種數據類型(HTML、圖片、JSON等)
無連接一次請求完成后就斷開連接
無狀態每次請求獨立,不記得你是誰(除非用 Cookie、Session)
默認端口HTTP 默認使用 80 端口,HTTPS 默認用 443 端口
基于 TCP使用可靠的 TCP 三次握手來建立連接
支持兩種架構B/S(瀏覽器/服務器)、C/S(客戶端/服務器)

三、HTTPS 是什么?它和 HTTP 有啥區別?

1. HTTPS 概述

HTTPS = HTTP + SSL/TLS加密協議
HTTPS 用于保障傳輸安全性,防止信息被竊取或篡改。

2. HTTP vs HTTPS

比較項HTTPHTTPS
是否加密? 明文傳輸? 加密傳輸
安全性
默認端口80443
是否需要證書是(需要 SSL 證書)
握手過程直接通信多一步 SSL 握手協商密鑰
性能稍慢(需要加解密)
成本高(證書可能要錢)

四、HTTP 的通信過程

步驟詳解:

  1. 建立連接
    瀏覽器通過 TCP 協議連接服務器,通常連接的是 80 端口。

  2. 發送請求
    瀏覽器發出 HTTP 請求報文(包含方法、路徑、請求頭等)。

  3. 服務器響應
    服務器返回 HTTP 響應報文(包含狀態碼、內容等)。

  4. 關閉連接
    通信完成后關閉連接(或復用連接)。

  5. 瀏覽器解析內容
    瀏覽器根據 HTML、CSS、JS 渲染最終頁面。


五、常見 HTTP 請求方法

方法用途
GET獲取資源
POST提交表單或數據
PUT上傳新資源
DELETE刪除資源
HEAD類似 GET,但不返回內容體
OPTIONS查詢支持的方法

六、HTTP 狀態碼詳解

狀態碼含義示例說明
200 OK成功頁面正常返回
206 Partial Content成功返回部分內容用于斷點續傳
301 Moved Permanently永久重定向網址永久更改
302 Found臨時重定向短時間跳轉到其他頁面
304 Not Modified內容未修改用于緩存判斷
403 Forbidden無權限訪問服務器拒絕請求
404 Not Found頁面不存在常見的“找不到頁面”
500 Internal Server Error服務器錯誤服務端崩了
503 Service Unavailable服務不可用一般是服務器太忙或維護中

七、HTTP 1.0 和 HTTP 1.1 的區別

項目HTTP 1.0HTTP 1.1
默認連接短連接,每次請求都斷開長連接,支持 Connection: keep-alive
Host頭支持不支持必須支持(支持虛擬主機)
緩存機制簡單支持更多控制頭字段
錯誤狀態碼增加了更多狀態碼如 409、410
斷點續傳不支持,存在浪費帶寬支持(通過 Range 頭實現)
管道化請求不支持支持請求流水線(Pipelining)

八、HTTPS 建立連接過程詳解

  1. 用戶在瀏覽器地址欄輸入,瀏覽器發起 HTTPS 請求;
  2. 服務器返回 SSL 證書(含公鑰);
  3. 瀏覽器驗證證書是否合法(例如由受信任 CA 簽發);
  4. 瀏覽器生成隨機密鑰,并使用公鑰加密;
  5. 服務器使用私鑰解密,生成對稱密鑰;
  6. 后續數據用這個密鑰加密傳輸(對稱加密,效率高)。
graph TDA[瀏覽器發起 HTTPS 請求(Client Hello)] --> B[服務器返回 SSL 證書(含公鑰)]B --> C[瀏覽器驗證證書是否合法]C -->|驗證通過| D[瀏覽器生成隨機對稱密鑰]D --> E[用服務器公鑰加密該密鑰并發送]E --> F[服務器使用私鑰解密獲取對稱密鑰]F --> G[雙方擁有相同的對稱密鑰]G --> H[使用對稱密鑰進行后續數據加密傳輸(如登錄、支付等)]

九、HTTP 會話結束的判斷方式

要判斷 HTTP 會話是否結束,最準確的方法是:

觀察 TCP 是否進行“四次揮手”

  • 客戶端和服務器之間釋放 TCP 連接的標準過程;
  • 表示一個 HTTP 會話結束(如果未啟用長連接)。

十、IP 地址 vs MAC 地址

項目IP 地址MAC 地址
層級網絡層數據鏈路層
作用邏輯地址,確定“你在哪個網絡”物理地址,確定“你是誰”
是否唯一可變(動態分配)全球唯一(寫死在網卡)
舉例192.168.1.1003C:52:82:3A:44:1F
用途路由尋址局域網通信

簡單理解
IP地址像是“郵政編碼+門牌號”,MAC地址像是“身份證號”。


總結

  • HTTP 是基礎網絡通信協議,Web 瀏覽器和服務器都依賴它。
  • HTTPS 是加密版 HTTP,更安全,但成本更高。
  • HTTP 協議本身簡單,但通過狀態碼、請求頭、緩存機制等可以實現強大功能

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

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

相關文章

使用 Java 實現一個簡單且高效的任務調度框架

目錄 一、任務調度系統概述 (一)任務調度的目標 (二)任務調度框架的關鍵組成 二、任務狀態設計 (一)任務狀態流轉設計 (二)任務表設計(SQL) 三、單機任…

基于GPT 模板開發智能寫作輔助應用

目錄 項目說明 1. 項目背景 2. 項目目標 3. 功能需求 4. 技術選型 項目結構 詳細代碼實現 前端代碼(client) client/src/main.js client/src/App.vue client/src/components/HistoryList.vue 后端代碼(server) server/app.js server/routes/api.js server/mo…

linux 使用nginx部署next.js項目,并使用pm2守護進程

前言 本文基于:操作系統 CentOS Stream 8 使用工具:Xshell8、Xftp8 服務器基礎環境: node - 請查看 linux安裝node并全局可用pm2 - 請查看 linux安裝pm2并全局可用nginx - 請查看 linux 使用nginx部署vue、react項目 所需服務器基礎環境&…

使用huggingface_hub需要注意的事項

在安裝huggingface_hub的時候要注意如果你的python是放在c盤下時記得用管理員模式命令行來安裝huggingface_hub,否則安裝過程會報錯,之后也不會有huggingface-cli命令。 如果安裝時因為沒有用管理員權限安裝而報錯了,可以先卸載huggingface-…

Spring MVC @RequestHeader 注解怎么用?

我們來詳細解釋一下 Spring MVC 中的 RequestHeader 注解。 RequestHeader 注解的作用 RequestHeader 注解用于將 HTTP 請求中的**請求頭(Request Headers)**的值綁定到 Controller 方法的參數上。 請求頭是 HTTP 請求的一部分,包含了關于…

Rust 學習筆記:關于結構體的例題

Rust 學習筆記:關于結構體的例題 Rust 學習筆記:關于結構體的例題下面的程序能通過編譯嗎?下面的程序能通過編譯嗎?下面的程序能通過編譯嗎?哪種說法最能描述 Display 和 Debug 特質之間的區別?下面哪個選項…

STM32 SPI通信協議

1. SPI協議概述 1.1 什么是SPI? SPI(Serial Peripheral Interface)是由摩托羅拉公司于1980年代提出的同步串行通信協議,主要用于短距離高速芯片間通信。作為四線制全雙工通信協議,它以簡單的硬件實現和高效的傳輸速率…

92.一個簡單的輸入與顯示示例 Maui例子 C#例子

一、關于項目命名的注意事項 在開發.NET MAUI項目時,項目命名是一個不可忽視的細節。如果你習慣了在C#控制臺或WPF項目中使用中文項目名稱,那么在.NET MAUI中,你可能會遇到一些問題。我之前就因為使用中文項目名稱而導致項目無法直接運行&am…

Locate 3D:Meta出品自監督學習3D定位方法

標題: Locate 3D: Real-World Object Localization via Self-Supervised Learning in 3D 摘要: 我們提出了 Locate 3D,這是一種可根據指代表達(如“沙發和燈之間的小咖啡桌”)在三維場景中定位物體的模型。Locate 3…

FastAPI 與數據庫交互示例

目錄 安裝必要的包完整代碼示例運行應用使用說明API 端點說明代碼解析 下面將創建一個簡單的 FastAPI 應用程序,演示如何與 SQLite 數據庫進行交互。這個例子包括創建、讀取、更新和刪除(CRUD)操作。 安裝必要的包 首先,需要安裝…

YOLO旋轉目標檢測之ONNX模型推理

YOLO旋轉檢測相較于目標檢測而言,其只是最后的輸出層網絡發生了改變,一個最明顯的區別便是:目標檢測的檢測框是xywh,而旋轉檢測則為xywha,其中,這個a代表angle,即旋轉角度,其余的基本…

架構進階:深入學習企業總體架構規劃(Oracle 戰略專家培訓課件)【附全文閱讀】

本文主要討論了企業總體技術架構規劃的重要性與實施建議。針對Oracle戰略專家培訓課件中的內容,文章強調了行業面臨的挑戰及現狀分析、總體技術架構探討、SOA集成解決方案討論與問題解答等方面。文章指出,為了消除信息孤島、強化應用系統,需要…

llamafactory-cli webui啟動報錯TypeError: argument of type ‘bool‘ is not iterable

一、問題 在阿里云NoteBook上啟動llamafactory-cli webui報錯TypeError: argument of type ‘bool’ is not iterable This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run gradio deploy from the terminal in the working directory t…

Gas 優化不足、升級機制缺陷問題

以下是針對智能合約中 Gas 優化不足 與 升級機制缺陷 的技術風險分析與解決方案: 一、Gas 優化不足 1. 核心問題 Gas 優化不足會導致合約執行成本過高,直接影響用戶體驗和協議可行性,尤其在交易高峰期可能引發鏈上擁堵或交易失敗。 2. 常見風險點 冗余計算與存儲操作 例如…

使用xlwings計算合并單元格的求和

有如下一個excel表 表內有合并單元格,現在需要求和,不能直接下拉填充公式怎么辦? 通常的辦法是先取消合并單元格,計算后,再次合并單元格,比較繁瑣。 在此,嘗試使用python和xlwings運行直接給出…

[創業之路-354]:農業文明到智能紀元:四次工業革命下的人類遷徙與價值重構

農業文明到智能紀元:四次工業革命下的人類遷徙與價值重構 從游牧到定居,從蒸汽轟鳴到算法洪流,人類文明的每一次跨越都伴隨著生產關系的劇烈震蕩。四次工業革命的浪潮不僅重塑了物質世界的生產方式,更將人類推向了身份認同與存在…

LeetCode 2302.統計得分小于 K 的子數組數目:滑動窗口(不需要前綴和)

【LetMeFly】2302.統計得分小于 K 的子數組數目:滑動窗口(不需要前綴和) 力扣題目鏈接:https://leetcode.cn/problems/count-subarrays-with-score-less-than-k/ 一個數組的 分數 定義為數組之和 乘以 數組的長度。 比方說&…

kafka學習筆記(四、生產者(客戶端)深入研究(二)——消費者協調器與_consumer_offsets剖析)

1.消費者協調器和組協調器 如果消費者客戶端中配置了多個分配策略,則多消費者的分區分配交由消費者協調器和組協調器來完成,他們之間使用一套組協調協議進行交互。 1.1.在均衡原理 將全部消費者分成多個子集,每個消費者組的子集在服務中對…

快速將FastAPI接口轉為模型上下文協議(MCP)!

fastapi_mcp 是一個用于將 FastAPI 端點暴露為模型上下文協議(Model Context Protocol, MCP)工具的庫,并且支持認證功能。 環境macbook,python3.13 pip install fastapi uvicorn fastapi-mcp 代碼 from fastapi import FastAPI, …

實驗數據的轉換

最近做實驗需要把x軸y軸z軸的數據處理一下,總結一下解決的方法: 源文件為兩個txt文檔,分別為x軸和y軸,如下: 最終需要達到的效果是如下: 就是需要把各個矩陣的數據整理好放在同一個txt文檔里。 步驟① …