标点符(钱魏 Way)

Trackback,Pingback及XML-RPC

WordPress 中的留言有三种类型,分别是普通评论、Pingback 和 Traceback。Pingback 和 Trackback 都是别人对你文章的引用,两者有一些区别,但是实际上差不多。简单的说 Trackback是引用通知,而Pingback是 自动引用通知。

1、什么是Trackback?

Trackback最早是由MovableType博客系统的创建者SixApart在2001年开发的,通过在评论中显示引用者的文章链接和评论内容,实现了博客间的沟通互动,使得更多人加入关于一个主题的讨论。在出现Pingback之后,Trackback只是作为一个兼容旧式博客系统存在的功能。对于Trackback的一个比较清晰的解释是:

  • 甲在博客上发表一篇日志。
  • 乙在甲的博客上评论,也想让自己的访客看看评论内容,并让访客能在自己的博客上评论。
  • 乙在自己的博客上发表日志,同时手工向甲的博客发送一个Trackback。
  • 甲的博客收到了显示原始文章评论的Trackback,且评论包含了乙的文章链接和一段文章摘要。

Trackback的使用是完全手工的,并且通过HTTP POST协进行数据传递。由于Trackback目前仅是为兼容旧式博客系统而存在的,因此在WordPress中只在文章编辑页中保留了一个发送Trackback的小工具。

2、什么是Pingback?

Pingback这个功能中文解释是「引用」,当你的文章有引用别人的内容时(通常内容里有加上对方的超链接),一旦文章发表后,就会自动启动Pingback功能,这功能会发送一个Ping给对方,会以评论的方式呈现。发送Ping的对象取决于文章内所有的网址(超链接)。

Pingback的出现完全是为了解决Trackback的诸多问题。不过对于用户来说,最大的好处是,Pingback的使用是完全自动的,这也是我将Pingback译作“自动引用通知”的原因。当你在文章中加入了一系列基于WordPress系统的文章链接,并且发布文章后,你的WordPress系统会自动从文章中拣出链接并尝试向这些系统发出Pingback。这些链接所在的WordPress网站接受到Pingback后就会将Pingback信息显示在评论中。

3、Trackback和Pingback的比较

从普通blogger的眼观看,Pingback和Trackback的作用是一样的,其中不同之处在于:

  1. Pingback使用XML-RPC协议,而trackback使用HTTP POST协议
  2. Pingback支持自动察觉,博客系统自动发现文章中的链接,并尝试使用Pingback方式通知这些链接;而Trackback必须手工输入所有链接
  3. Pingback发送的文章摘要是链接附近的文章内容,而Trackback则完全需要手工输入摘要。

4、Pingback还有什么可以用的地方?

研究Pingback的最主要目的是探索Pingback的机制或者流程是否可以运用到其他场景,比如在创建页面的时候跟踪每套页面的引用脚本和CSS文件,然后通过Pingback机制登记使用的版本号,一旦要有版本升级就可以清晰的知道有哪些地方可以引用。

5、Pingback的实现

Pingback是基于XML-RPC协议进行的开发的,Python中有现成的库支持。以下为搭建Pingback服务端和客户端的相关思路。

客户端实现:

  1. 找出文章中所有链接,还要找出链接对应的xmlrpc(pingback) server;
  2. 调用该server的pingback.ping方法,把本文链接和对方链接作为参数传过去;
  3. 处理返回状态,记录下这次pingback的信息,这是为了避免更新文章时多次ping。

服务端实现:

  1. 从过来的xml中解析出pagelinkedfrom(来源url)和pagelinkedto(被请求url);
  2. 根据pagelinkedto找出被请求页面post_ID;
  3. 抓取pagelinkedfrom网页内容,提取标题,并找出pagelinkedfrom的位置,并提取该位置附近的文字作为摘要;
  4. 将上一步得到的标题、摘要、和pagelinkedfrom添加到被请求页面的评论中;
  5. 上面任何一步出现异常都将终止流程并返回异常,否则记录该pingback状态,返回成功。

以上内容为一些比较粗浅的想法,期望后期能把此方法变现。

参考链接:

码字很辛苦,转载请注明来自标点符《Trackback,Pingback及XML-RPC》

评论