TrackBack--向博客作者发送引用通知

by Jason 2008-07-05, 13:16

先看下面的例子:
我在www.tiray.net上写了一篇文章“香格里拉奥运火炬传递”。
另外一个博客作者(实际上也是我,呵呵)在http://tiray.blog.hexun.com/20518701_d.html上全文引用了我的文章,并通过blog.hexun.com的TrackBack机制向我发送了一条引用通知,现在,在http://tiray.blog.hexun.com/20518701_d.html上有一个如下所示的文章来源链接,链接地址是我在www.tiray.net上的文章。

 

而www.tiray.net的博客后台程序在接收到来自于blog.hexun.com的TrackBack信息后,在相应文章的评论中添加了一条如下所示的评论,评论中包括了引用我的文章的地址、文章标题、博客名称等信息,这样,我就知道了是谁在什么地方引用了我的文章。

TrackBack的意义并不仅仅是向作者发送引用通知,更重要的是通过链接地址在两篇博客文章之间建立起了联系。对于读者来说,可以方便地寻找到一系列相关的文章;从搜索引擎优化(SEO)的角度来说,到一篇文章的链接越多,这篇文章在搜索中的排名也就越靠前。

TrackBack的技术规范请看http://www.sixapart.com/pronet/docs/trackback_spec
TrackBack是使用REST(Representational State Transfer,具象状态传输)体系实现的。客户端使用HTTP Request向服务器端发送TrackBack信息,而服务器端以XML格式返回响应。
TrackBack信息由以下部分构成:
title:文章标题,可选
excerpt:文章摘要,可选
url:文章的固定链接(PermaLink)地址,必填。当url为空时,服务器端应返回一条错误信息。
blog_name:发表文章的博客名称,可选
服务器端返回的XML响应如下:
当发送成功时,返回
    <?xml version="1.0" encoding="utf-8"?>
    <response>
    <error>0</error>
    </response>
当出现错误时,返回
    <?xml version="1.0" encoding="utf-8"?>
    <response>
    <error>1</error>
    <message>The error message</message>
    </response>
发送TrackBack信息时需要知道服务器端可接受的编码格式,并根据编码格式对信息进行编码。通常在文章显示的TrackBack地址附近都可以找到一个编码方式的说明,例如GB2312,如果没有这样的说明,通常表明服务器端接受的是UTF-8格式的编码。

下面是一个向www.tiray.net发送TrackBack信息的例子
POST /trackback.axd?id=35045156-4cd4-4dfb-a794-fd1e62327d13 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Tiray Blog Ping
Host: www.tiray.net
Content-Length: 116
Expect: 100-continue

title=香格里拉奥运火炬传递&blog_name=Tiray's Blog&url=http://tiray.blog.hexun.com/20518701_d.html&excerpt=

下面是www.tiray.net返回的XML响应
HTTP/1.1 200 OK
Date: Sat, 05 Jul 2008 04:45:53 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 107

<?xml version="1.0" encoding="iso-8859-1"?><response><error>Trackback already registered</error></response>

TrackBack技术规范还要求实现自动发现机制,以便客户端能够自动发现文章的TrackBack地址。自动发现例子如下所示:
    <!--
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
      <rdf:Description rdf:about="http://www.tiray.net/post/e9a699e6a0bce9878ce68b89e5a5a5e8bf90e781abe782ace4bca0e98092.aspx" dc:identifier="http://www.tiray.net/post/e9a699e6a0bce9878ce68b89e5a5a5e8bf90e781abe782ace4bca0e98092.aspx" dc:title="香格里拉奥运火炬传递" trackback:ping="http://www.tiray.net/trackback.axd?id=35045156-4cd4-4dfb-a794-fd1e62327d13" />
    </rdf:RDF>
    -->

实现TrackBack需要考虑的另外一个问题是服务器端应当提供防范垃圾信息的机制,例如根据客户端发送的TrackBack信息对文章进行检验,确保信息是真实的;对于来自相同地址的引用信息只记录一次;等等。blog.hexun.com的后台程序就没有实现防垃圾信息功能,请看这篇文章:http://tiray.blog.hexun.com/19752108_d.html,我发送了5条虚假的TrackBack信息,居然全部显示出来了。

Tiray Blog Ping的1.2版开始,我提供了手动发送TrackBack信息的功能,以方便博客作者发送TrackBack信息。

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:,
Category:博客技术

Comments

Add comment


 

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.4.5.0 Theme by Mads Kristensen
滇ICP备06001863号

我的软件

最新评论

Comment RSS

声明

      如非特别注明,本网站发布的所有文章、源代码及软件均为原创,其版权归www.tiray.net所有。如需转载或引用,请注明出处并通知作者。
      本网站建立于中华人民共和国境内,受中华人民共和国法律法规约束。请勿在本网站发表违反国家法律法规的言论。