標題: 網路基礎:客戶端、伺服器、DNS、HTTP 與 URL 結構
主題
- 網路通訊的基本架構
- 客戶端(Client)與伺服器(Server)的角色與互動
- 網域名稱解析(DNS)
- 如何將人類可讀的網址轉換為機器可讀的 IP 位址
- 網路協定(TCP/IP 與 HTTP)
- 資料如何透過封包在網路中傳輸
- HTTP 基礎語法與狀態碼
- 請求與回應的結構,以及常見狀態碼的意義
- URL 的組成與語意
- 網址各部分的用途與範例
關鍵概念
- 客戶端與伺服器
角色 | 功能 | 範例 |
客戶端 | 發起請求、接收並渲染內容 | 瀏覽器、手機 App |
伺服器 | 接收請求、處理資料並返回回應 | Web 伺服器(Apache、Nginx) |
互動流程 | 1. 客戶端發送請求 → 2. 伺服器處理 → 3. 返回回應(HTML/JSON 等) | 瀏覽網頁、API 呼叫 |
- DNS(網域名稱系統)
- 核心功能:將網域(如 google.com)解析為 IP 位址(如 142.250.190.78)
- 解析流程(簡化版):
- 查詢本地快取 → 2. 向 ISP 的 DNS 伺服器詢問 → 3. 遞迴查詢根域名伺服器 → 4. 返回 IP
- 重要記錄類型:
-
- A:IPv4 位址
- AAAA:IPv6 位址
- CNAME:別名指向(如 www 指向主網域)
- TCP/IP 與 HTTP
協定 | 用途 | 特點 |
TCP | 確保資料可靠傳輸(三次握手、錯誤重傳) | 用於 HTTP、FTP 等 |
IP | 定位網路中的設備(透過 IP 位址) | 無連接、不可靠 |
HTTP | 定義客戶端與伺服器的通訊格式(請求/回應模型) | 無狀態、基於文字 |
封包 | 資料傳輸的基本單位(包含標頭與內容) | 透過路由表決定傳輸路徑 |
- HTTP 語法與狀態碼
- 基本請求結構:
http
复制
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
- 常見方法:GET(讀取)、POST(提交)、PUT(更新)、DELETE(刪除)
- 重要狀態碼:
代碼 | 意義 | 範例場景 |
200 | 成功 | 網頁載入成功 |
301 | 永久重定向 | 舊網址跳轉到新網址 |
403 | 禁止訪問 | 未授權存取資源 |
404 | 找不到資源 | 輸入錯誤的 URL |
500 | 伺服器內部錯誤 | 後端程式碼崩潰 |
- URL 結構
- 完整格式:
复制
協定://子網域.主網域:埠號/路徑?查詢參數#片段識別碼
- 組成部分:
部分 | 說明 | 範例 |
協定(Scheme) | 通訊協定(HTTP/HTTPS) | https:// |
網域(Domain) | 網站主名稱 | example.com |
子網域(Subdomain) | 網域前綴(如 www) | blog.example.com |
路徑(Path) | 資源在伺服器上的位置 | /articles/web-basics |
查詢參數(Query) | 附加的鍵值對參數(? 開頭) | ?page=2&sort=date |
片段(Fragment) | 頁面內錨點(# 開頭) | #section-3 |
總結
這篇文章系統性介紹了網路通訊的基礎要素:
- 架構清晰:從客戶端/伺服器角色到 URL 結構,層層解析網路運作原理。
- 協定導向:強調 TCP/IP 和 HTTP 在資料傳輸中的核心作用。
- 實用知識:包含 DNS 解析流程、HTTP 狀態碼解讀等開發必備技能。
- 延伸應用:理解 URL 組成可幫助 SEO 優化與 API 設計。
適合初學者建立完整的網路基礎概念,並能實際應用於網頁開發與除錯(如分析 404 錯誤原因)。
進階關聯:
- HTTPS 加密(SSL/TLS)如何保護 HTTP 通訊?
- RESTful API 如何基於 HTTP 方法設計?