《HTTP權威指南》 第1-2章 HTTP和URL基礎

HTTP請求基礎

格式化數據塊稱為HTTP報文

請求報文:從客戶端發往服務器的HTTP報文,只有請求起始行+請求首部,沒有請求主體
響應報文:從服務器發往客戶端的報文,包含響應起始行+響應首部+響應主體
在這里插入圖片描述
在這里插入圖片描述
HTTP報文通過傳輸控制協議(TCP)連接:

  • 無差錯的數據傳輸
  • 按序傳輸
  • 未分段的數據流
    在這里插入圖片描述

HTTP事務=請求命令(HTTP方法)+響應結果
在這里插入圖片描述

從輸入URL到瀏覽器顯示全過程

簡單描述:通過URL獲取目標IP地址+TCP端口號 >> 建立TCP/IP連接 >> 傳輸HTTP報文

URL舉例:(HTPP端口默認80,HTTPS端口默認443)
index.html表示web服務器的資源,資源名稱為統一資源標識符(URI)
在這里插入圖片描述
在這里插入圖片描述
瀏覽器處理請求圖解
在這里插入圖片描述

  1. 輸入URL
  2. 瀏覽器從URL解析服務器主機名
  3. IP解析:通過DNS服務獲取服務器主機名對應的IP地址
  4. 從URL解析端口號
  5. 與IP對應的端口建立TCP連接
  6. 瀏覽器發送一條HTTP請求報文
  7. 服務器向瀏覽器回送一條HTTP響應報文
  8. 關閉連接,瀏覽器顯示頁面

URL語法、URL組件及含義

URL結構方案://服務器位置/路徑
在這里插入圖片描述

怎樣的方案請求哪個地方什么資源,簡稱(我瞎定義的):How - Where - What

URL語法通用格式<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>(由多個組件段組成)

  1. <scheme>:方案名(協議)不區分大小寫,也就是說HTTP://... = http://...

  2. <user>:<password>:FTP協議需要用戶名和密碼,比如:ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu(如沒有提供,瀏覽器會給一個默認值)

  3. <host>:<port>:主機和端口號

  4. /將URL劃分為一些路經段<path>;<params>),path和params為一組,用;隔開。比如:http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

  5. <query>查詢組件,用&連接多個鍵值對。
    在這里插入圖片描述

  6. <frag>片段組件,前面跟一個#
    在這里插入圖片描述
    在這里插入圖片描述

URL快捷方式

相對URL

URL有兩種方式:絕對的相對的
在這里插入圖片描述

解析相對URL的第一步:分解URL,即:將相對URL和基礎URL劃分成組件段

將相對URL轉換成絕對URL如圖:缺啥補啥(相對URL中缺的組件就用基礎URL中的組件段補上)
在這里插入圖片描述

自動擴展URL

瀏覽器主動進行主機名擴展(匹配自動補齊)、歷史訪問擴展(匹配URL前綴)

URL編碼和字符規則

基于適配各種不同的協議 + 供人類閱讀 + URL完整的需求,引入了轉義機制,將不安全字符編碼為安全字符再進行傳輸。

US-ASCII字符集集成轉義序列對數據進行編碼,實現可移植性和完整性。

%后跟著兩個表示字符ASCII碼16進制數,舉例:
在這里插入圖片描述

保留字符:
在這里插入圖片描述

URL方案

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

9. TypeScript 泛型

TypeScript 中的泛型使開發者能夠編寫靈活、可重用的代碼&#xff0c;同時保持類型安全。它們允許動態定義類型&#xff0c;確保函數、類和接口可以適用于任何數據類型。這有助于避免重復&#xff0c;提高代碼的模塊化&#xff0c;使其既類型安全又具備適應性。 一、認識泛型 …

Apache Iceberg與Hive集成:分區表篇

一、Iceberg分區表核心概念與Hive集成原理 1.1 分區表在大數據場景的價值 在大規模數據分析中&#xff0c;分區表通過將數據按特定維度&#xff08;如時間、地域、業務類型&#xff09;劃分存儲&#xff0c;可顯著提升查詢效率。Apache Iceberg的分區表設計融合了Hive的分區理…

SAST + IAST + DAST 全鏈路防護體系構建方案

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 1. 生命周期分層嵌入&#xff08;防御縱深&#xff09; 階段工具防護重點集成觸發點編碼階段SAST源碼漏洞&#xff08;硬編碼密鑰、SQL注入模式&#x…

pnpm link如何不踩坑

前提一&#xff1a;我有一個source-project源碼庫&#xff0c;有一個develop-project項目庫。想使用pnpm link對source-project進行本地調試。 前提二&#xff1a;source-project源碼庫已打包 本地調試詳細步驟如下&#xff1a; 1、檢查是否配置了系統環境變量&#xff0c;P…

vue3 javascript 多字段求和技巧

在 Vue 3 中&#xff0c;如果你需要在一個組件中處理多個字段的求和&#xff0c;你可以通過計算屬性&#xff08;computed properties&#xff09;或者方法&#xff08;methods&#xff09;來實現。這里我將展示兩種主要的方法&#xff1a; 方法 1&#xff1a;使用計算屬性&am…

【LeetCode】每日一題 —— No.3405

LeetCode 3405 統計恰好有 K 個相等相鄰元素的數組數目&#xff08;DP 構造型&#xff09; 題目概述 我們需要統計長度為 n 的數組 arr 滿足如下條件的方案數&#xff1a; 每個元素在區間 [1, m] 之間恰好存在 k 個位置 i (1 ≤ i < n) 滿足 arr[i] arr[i - 1] 也就是說…

Elsa Workflows: .NET 的開源工作流引擎簡介

文章目錄 Elsa Workflows&#xff1a; .NET 的開源工作流引擎核心定位與理念關鍵特性與優勢當前 (Elsa 3) 的已知限制/待完善項總結 Elsa Workflows&#xff1a; .NET 的開源工作流引擎 Elsa Workflows 是一個開源的、模塊化的 .NET 庫集合&#xff0c;旨在為 .NET 應用程序提…

linux虛擬機yum命令報錯解決方案

問題 假如出現了這樣的問題&#xff0c;可能是虛擬機yum庫存在問題 解決方法 1、打開cmd&#xff0c;輸入ssh root地址&#xff0c;比如ssh root192.168.222..111&#xff0c;選yes&#xff0c;輸入虛擬機密碼 2、使用yum repolist,查看倉庫狀態&#xff0c;status下面如果是…

C++ 第一階段 基本語法 - 第一節:變量與數據類型詳解

目錄 一、變量與數據類型概述 1.1 什么是變量&#xff1f; 1.2 數據類型分類 二、基本數據類型詳解 2.1 整型&#xff08;int, short, long&#xff09; 2.1.1 常見整型類型 2.1.2 代碼示例 2.1.3 注意事項 2.2 浮點型&#xff08;float, double&#xff09; 2.2.1 浮…

CppCon 2017 學習:CNL: A Compositional Numeric Library

你說的這段關于浮點數的問題總結得很精準&#xff0c;我幫你整理一下&#xff0c;讓理解更清晰&#xff1a; The Problem with Floating-Point&#xff08;浮點數的問題&#xff09; 復雜的表示結構 浮點數由符號位 &#xff0c;有效數&#xff08;significand/mantissa&…

linux基礎重定向及組合重定向

一、基礎重定向操作符 ?類別? ?操作符? ?含義? ?示例? ?備注? ?標準輸出? > 覆蓋寫入 stdout 到文件 ls > file.txt 文件不存在則創建&#xff0c;存在則清空內容 >> 追加 stdout 到文件末尾 date >> log.txt 保留原有內容 ?標準…

佰力博科技與您探討鐵電分析儀適用場景

鐵電分析儀是一種用于測試和研究鐵電材料性能的精密儀器&#xff0c;其適用場景非常廣泛&#xff0c;涵蓋了材料科學、物理學、電子工程等多個領域。 1、材料科學與工程 鐵電分析儀廣泛應用于鐵電材料的研究&#xff0c;包括薄膜、厚膜、塊體材料以及電子陶瓷等。它能夠測試材料…

JVM 內存模型與垃圾回收機制全解析:架構、算法、調優實踐

Java 作為一門面向對象的編程語言&#xff0c;其核心優勢之一是 “一次編寫&#xff0c;到處運行” 的跨平臺特性。這一特性背后&#xff0c;Java 虛擬機&#xff08;JVM&#xff09;扮演著至關重要的角色。JVM 不僅負責解釋執行字節碼&#xff0c;還通過內存管理和垃圾回收機制…

自然語言處理相關基本概念

基本概念章節總結 一、語言學&#xff08;Linguistics&#xff09; 定義 研究語言的本質、結構和發展規律的科學&#xff0c;涵蓋語音、文字、語法等屬性。分支包括歷時語言學、共時語言學、描述語言學等。 核心內容 分析語言的形態、句法、語義等層面&#xff0c;如詞素&…

Vue購物車應用實現教程

文章目錄 1. 項目介紹2. 開發環境準備3. 設計購物車界面4. 創建Vue實例和數據模型5. 實現購物車功能5.1 從本地存儲加載數據5.2 監聽數據變化保存到本地存儲5.3 實現全選/反選功能5.4 計算選中商品的總價和總數量5.5 實現修改商品數量功能5.6 實現刪除商品功能5.7 實現結算功能…

雙因子認證如何讓Windows系統登錄更安全?SLA操作系統雙因素認證解決方案深度解析

引言&#xff1a;數字化轉型下的身份認證危機 在云計算與遠程辦公普及的2025年&#xff0c;企業信息系統正面臨前所未有的安全挑戰。微軟Azure Virtual Desktop漏洞事件、Citrix數據泄露等安全事件頻發&#xff0c;暴露出傳統密碼認證體系的致命缺陷。據《2025年云安全威脅報告…

FPGA基礎 -- Verilog語言要素之值集合

一、Verilog 值集合&#xff08;Value Set&#xff09; Verilog 是一種面向硬件建模的描述語言&#xff0c;為了更真實地模擬硬件行為&#xff0c;它并不僅僅像 C 語言那樣只有 0 和 1 兩種值&#xff0c;而是采用了四值邏輯&#xff08;Four-valued logic system&#xff09;…

開源一個芯片自由的脫機下載器

一、什么是脫機下載器 簡單來說&#xff0c;脫機下載器就是在不連接電腦、不用專業軟件的情況下&#xff0c;也能幫你把程序燒錄進芯片的工具。只要插上電源、按個按鈕&#xff0c;固件就自動下載進 MCU&#xff0c;非常適合量產、售后、維修等場景。 二、芯片自由的背后&…

Rust 學習筆記:關于模式匹配的練習題

Rust 學習筆記&#xff1a;關于模式匹配的練習題 Rust 學習筆記&#xff1a;關于模式匹配的練習題問題一問題二問題三 Rust 學習筆記&#xff1a;關于模式匹配的練習題 參考視頻&#xff1a; https://www.bilibili.com/video/BV1YxojYJESm 問題一 以下代碼能否通過編譯&…

利用tkinter函數構造MD5加密的可視化操作界面

GitHub文檔地址&#xff1a; https://github.com/gao7025/auto_entry_md5.git 引言 利用tkinter構造一個圖形界面的創建函數&#xff0c;主要實現了文件選擇、MD5加密處理、結果預覽和下載等功能。下面是主要涉及的功能模塊&#xff1a;主框架、文件選擇部分、MD5加密部分、結…