HTTP/HTTPS
HTTP(Hypertext Transfer Protocol)超文本傳輸協定,是網頁通訊的基礎協定。
HTTP 版本演進

HTTP/1.0
- 默認短連接
- 每次請求都需要建立新連線
HTTP/1.1
- 默認長連接:
Connection: keep-alive - 新增 24 個 Response Status Code
- 增加更多緩存機制:
Entity tag,If-Unmodified-Since,If-Match,If-None-Match
Head-of-line Blocking

HTTP/2.0
- 解決 HTTP/1.1 的隊頭阻塞問題(應用層)
- Server Push 能力:允許伺服器主動推送更新
HTTP/3.0
- 使用 QUIC 協定取代 TCP
- QUIC 基於 UDP
- 解決傳輸層的隊頭阻塞
HTTP Headers

Content-Type
| Content-Type | 格式 |
|---|---|
| text/html | HTML |
| text/plain | 純文本 |
| application/json | JSON |
| application/xml | XML |
| application/octet-stream | 二進制流 |
| application/x-www-form-urlencoded | 表單數據(默認) |
| multipart/form-data | 文檔上傳 |
Content-Disposition
控制使用者儲存檔案時的檔案名稱。
X-Forwarded-For
用於辨識通過 HTTP 代理或負載均衡連接到 Web 伺服器的客戶端原始 IP 地址。
HTTP Status Codes
| 範圍 | 類型 | 說明 |
|---|---|---|
| 1xx | Informational | 請求已接收,繼續處理 |
| 2xx | Success | 請求成功 |
| 3xx | Redirection | 需要進一步操作 |
| 4xx | Client Error | 客戶端錯誤 |
| 5xx | Server Error | 伺服器錯誤 |
常見狀態碼
| Code | 說明 |
|---|---|
| 200 | OK |
| 301 | 永久重定向 |
| 302 | 暫時重定向 |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
HTTPS
HTTPS = HTTP + SSL/TLS,提供加密通訊。

HTTPS 連線步驟
- TCP Handshake: 建立 TCP 連線
- Certificate Check:
- Client 發送支援的加密演算法和 TLS 版本
- Server 回應 SSL 憑證(公鑰、主機名、過期日期)
- Client 驗證憑證
- Key Exchange:
- Client 產生 session key 並用公鑰加密
- Server 用私鑰解密取得 session key
- Secure Communication: 使用對稱加密傳輸資料
為什麼 HTTPS 要切換到對稱加密?
安全性: 非對稱加密是單向的,公鑰加密的內容任何人都可以解密。
效能: 非對稱加密計算成本高,不適合長時間的資料傳輸。
SSL/TLS

- SSL: Secure Sockets Layer(安全通訊層)
- TLS: Transport Layer Security(傳輸層安全性)
特性:
- 通訊加密(先非對稱、後對稱)
- 身份驗證(伺服器或客戶端/伺服器)
- 可靠連線 - 防止資料被竄改