Web服務協定
Posted on Mar 31, 2025
SOAP (Simple Object Access Protocol)
- 基本結構:
- Envelope:根元素,定義 XML 文檔為 SOAP 消息
- Header:可選,包含應用特定信息(認證、路由等)
- Body:必須,包含實際的消息內容
- Fault:錯誤信息,類似 HTTP 狀態碼
- SOAP 版本差異:
- SOAP 1.1:較舊版本,廣泛支援
- SOAP 1.2:改進版本,更好的錯誤處理
- 傳輸綁定:
- HTTP/HTTPS:最常見,POST 方法
- SMTP:電子郵件傳輸
- TCP:直接 TCP 連接
- JMS:Java 消息服務
- 消息模式:
- 請求-響應(Request-Response):同步通信
- 單向(One-Way):異步通信,無回應
- 安全特性:
- WS-Security:消息級安全標準
- XML 數位簽名:確保消息完整性和來源驗證
- XML 加密:保護敏感數據
- WS-Trust:安全令牌交換
- 相關標準(WS- 堆疊)*:
- WSDL (Web Services Description Language):服務介面描述
- UDDI (Universal Description, Discovery and Integration):服務註冊和發現
- WS-Policy:服務策略表達
- WS-ReliableMessaging:可靠消息傳遞
- 優勢:
- 嚴格定義的結構和標準
- 跨平台、跨語言支持
- 豐富的企業級功能
- 強大的安全機制
- 劣勢:
- 消息體積大(XML 開銷)
- 處理複雜度高
- 效能較低
- 學習曲線陡峭
XMPP (Extensible Messaging and Presence Protocol)
- 核心功能:
- 即時消息(Instant Messaging):實時文本通信
- 存在信息(Presence):用戶在線狀態管理
- 聯繫人列表(Roster):好友管理和組織
- 協定特性:
- 基於 XML:所有通信使用結構化 XML 格式
- 即時性:近乎實時的消息傳遞
- 擴展性:模組化設計,支援豐富擴展
- 分佈式架構:
- 去中心化設計:類似電子郵件系統
- 聯邦式網路:使用域名標識服務器
- 伺服器間通信:S2S (Server-to-Server) 協定
- 身份識別系統:
- JID (Jabber ID):username@domain/resource
- 資源識別:允許多點登錄(手機、電腦等)
- 域名路由:基於域名的消息路由
- 核心數據單元(XML Stanzas):
- <message>:傳遞即時消息
- <presence>:傳遞用戶狀態信息
- <iq> (Info/Query):請求-響應交互機制
- 連接管理:
- XML 串流:持久的 XML 連接
- 心跳機制:白空格 ping 保持連接
- 重連機制:自動重新建立連接
- 擴展性(XEP - XMPP Extension Protocols):
- XEP-0045:多用戶聊天(群組聊天)
- XEP-0096:檔案傳輸
- XEP-0166:Jingle (語音/視頻通話)
- XEP-0060:發布-訂閱
- 安全特性:
- TLS 加密:傳輸層安全
- SASL 認證:可插拔認證機制
- 端到端加密:OTR、OMEMO 擴展
- 應用場景:
- 即時通訊系統(Jabber、Pidgin)
- 物聯網設備通信
- 實時協作平台
- 遊戲內通信系統