5

Trackback,Pingback及XML-RPC

 2 years ago
source link: https://blogread.cn/it/article/7140?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Trackback,Pingback及XML-RPC

浏览:2718次  出处信息

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状态,返回成功。

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

参考链接:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK