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

瀏覽器-服務器交互全解析:HTTP 請求響應與靜態/動態資源處理機制

     編輯:Java 綜合教學

Web 核心通信模型:請求-響應循環深度剖析

瀏覽器訪問服務器本質是資源請求過程。以輸入 www.a.com/index.html 為例,瀏覽器構造符合 HTTP 協議的請求報文:

GET /index.html HTTP/1.1
Accept-Language: zh-cn
Connection: Keep-Alive
Host: www.a.com
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Accept-Encoding: gzip, deflate

通過 Socket 發送至服務器 80 端口。形象比喻:瀏覽器是主動發起請求的「客戶」,服務器是被動等待響應的「服務端」。

服務器處理邏輯:雙軌並行

請求處理流程圖
服務器請求分發處理流程

軌道一:靜態資源請求

  1. 解析請求路徑 → 定位 Web 發布目錄下的文件
  2. 文件存在:IO 流讀入內存 → 狀態碼 200 → 響應體發送 → 瀏覽器渲染引擎解析
  3. 文件不存在:返回 404 狀態碼 + 自定義錯誤頁

軌道二:動態資源請求

動態資源 = 未執行的 .class 文件,需經過運行時計算生成結果。類比「私人定制豪華車」:

  • 靜態資源 = 車店現車直銷
  • 動態資源 = 工廠按需生產交付

核心技術:反射機制

  1. 解析請求獲取目標類名
  2. Class.forName() 載入類 → newInstance() 創建實例
  3. 調用目標方法執行業務邏輯
  4. 封裝結果返回響應

反射雖有性能開銷,但實現了解耦——服務器無需預知具體處理類,支援熱部署與擴展。本文基於 Tomcat 實現分析,其他容器原理類同。

關鍵技術點總結

維度靜態資源動態資源
響應內容預存文件運行時計算結果
核心機制IO 流讀取反射 + Servlet 規範
典型場景HTML/CSS/JS/圖片JSP/Servlet/Controller
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved