2006-08-22

TrackBack 的简单概念和实现架构

TrackBack 初看起来很难理解, 不过理解之后就不会有问题了.

基本上它的构想如下:

1. 某个 Blog A 上有你感兴趣主题, 你想在自己的 Blog B 上发一个相关的主题, 并且希望发表的内容和回复自动发到 Blog A 上.
2. 这时你就可以复制 A 上面相关的 TrackBack 链接, 输入到你的 Blog B 中的那个主题的 TrackBack URL 框中.
3. 之后你的主题和后面所有回复的摘要都会自动发往 Blog A 的那个主题中.

说白了, 就是一个跨站点的留言系统.  (希望算是比较正确的描述)

TrackBack 的实现有两个重点:
1. 作为 Blog 服务端时(也就是 Blog A), 需要能接收到各个使用了 TrackBack 连接的 Blog 发送到自己这里的信息并发回反馈.
    需要解析发来的数据, 不过这个很容易实现.
2. 作为客户端时(Blog B), 需要在有新的回复时通过指定的链接发出内容摘要给服务端.
    目前官方文档定义了两种方式:
       1) 通过 QueryString (正在逐步废除)
       2) 通过 Post Form 格式 (通过改 HTTP Header 模拟的 Form Post)
    PHP 可以通过 fopen 实现. ASP 可以通过 ServerXMLHTTP 实现(老的 XMLHTTP 性能和功能不理想). PERL 的请参考 MovableType.
其它的就是 TrackBack List RSS 和 AutoDiscovery(有人说 AutoDiscovery 会毁了 TrackBack 的实用性, 我深以为然). 前者我实现了, 后者没有打算, 虽然还算简单. 但是目前还存在编码不同的问题. 例如我的 Blog 是 GB2312 而别人的是 UTF-8, 那么发过去就是乱码. 要把 Blog 转成 UTF-8 就需要 Windows 2000 Server 及更高版本的服务器了. 为此犹豫中.

没有评论: