首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

BlogEngine.NET 架構與原始碼分析系列 (7) Web 2.0 特性 - Pingback 與 Trackback

     編輯:關於ASP.NET

Pingback & Trackback 簡介

部落格引用他站文章時自動通知對方的標準機制。Pingback 使用 XML-RPC,Trackback 使用 HTTP POST 表單格式,功能相似。

BlogEngine.NET 實作架構

  • SendPings Extension:訂閱 Post.Saved/Page.Saved,提取文章連結發送通知。
  • Ping 服務層 (BlogEngine.Core.Ping):
    • PingService:統一發送入口。
    • Manager:管理發送佇列與重試。
    • Pingback:XML-RPC 客戶端實作。
    • Trackback:HTTP POST 表單實作 (title=...&url=...&excerpt=...&blog_name=...)。
  • 接收端 HttpHandler:
    • PingbackHandler:解析 XML-RPC 請求,驗證來源連結存在,儲存為評論。
    • TrackbackHandler:解析表單資料,同樣儲存為評論。

發送流程

  1. 文章儲存觸發 Post.Saved。
  2. SendPings 解析文章內容超連結。
  3. 對每個連結嘗試發現 Pingback/Trackback 端點 (HTML <link rel="pingback"> 或 RSD)。
  4. 非同步發送通知,記錄日誌與重試。

接收流程

  1. 外站發送請求至 pingback.axd/trackback.axd。
  2. 對應 Handler 驗證參數、檢查來源連結是否真實指向本站文章。
  3. 通過驗證 → 建立評論物件 (狀態視設定決定發布/待審) → 觸發 Comment.Saved 事件。

總結

BlogEngine.NET 完整實作 Pingback/Trackback 雙協定,採用 Extension 觸發發送、服務層封裝協定細節、HttpHandler 接收,架構清晰且符合 Web 2.0 互聯精神。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved