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

從輸入 URL 到頁面呈現:Web 頁面訪問全流程深度解析與網絡協議速查表

     編輯:Java 綜合教學

從輸入 URL 到頁面呈現:Web 頁面訪問全流程深度解析與網絡協議速查表

在瀏覽器地址欄輸入 https://www.sina.com 並按下回車,背後發生了什麼?本文系統梳理從 DNS 解析、TCP 連接、HTTP 請求響應到瀏覽器渲染的完整鏈路,並附贈 TCP/UDP 常用端口速查表,是 Web 開發者必備的核心知識圖譜。

一、核心流程 11 步全景圖

  1. 瀏覽器檢查本地緩存:瀏覽器緩存、系統 hosts 文件(C:\Windows\System32\drivers\etc\hosts / /etc/hosts)。
  2. DNS 域名解析:遞歸查詢 → 根域名服務器 → 頂級域服務器 → 權威域名服務器 → 返回目標 IP(如 218.30.13.36)。
  3. 建立 TCP 連接:三次握手(SYN, SYN+ACK, ACK),確立可靠雙工通道。
  4. 發送 HTTP 請求:請求行(Method URL Version)、請求頭(Host, Cookie, User-Agent...)、請求體。
  5. 服務器處理請求:Web 容器(Tomcat/Nginx)路由到對應 Servlet/Controller,執行業務邏輯,查詢數據庫,生成響應數據。
  6. 返回 HTTP 響應:狀態行(Version StatusCode ReasonPhrase)、響應頭(Content-Type, Set-Cookie...)、響應體(HTML/JSON/圖片...)。
  7. 瀏覽器解析渲染:HTML → DOM Tree,CSS → CSSOM Tree,合成 Render Tree → Layout → Paint → Composite。
  8. 加載子資源:並行下載 CSS/JS/圖片/字體,JS 執行可能阻塞渲染(defer/async 優化)。
  9. 頁面可交互:DOMContentLoaded / load 事件觸發,用戶可操作。

二、關鍵知識點深度補充

1. hosts 文件實戰:本地開發/測試域名映射

# Windows: C:\Windows\System32\drivers\etc\hosts
# Linux/Mac: /etc/hosts
127.0.0.1   www.local-dev.com   # 將域名指向本機
192.168.1.100  api.test-server.com  # 指向測試環境

修改生效即時,無需重啟瀏覽器。常用於開發聯調、屏蔽廣告域名、測試環境切換。

2. DNS 故障排查技巧

若網頁打不開,先 ping 8.8.8.8(Google DNS)或 ping 223.5.5.5(阿里雲 DNS)測試網絡連通性;再 nslookup www.sina.com 檢查域名解析是否正常。若 IP 通但域名不通,多半是 DNS 故障或劫持。

3. HTTP 請求/響應三部分結構

請求:請求行 | 請求頭 | 請求體
響應:狀態行 | 響應頭 | 響應體

三、傳輸層協議:TCP vs UDP 核心差異

特性TCP (Transmission Control Protocol)UDP (User Datagram Protocol)
連接性面向連接(三次握手/四次揮手)無連接,即發即收
可靠性可靠:序列號、ACK、重傳、流控、擁塞控制不可靠:不保證送達、不保證順序
數據邊界字節流,無邊界(需應用層分幀)數據報,保留邊界
效率開銷大,延遲高開銷小,延遲低
典型應用HTTP/HTTPS, FTP, SMTP, SSH, MySQLDNS, SNMP, TFTP, 視頻直播, 即時遊戲

四、常見 TCP/UDP 端口速查表

協議/服務端口說明
FTP 控制21文件傳輸控制連接
SSH22安全遠程登錄
Telnet23明文遠程登錄(不安全)
SMTP25郵件發送
DNS53域名解析 (TCP/UDP 均用)
HTTP80Web 明文傳輸
POP3110郵件接收
IMAP143郵件訪問協議
HTTPS443Web 加密傳輸 (TLS/SSL)
RDP3389Windows 遠程桌面

五、總結

理解「輸入 URL 到頁面呈現」的完整鏈路,是排查網絡故障、優化頁面性能、設計高可用架構的基石。掌握 DNS/TCP/HTTP 核心機制、熟悉常用端口、善用 hosts/nslookup/curl 等工具,讓網絡不再是黑盒。

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