Yoru Karu Studio
程式設計學習筆記 | 生活心得程式設計學習筆記 | 生活心得
📱 SIP 呼叫流程詳解 🎯 基本呼叫流程 💡 比喻:打電話的完整過程 1. 撥號(INVITE) 2. 電話響鈴(180 Ringing) 3. 對方接聽(200 OK) 4. 確認接通(ACK) 5. 開始通話(RTP) 6. 掛斷電話(BYE)最簡單的場景(無 Proxy) Alice Bob (192.168.1.100) (192.168.1.200) │ │ ├─ INVITE ───────────────────────>│ 撥號 │ │ │<─ 100 Trying ─────────────────────┤ 處理中 │ │ │<─ 180 Ringing ────────────────────┤ 響鈴 │ │ │<─ 200 OK ─────────────────────────┤ 接聽 │ │ ├─ ACK ───────────────────────────>│ 確認 │ │ │<══════ RTP 媒體流 ═══════════════>│ 通話中 │ │ ├─ BYE ───────────────────────────>│ 掛斷 │ │ │<─ 200 OK ─────────────────────────┤ 確認掛斷詳細訊息內容:
🍃 MongoDB Wire Protocol 完整指南 ⏱️ 閱讀時間: 12 分鐘 🎯 難度: ⭐⭐ (中等)
🎯 本篇重點 理解 MongoDB Wire Protocol 的原理、BSON 格式、OP_MSG 訊息結構、CRUD 操作流程,以及與關聯式資料庫協定的差異。
🤔 什麼是 MongoDB Wire Protocol? MongoDB Wire Protocol = MongoDB 客戶端與伺服器之間的通訊協定
一句話解釋: MongoDB Wire Protocol 是基於 BSON(Binary JSON)的二進位協定,設計用於高效傳輸 JSON 文件資料。
比喻:包裹快遞系統 SQL 資料庫 = 整齊的表格 - 每個欄位都有固定位置 - 像是整齊排列的書架 MongoDB = 靈活的文件櫃 - 每個文件可以有不同欄位 - 像是資料夾,每個資料夾內容不同 🏗️ MongoDB Wire Protocol 在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬──────────────────────┐ │ 7. Application Layer (應用層) │ MongoDB Wire Protocol│ ← MongoDB 在這裡 ├──────────────────────────────┼──────────────────────┤ │ 6.
📞 SIP 協定基礎 🎯 什麼是 SIP? 💡 比喻:電話系統的「撥號」協定 打電話分兩階段: 1. 撥號階段:輸入號碼、等待接通(SIP 負責這部分) 2. 通話階段:實際對話(RTP 負責傳輸語音) SIP 就像電話的「訊號系統」,負責: - 找到對方在哪裡 - 詢問對方能否接聽 - 建立通話連線 - 掛斷電話SIP(Session Initiation Protocol) 是一種訊號協定,用於建立、修改和終止多媒體會話(語音、視訊通話)。
為什麼需要 SIP? WebRTC vs SIP 的差異:
特性 WebRTC SIP 定位 Web 即時通訊 電信級通話系統 訊號協定 未定義(自訂) 已定義(SIP) 主要應用 瀏覽器通話 VoIP、視訊會議 互通性 需要自訂 標準化(與電話系統互通) 典型場景 Google Meet、Zoom Skype、電話系統、企業 PBX WebRTC:瀏覽器內的通話 SIP:可以與傳統電話系統互通的 VoIP 範例: - 用 Skype 打給手機號碼 → SIP - 企業內部分機系統 → SIP - Google Meet 網頁通話 → WebRTC 🏗️ SIP 架構 核心組件 ┌─────────────────────────────────────────┐ │ SIP 系統架構 │ └─────────────────────────────────────────┘ User Agent ←→ SIP Proxy ←→ Registrar (客戶端) (代理伺服器) (註冊伺服器)1️⃣ User Agent(使用者代理) 💡 比喻:你的電話機 你用它來打電話和接電話分為兩部分:
⚠️ 免責聲明 本文內容僅供教育與學習用途。請勿將文中技術用於任何未經授權的系統或惡意目的。
📚 本篇重點 🎯 掌握 CSRF Token 的完整實作 🔒 理解 SameSite Cookie 的配置 🛡️ 學習多層防禦策略 💻 Django 實戰最佳實踐 閱讀時間: 約 20 分鐘 難度: ⭐⭐⭐ 中高階
1️⃣ 防禦層級架構 ┌─────────────────────────────────────────────┐ │ Layer 1: 使用正確的 HTTP 方法 │ │ - GET: 只用於讀取 │ │ - POST/PUT/DELETE: 用於狀態改變 │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Layer 2: CSRF Token ⭐ 核心防禦 │ │ - Synchronizer Token Pattern │ │ - Double Submit Cookie │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Layer 3: SameSite Cookie │ │ - Lax 或 Strict │ │ - 阻止跨站 Cookie 發送 │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Layer 4: 驗證 Origin/Referer Header │ │ - 檢查請求來源 │ │ - 白名單驗證 │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Layer 5: 額外驗證(敏感操作) │ │ - 重新輸入密碼 │ │ - OTP/2FA │ │ - CAPTCHA │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Layer 6: 監控與告警 │ │ - 記錄失敗的 CSRF 驗證 │ │ - 異常檢測 │ └─────────────────────────────────────────────┘ 2️⃣ Layer 1: 使用正確的 HTTP 方法 原則:GET 只用於讀取 # ❌ 錯誤:使用 GET 執行狀態改變 @app.
🔴 Redis Protocol (RESP) 完整指南 ⏱️ 閱讀時間: 15 分鐘 🎯 難度: ⭐⭐ (中等)
🎯 本篇重點 理解 Redis 序列化協定 (RESP) 的原理、5 種資料類型、實際操作範例,以及如何用 telnet 直接測試 Redis,掌握 Pipeline 批次操作優化效能。
🤔 什麼是 RESP? RESP (REdis Serialization Protocol) = Redis 序列化協定
一句話解釋: RESP 是 Redis 客戶端與伺服器之間的「通訊語言」,就像摩斯密碼一樣,用簡單的符號表示不同類型的資料。
比喻:快遞單 當你寄包裹時,快遞單上會用不同的符號標記: 📦 一般包裹 ⚠️ 易碎品 ❄️ 冷凍 💰 貴重物品 RESP 也是一樣,用不同的「符號」標記不同類型的資料 🏗️ RESP 在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬─────────────────┐ │ 7. Application Layer (應用層) │ RESP (Redis) │ ← RESP 在這裡 ├──────────────────────────────┼─────────────────┤ │ 6.
📹 WebRTC 基礎 🎯 什麼是 WebRTC? 💡 比喻:直接打電話 vs 透過總機 傳統方式(Client-Server): Alice → Server → Bob 就像打電話要透過總機轉接,會有延遲 WebRTC(Peer-to-Peer): Alice ←→ Bob(直連) 就像直接撥對方號碼,速度更快WebRTC(Web Real-Time Communication) 是一個開放框架,讓瀏覽器和行動應用可以進行即時的語音、視訊和資料傳輸,而且是點對點(P2P) 連線,不需要透過伺服器中轉。
為什麼需要 WebRTC? 問題場景:視訊通話
❌ 傳統方式(經由伺服器):
Alice's 攝影機 → Server → Bob's 螢幕 問題: 1. 延遲高(需經過伺服器) 2. 伺服器頻寬成本高(所有影片都要中轉) 3. 伺服器成為瓶頸(同時 100 人通話 = 100 倍流量)✅ WebRTC(點對點):
Alice's 攝影機 ←→ Bob's 螢幕(直連) 優點: 1. 延遲極低(直接連線) 2. 伺服器只需處理訊號(不傳輸影音) 3. 可擴展性高(P2P 分散負載) 🏗️ WebRTC 架構 核心組件 ┌──────────────────────────────────────┐ │ WebRTC 完整流程 │ └──────────────────────────────────────┘ 1.