【計算機網絡】第2章:應用層—Web and HTTP

目錄

一、Web 與 HTTP

二、總結

(一)Web 的定義與功能

(二)HTTP 協議的定義與功能

(三)HTTP 協議的核心機制

1.?HTTP 請求與響應流程

2.?HTTP 的連接類型

3.?HTTP 的狀態碼

(四)Web 與 HTTP 的協作模型

1.?客戶端-服務器架構

2.?Web 服務器的組成

(五)Web 的演進與 HTTP 的發展

1.?Web 的發展階段

2.?HTTP 協議的演進

(六)Web 與 HTTP 的典型應用場景

(七)總結


一、Web 與 HTTP

二、總結

(一)Web 的定義與功能

  • Web(World Wide Web)
    • 定義:Web 是基于超文本(Hypertext)和統一資源定位符(URL)構建的全球信息空間,由相互鏈接的網頁、圖像、腳本等數字資源組成。
    • 核心特性
      1. 資源對象化:每個文件(HTML 文檔、圖片等)視為獨立對象。
      2. 超鏈接導航:通過 URL 實現跨文檔跳轉。
      3. 客戶端-服務器架構:用戶通過瀏覽器訪問 Web 服務器上的資源。
    • Web 的組成
      • 網頁(Web Page):由 HTML 文件、圖片、腳本等對象組成。
      • 網站(Website):多個網頁的集合,包含主頁和其他子頁面。
      • 靜態網頁 vs 動態網頁
        • 靜態網頁:固定內容,無需后臺交互(如?.html?文件)。
        • 動態網頁:內容根據用戶請求動態生成(如 PHP、JSP 頁面)。

(二)HTTP 協議的定義與功能

  • HTTP(HyperText Transfer Protocol)
    • 定義:HTTP 是支撐 Web 資源傳輸的應用層協議,定義了客戶端與服務器之間的通信規則。
    • 核心功能
      1. 請求-響應模式:客戶端發送請求,服務器返回響應。
      2. 支持多種方法:如?GETPOSTHEAD?等。
      3. 狀態碼機制:如?200 OK404 Not Found?等。
      4. 無狀態協議:服務器不保存客戶端的上下文信息。
    • HTTP 與 Web 的協作
      • Web 的運作完全依賴 HTTP 協議傳輸資源。
      • 例如:瀏覽器請求?http://example.com/index.html?時,HTTP 協議負責將 HTML 文檔從服務器傳輸到客戶端。

(三)HTTP 協議的核心機制

1.?HTTP 請求與響應流程

  • 請求報文結構

    GET /index.html HTTP/1.1
    Host: www.example.com
    User-Agent: Mozilla/5.0
    Accept: text/html
  • 請求行:包含方法(GET)、URL、HTTP 版本。
  • 請求頭:包含客戶端信息(如?User-Agent)、請求修飾符。
  • 請求體:僅在?POST?方法中使用,用于傳輸數據。

  • 響應報文結構
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Server: Apache<html>...</html>
  • 狀態行:包含 HTTP 版本、狀態碼、狀態消息。
  • 響應頭:包含服務器信息(如?Server)、內容類型。
  • 響應體:實際返回的數據(如 HTML 頁面)。

2.?HTTP 的連接類型

  • 非持久連接(HTTP 1.0)

    • 每次請求建立一個新的 TCP 連接,請求完成后立即關閉。
    • 缺點:頻繁的 TCP 握手和揮手導致高延遲。
  • 持久連接(HTTP 1.1 默認)

    • 多個請求/響應復用同一個 TCP 連接。
    • 優化方式
      • 流水線(Pipelining):允許客戶端連續發送多個請求,服務器按序響應。
      • 分塊傳輸編碼(Chunked Transfer Encoding):允許流式傳輸內容,無需預先知道總長度。

3.?HTTP 的狀態碼

類別示例說明
1xx(信息)100 Continue請求已接收,繼續發送數據。
2xx(成功)200 OK請求成功,返回數據。
3xx(重定向)301 Moved Permanently資源已永久移動到新位置。
4xx(客戶端錯誤)404 Not Found請求的資源不存在。
5xx(服務器錯誤)500 Internal Server Error服務器內部錯誤。

(四)Web 與 HTTP 的協作模型

1.?客戶端-服務器架構

  • 客戶端:用戶使用的設備(如瀏覽器),發送 HTTP 請求。
  • 服務器:存儲和處理數據的遠程計算機,接收請求并返回響應。
  • 通信協議:HTTP 使用 TCP 作為傳輸層協議,確保可靠傳輸。

2.?Web 服務器的組成

  • 監聽組件:監聽指定端口(如 80)的 HTTP 請求。
  • 請求解析器:解析請求方法、URL、請求頭和請求體。
  • 處理邏輯:調用應用程序、數據庫或其他資源生成響應。
  • 響應生成器:構建 HTTP 響應(狀態碼、響應頭、響應體)。
  • 連接管理:管理 TCP 連接(持久連接、關閉策略)。

(五)Web 的演進與 HTTP 的發展

1.?Web 的發展階段

  • Web 1.0:靜態網頁,單向信息傳遞(用戶只能讀取內容)。
  • Web 2.0:動態網頁,用戶交互增強(如微博、相冊)。
  • Web 3.0:語義網,數據互聯與智能化(通過元數據實現機器理解內容)。

2.?HTTP 協議的演進

  • HTTP/1.0:非持久連接,簡單但效率低。
  • HTTP/1.1:默認持久連接,引入分塊傳輸和流水線。
  • HTTP/2:多路復用(Multiplexing),減少延遲。
  • HTTP/3:基于 QUIC 協議,進一步優化傳輸效率。

(六)Web 與 HTTP 的典型應用場景

  1. 網頁瀏覽:瀏覽器通過 HTTP 請求加載 HTML、CSS、JavaScript 等資源。
  2. API 接口調用:后端服務通過 HTTP 提供 RESTful API,供前端或移動端調用。
  3. 實時通信:結合 WebSocket 協議,實現雙向實時通信(如在線聊天)。
  4. 安全通信:通過 HTTPS(HTTP + TLS/SSL)加密傳輸數據,保障隱私和完整性。

(七)總結

對比項WebHTTP
定義全球信息空間,基于超文本和 URL 構建應用層協議,用于傳輸 Web 資源
核心功能提供信息組織與交互的平臺定義客戶端與服務器之間的通信規則
依賴關系依賴 HTTP 協議傳輸資源為 Web 提供傳輸機制
無狀態特性無狀態(需通過 Cookie 或 Token 維持會話)無狀態(每次請求獨立)
演進方向從靜態內容到語義網、去中心化從 HTTP/1.0 到 HTTP/3,優化性能與安全性

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

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

相關文章

如何實現 LRU 緩存:基于LinkedHashMap?

全文目錄&#xff1a; 開篇語前言1. LinkedHashMap 簡介1.1 LinkedHashMap 的構造方法 2. 基于 LinkedHashMap 實現 LRU 緩存2.1 設計思路2.2 實現步驟2.3 代碼說明2.4 測試案例2.5 解釋 3. LRU 緩存優化3.1 removeEldestEntry() 方法的靈活性3.2 內存管理 4. 總結文末 開篇語 …

Spring Boot測試框架全面解析

Spring Boot測試框架基礎 Spring Boot通過增強Spring測試框架的能力,為開發者提供了一系列簡化測試流程的新注解和特性。該框架建立在成熟的Spring測試基礎之上,通過自動化配置和專用注解顯著提升了測試效率。 核心依賴配置 要使用Spring Boot的全部測試功能,只需在項目中…

Spring Boot 整合 Spring Data JPA、strategy 的策略區別、什么是 Spring Data JPA

