首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

HTTP 協議基礎:核心概念、URL/URI/URN 辨析與 GET/POST 深度解析

     編輯:Java 綜合教學

核心概念速覽

術語全稱角色
協議Protocol定義通信實體間報文格式、次序與動作的規則集合。
HTTPHyperText Transfer ProtocolWeb 應用層核心協議,基於 TCP 實現超文本傳輸。
HTMLHyperText Markup Language構建 Web 頁面的標記語言,通過 URL 定位資源。
Web Browser瀏覽器HTTP 客戶端,發送請求獲取服務器資源。
Web ServerWeb 服務器存儲 Web 對象,實現 HTTP 服務端,每個對象由 URL 定址。
TCPTransmission Control Protocol面向連接的傳輸層協議,為 HTTP 提供可靠數據傳輸。
Socket套接字應用層與傳輸層間的抽象接口,封裝 TCP/IP 複雜操作。
URLUniform Resource Locator統一資源定位符,標識資源並指定訪問方式與網絡位置。
URIUniform Resource Identifier統一資源標識符,以標準化方式標識資源的字符串。
URNUniform Resource Name統一資源名稱,URI 子集,用命名空間名字標識資源,不依賴位置。
GET-HTTP 請求方法,從服務器獲取資源,冪等、可見於 URL。
POST-HTTP 請求方法,向服務器提交數據處理,非冪等、請求體攜帶數據。

人類交流協議與網絡協議對比 TCP/IP 模型 Socket 位置 URL URI URN 關係圖

URL、URI、URN 三者關係

  • URI 是統稱,定義資源標識的統一語法。
  • URL 是 URI 子集,強調資源的定位(協議+位置+路徑)。
  • URN 是 URI 子集,強調資源的命名(如 ISBN、UUID),不包含位置信息。
  • 關係圖:URI ⊇ URL,URI ⊇ URN,URL ∩ URN = ∅(通常情況)。

GET vs POST 深度辨析

常見誤區

「POST 比 GET 安全,因為 POST 會加密」—— 錯誤!

HTTP 協議本身不加密,GET 與 POST 傳輸均為明文。HTTPS 才提供加密傳輸,與請求方法無關。

本質區別

維度GETPOST
語義查詢/獲取資源(冪等)提交/創建/修改資源(非冪等)
數據位置URL 查詢字符串(可見、長度受限)請求體(不可見、無長度限制)
冪等性是:多次請求效果相同否:多次請求可能產生副作用(如重複下單)
緩存可被瀏覽器/代理緩存默認不緩存
歷史記錄參數保留在瀏覽器歷史/書籤參數不保留

何時選擇哪一個?

  • GET:查詢、搜索、分頁、獲取靜態資源等無副作用操作。
  • POST:表單提交、文件上傳、修改/刪除數據、登錄驗證等有副作用操作。

總結

掌握上述核心概念是深入理解 HTTP、進行網絡編程與服務器優化的基石。建議進一步閱讀《計算機網絡:自頂向下方法》等經典教材,並結合實際抓包分析(Wireshark、Chrome DevTools)鞏固認知。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved