理解HTTP請求/回應 📡
當您訪問網站或使用應用程式時,電腦和伺服器如何通訊?它們使用一種叫做HTTP的規則!讓我以簡單的方式解釋,即使是初學者也能理解。
用日常生活比喻HTTP?
讓我們把HTTP比作餐廳點餐。
餐廳的故事 🍽️
1. 顧客:「請給我義大利麵!」(請求)
2. 服務生:傳達給廚房
3. 廚房:烹飪義大利麵
4. 服務生:「您的義大利麵來了!」(回應)
5. 顧客:收到義大利麵
HTTP也一樣:
1. 瀏覽器:「請給我index.html!」(HTTP請求)
2. 伺服器:查找檔案
3. 伺服器:「這裡是!」(HTTP回應)
4. 瀏覽器:顯示頁面
HTTP的定義
HTTP (HyperText Transfer Protocol)
- Web瀏覽器和伺服器交換資料的規則
- 協定 = 約定的規則
- Web的基礎通訊方法
HTTP請求/回應流程
┌─────────┐ ┌─────────┐
│ │ ── HTTP請求 (Request) → │ │
│ 瀏覽器 │ │ 伺服器 │
│ │ ← HTTP回應 (Response) ── │ │
└─────────┘ └─────────┘
完整過程
- 請求 (Request):瀏覽器向伺服器請求某些內容
- 處理 (Processing):伺服器處理請求
- 回應 (Response):伺服器將結果發送給瀏覽器
- 渲染 (Rendering):瀏覽器在螢幕上顯示
HTTP方法(請求方法)
這些是告訴伺服器**「如何」**操作的動詞。
1. GET 📖
「獲取」 - 請求資料
GET /products/123
範例:
- 查看網頁
- 獲取搜尋結果
- 查看產品清單
特點:
- 只獲取資料
- 不修改伺服器資料
- 資料顯示在URL中
- 可以加入書籤
實際使用:
https://google.com/search?q=javascript
└───────┬──────┘
GET參數
2. POST 📝
「建立」 - 向伺服器發送新資料
POST /users
{
"name": "張小明",
"email": "zhang@example.com"
}
範例:
- 會員註冊
- 撰寫文章
- 下訂單
特點:
- 在伺服器上建立資料
- 資料在本文(Body)中
- 資料不顯示在URL中
- 不能加入書籤
3. PUT ✏️
「修改」 - 完全替換現有資料
PUT /users/123
{
"name": "李小華",
"email": "li@example.com"
}
範例:
- 修改整個個人資料
- 修改整篇文章
4. PATCH 🔧
「部分修改」 - 只修改現有資料的一部分
PATCH /users/123
{
"email": "newemail@example.com"
}
範例:
- 只更改電子郵件
- 只更改密碼
5. DELETE 🗑️
「刪除」 - 刪除資料
DELETE /users/123
範例:
- 刪除帳戶
- 刪除文章
- 刪除產品
HTTP方法比較表
| 方法 | 用途 | 資料修改 | 資料位置 |
|---|---|---|---|
| GET | 查詢 | ❌ | URL |
| POST | 建立 | ✅ | Body |
| PUT | 完全修改 | ✅ | Body |
| PATCH | 部分修改 | ✅ | Body |
| DELETE | 刪除 | ✅ | URL |
HTTP請求結構
GET /api/users?page=1 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: application/json
Authorization: Bearer token123
{本文資料(POST、PUT、PATCH時)}