DAY29.2 Java核心基礎 Spring Boot 整合 Spring Data JPA Spring Data JPA根據具體的數據庫分為不同的子模塊&#xff0c;無論是關系型數據庫和非關系型數據庫&#xff0c;Spring Data都提供了支持 Mysql&#xff1a;Spring Data JPA Redis&#xff1a;Spring Data Redis …

Ubuntu 服務器配置與 Cloudflare Tunnel 部署指南 免費內網穿透家用服務器

Ubuntu 服務器配置與 Cloudflare Tunnel 部署指南 本文檔總結了服務器配置相關內容&#xff0c;包括 Ubuntu 服務器配置、硬盤擴容、靜態 IP 設置以及 Cloudflare Tunnel 的部署步驟。 目錄 硬盤分區與擴容設置靜態 IPCloudflare Tunnel 部署SSH 通過 Cloudflare Tunnel常見…

降低實驗檢測報告編制耗時 質檢LIMS系統的應用策略

在質檢工作流程中&#xff0c;檢測報告編制往往是耗時耗力的關鍵環節。傳統人工編制報告不僅效率低下&#xff0c;還容易出現數據錯誤、格式不統一等問題。質檢 LIMS 系統憑借其強大的自動化、智能化功能&#xff0c;為檢測報告編制帶來革命性變革&#xff0c;能夠將編制時間減…

同為.net/C#的跨平臺運行時的mono和.net Core有什么區別?

Mono 和 .NET Core&#xff08;現已統一為 .NET&#xff09;都是 .NET 生態的跨平臺實現&#xff0c;但它們在設計目標、技術特性和應用場景上有顯著區別。以下是詳細對比&#xff1a; ??1. 歷史背景?? ??項目????誕生時間????開發者????當前狀態????Mo…

Android AIDL Hal最低保證出現的問題

1. AIDL HAL 的“最低保證”特性 &#xff08;1&#xff09;協議層級的強制支持 在 IComposer AIDL 接口定義中&#xff08;如 android.hardware.graphics.composer3&#xff09;&#xff0c;Google 已經將部分功能列為 必須支持的特性&#xff08;MUST&#xff09;。例如&am…

蘋果FINDMY和谷歌FIND HUB增強共享位置功能

近期&#xff0c;蘋果Findmy增強了追蹤和分享丟失物品位置方面的功能&#xff0c;“共享物品位置”&#xff0c;用戶可以安全地與航空a公司等第三方分享丟失物品的位置&#xff0c;以便于行李找回。 iOS 18.2的這一新功能使用戶可以輕松、安全地與航空公司等第三方分享AirTag或…

基于GA遺傳優化的FIR濾波器幅頻相頻均衡補償算法matlab仿真

目錄 1.程序功能描述 2.測試軟件版本以及運行結果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 在數字信號處理領域&#xff0c;有限沖激響應&#xff08;FIR&#xff09;濾波器因其結構簡單、穩定性好且易于實現線性相位等優點被廣泛應用。然而&#xff0c;實…

雙路物理CPU機器上安裝Ubuntu并部署KVM以實現系統多開

在雙路物理CPU機器上安裝Ubuntu并部署KVM以實現系統多開&#xff0c;并追求性能最優&#xff0c;需要從硬件、宿主機系統、KVM配置、虛擬機配置等多個層面進行優化。 以下是詳細的操作指南和優化建議&#xff1a; 階段一&#xff1a;BIOS/UEFI 設置優化 (重啟進入) 啟用虛擬化…

adb查看、設置cpu相關信息

查內存 adb shell dumpsys meminfo查CPU top -m 10打開 system_monitor adb shell am start -n eu.chainfire.perfmon/.LaunchActivity設置CPU的核心數 在/sys/devices/system/cpu目錄下可以看到你的CPU有幾個核心&#xff0c;如果是雙核&#xff0c;就是cpu0和cpu1&#xff0c…

【Unity基礎】Unity新手實戰教程:用ScriptableObject控制Cube顏色

目錄 項目概述&#x1f6e0;? 完整操作步驟&#xff08;10分鐘內完成&#xff09;步驟1&#xff1a;創建ScriptableObject類步驟2&#xff1a;創建顏色配置資產步驟3&#xff1a;創建Cube控制器步驟4&#xff1a;設置場景和Cube步驟5&#xff1a;添加簡單UI提示步驟6&#xff…

One Year~

入局 作為科班學生&#xff0c;沒事就在CSDN閑逛&#xff0c;只作為旁觀者的身份去體會別人的好文。當時也沒想著說去自己寫一些博客記錄學習過程。相信大多數同學和我有一樣的心理。 但在看魚皮哥的課程時&#xff0c;發現他有著寫文檔和博客的習慣&#xff0c;整理自己的思路…

【Redis】第3節|深入理解Redis線程模型

一、Redis基礎認知 &#xff08;一&#xff09;定義與定位 Redis&#xff08;Remote Dictionary Server&#xff09;是開源高性能鍵值數據庫&#xff0c;核心特點如下&#xff1a; 數據結構豐富&#xff1a;支持字符串、哈希、列表、集合、有序集合等復雜數據類型&#xff0…

vben-admin 2.8.0 版本修改 axios響應處理邏輯

此前端框架下的 Axios 在后端返回的結果老是無法正常解析&#xff0c;找到他源碼的封裝類&#xff0c;修正這個問題 文件位于 src\utils\http\axios\index.ts 修改前 transformResponseHook: (res: AxiosResponse<Result>, options: RequestOptions) > {const { t }…

深入理解JavaScript設計模式之原型模式

目錄 前言引入原型模式頭腦風暴傳統方式 vs 原型模式實戰案例&#xff1a;飛機大戰中的分身術 原型模式實現的關鍵秘密實戰演練&#xff1a;造一架能分身的飛機克隆是創建對象的手段原型模式&#xff1a;輕裝上陣的造物術 原型編程范型的一些規則原型編程的四大門規&#xff1a…

【數據庫】概述(純理論)

數據庫系統引論 數據管理系統的發展 數據管理&#xff1a;對數據分類、組織、編碼、存儲、檢索、維護 發展&#xff1a;人工管理、文件系統、數據庫系統 40-50年代 人工管理 數據不保存&#xff0c;沒有專門軟件管理數據&#xff0c;應用程序完全依賴于數據&#xff0c;數據…

語音合成之十七 語音合成(TTS)中文自然度:問題、成因、解決方案

語音合成&#xff08;TTS&#xff09;中文自然度&#xff1a;問題、成因、解決方案 中文TTS系統基本架構中文TTS常見問題深度剖析與解決方案音色跳變成因分析解決方案 聲調與重讀錯誤成因分析業界解決方案 漏讀與斷句錯誤成因分析業界解決方案 在跨語言TTS系統比較中&#xff0…

我在 Linux 進程管理中踩過的坑:僵尸、瞬時與不可中斷進程實戰實錄

作為運維老鳥&#xff0c;我曾在 Linux 進程管理上栽過不少跟頭。記得第一次遇到滿屏僵尸進程時&#xff0c;服務器直接卡到連 SSH 都登不上&#xff0c;看著ps命令里一排排刺眼的Z狀態進程&#xff0c;手心直冒冷汗。后來又碰到過瞬時進程搞崩日志系統&#xff0c;明明監控顯示…

【設計模式】簡單工廠模式,工廠模式,抽象工廠模式,單例,代理,go案例區分總結

工廠模式三種類型&#xff1a; 一、簡單工廠模式&#xff08;Simple Factory&#xff09; 定義&#xff1a; 用一個工廠類&#xff0c;根據傳入的參數決定創建哪一種具體產品類實例。 面試說法&#xff1a; 由一個統一的工廠創建所有對象&#xff0c;增加新產品時需要修改工…