PubSubHubbub协议详解(PUSH)

 PubSubHubbub协议是一个简单、开放、服务器对服务器的,基于Web-hook的发布/订阅(pubsub)协议,是Atom和RSS的扩展。遵守PubSubHubbub协议的参与者(servers)能够(通过webhook callbacks)几乎实时地获取到自己感兴趣的主题(feed URL)更新信息。

  协议概述内容如下:
  (1)一个feed URL(一个"主题")通过<link rel="hub"…>标签在其Atom或者RSS的XML文件中声明其Hub server(枢纽服务器)。这个Hub(s)可以有feed的发布者运行,也可以由任何人都可以使用的群体Hub。(Atom和RSS都被支持)
  (2)一个订阅者(对某个主题感兴趣的服务器),首先如正常一样的获取Atom URL。如果Atom文件声明了它的Hubs,那么订阅者就可以避免不完全的,重复的轮询(lame,repeated polling)URL,而是在feed的Hub注册和订阅更新。
  (3)订阅者通过主题URL声明的Hub(s)上订阅这个主题。
  (4)当发布者(Publisher)下一步更新这个主题URL,发布者的软件会ping其Hub(s),告知这里有一项更新了。
  (5)Hub能够高效的获取已发布的feed,并且广播最新/更改的内容给所有注册的订阅者。
  PubSubHubbub 只是一个协议而不是服务,这个协议是分散管理的(去中心化)且免费的。没有一家公司在其中进行控制。任何人都可以运行一个Hub,或者任何人都可以使用开放的hubs进行发布或者订阅内容。
  目前,Google提供了一个开源的Hub参考实现(协议最复杂的部分),运行在Google的App Engine上,同时开放给所有人使用。(实例:Live,Demo Hub

  下面是对订阅流(Subscription flow)的详解图。

  1、 订阅者请求发布者的Feed。Feed返回其Hub的链接。

2、 订阅者发送订阅请求到Hub。请求中包含Hub需要发送更新的终端URL。

3、 Hub发送给终端确认请求是否是真实的;订阅者回复确认给Hub。

4、 发布者通过post其Feed URLs给Hub通知Hub其有更新;Hub会重新获取Feed找到其中新的条目内容。

5、 如果发布者没有主动通知Hub,Hub会定期的抓取发布者的Feed以获得更新内容。

6、 当Hub接收到Feed X的更新,它会把更新post给所有订阅者的终端URL。

7、 如果Feed X有多个订阅者,Hub会把更新发送给所有人。这大大降低了发布者的负载。

8、 未来是分布式的:包含一些大Hubs,许多小Hubs,无数的发布者和订阅者。发布者、订阅者和Hub都可以扮演多种功能角色。

最后是一张完整的功能需求表,PuSH协议对三者功能的基本描述如下图所示。

本文参考的资料都是官网的英文资料,以翻译为主。详细资料和实现都可以参考这里:
  http://code.google.com/p/pubsubhubbub/
  转载请注明出处:互联网旁观者~黄言之 http://blog.sina.com.cn/netreview/

时间: 2024-10-12 11:54:59

PubSubHubbub协议详解(PUSH)的相关文章

HTTP协议详解

HTTP协议详解 转载(http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html) 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看.也希望对大家的开发工作或者测试工作有所帮助.使用Fidd

HTTP协议详解(真的很经典)

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

HTTP协议详解 (转)

转自 http://blog.csdn.net/gueter/article/details/1524447 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务

DHCP协议详解

DHCP协议详解 定义:DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,主要作用是为局域网内的主机自动分配IP地址.DCHP工作在应用层,是BOOTP(Bootscrap Protocol)的一种扩展,使用UDP协议进行运输,UDP67和UDP68端口分别作为DHCPServer和DHCP Client的服务端口.DHCP协议内容在RFC2131中定义,而DHCP Options在RFC2132中定义. DHCP的4次握手 测试方法:为了抓到D

IP协议详解

IP协议详解 前言 本屌今天可算是累坏了,一大早起来本来寻思赶快centOS虚拟机玩玩吧,那天刚装了系统,本来的虚拟机没了,今天想着先把centOS装上,结果给个系统不停的给我扯淡啊,显示虚拟机上不去网,好不容易上去网了,ping不通主机,主机ping不通虚拟机,各种办法都试了,最后我吧VMware8那块网卡禁用了,卧槽!!啥都好了,本屌一直鼓捣到晚上八点,从早晨10点多.服了我自己了. 引入 在前面的学习中,我们简单地IP接力和IP地址后,咱们今天具体的说说IP协议的具体细节和设计哲学. IP

转:HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HT

HTTP协议详解以及URL具体访问过程

1.简介 1.1.HTTP协议是什么? 即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.从网络参考模型来看,它是属于应用层.它规定了计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. 简单的来说,它就是基于应用层一个规范一个标准!通讯双发都需要遵守这一准则,这就是http协议! 1.2.http简史

(转)HTTP协议详解

HTTP协议详解 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议. HTTP协议是用于从WWW服务器传输超文本到本地

javaweb part3 ----HTTP协议详解,以及java中request response的类以及方法

HTTP协议详解Requsert Headers 浏览器 向服务器 发送的 请求信息Get /Myweb/persons.html HTTP/1.1 (必须)Host:localhost:8080Connection:keep-alive Accept支持格式:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8User-Agent:兼容浏览器的版本Accept-