RVP:存在和即时消息传送协议 (5)

标头

支持下面的标头以用于 DAV/HTTP:DAV 和 Depth。新的 RVP 标头包括 RVP-Notifications-Version、Call-Back、Subscription-Id、Subscription-Lifetime 和 Notification-Type。

现有的 DAV/HTTP 标头

RVP 实现可以忽略所有 DAV 特定的标头,除非另有说明。

DAV 标头

因为此协议的当前版本只是部分符合 DAV,所以服务器从来不返回此标头,而且在请求中忽略它。

Depth 标头

在 PROPFIND 方法中仅支持深度值为零的此标头,在该方法中它是必需的。


Top


新的 RVP 标头

RVP-Notifications-Version

此标头提供通知协议的版本号。每个请求和响应都必须包括此标头。

Call-Back

此标头取自 GENA,在 SUBSCRIBE 方法中使用;它给出订阅通知的异步 NOTIFY 回调的 URL。

Subscription-Id

此标头取自 GENA,在 SUBSCRIBE 请求/响应以及 NOTIFY 和 UNSUBSCRIBE 请求中使用。它给出订阅的唯一标识符。

Subscription-Lifetime

此标头取自 GENA,在 SUBSCRIBE 方法中使用。如果租用了订阅,它表明被请求的(在请求中)订阅和实际的(在响应中)超时需要更多信息。

Notification-Type

此标头取自 GENA,在 SUBSCRIBE 方法中使用。它表明所需的通知类型(在 GENA 框架内)。

值可以是 update/propchange 或 pragma/notify,并且可以扩展为其它值。

RVP-Ack-Type

此标头确定 NOTIFY 消息的发件人何时对完成发送和要求确认满意。它可以具有 SingleHop、DeepOr 或 DeepAnd 值。

RVP-Hop-Count

此标头用来表明为生成此请求出现了多少次转发,包括 NOTIFY 消息的来源(最初设置为 1)。

RVP-From-Principal

此标头表明此方法的来源。它通常是发件人的逻辑 URL


Top

返回码

RVP 使用几种现有的 HTTP 返回码,以及来自 DAV 的几种返回码。下面是通常使用的返回码:

200 Successful

此代码表明已经成功执行了请求。

207 MultiStatus

作为对 PROPPATCH 或 PROPFIND 请求的响应,正常情况下将接收到此代码。此请求具有一个文本 /html HTTP 主体,该主体有一个称为 multistatus 的单一 XML 元素。multistatus 元素具有一组称为响应的 XML 元素,其中包含 200、300、400 和 500 系列的状态代码,这些代码是在调用方法期间生成的。

302 Object Moved

此代码表明所请求的节点不是由服务器维护的。响应包括该节点的新 URL。作为对向路由器发出的请求的响应,通常会接收到此类型的响应。

401 Access Denied

此代码表明某个节点已经拒绝了访问。当 PRESENCE SERVICE 试图访问受保护的节点时,它用此代码作为响应。响应标头包含可用授权方案的详细信息。

412 Precondition Failed

此代码表明无法将请求应用于所请求的节点。其用法的一个示例是,当一个实体试图将 INSTANT MESSAGE 发送给一个不再可用的 PRINCIPAL 时。

500 Internal Server Error

此代码表明会话中缺少 PRINCIPAL。例如,当一个 PRINCIPAL 离开与多个 PRINCIPALS 的讨论,且它的 INSTANT INBOX 接收到会话通知时,将使用此返回码。然后,INSTANT MESSAGE 的发件人就能够指明该 PRINCIPAL 已经离开了对话。


Top


XML 文档类型定义

以下是在 DAV 中使用的元素:

set

prop

timeout

displayname

subscription

subscription-id

href

subscriptions

multistatus

response

propstat

propertyupdate

RVP 元素

下表说明由 RVP 提供的元素。

元素定义父级作用
State DAV: 表明节点的当前状态信息
Leased-value 表明“当前租用值”状态
Default-value 表明节点的当前缺省状态(当前为 " " , , 或 之一)
Value 表明节点的当前状态(当前为 " " 或 之一)
Online | 表明“在线”状态
Offline | 表明“离线”状态
Away | 表明“离开”状态
Busy | 表明“忙”状态
Back-soon | 表明“很快返回”状态
On-phone | 表明“有电话”状态
At-lunch | 表明“吃午饭”状态
View-id 为对节点的更新提供唯一的标识符
Principal 包含有关 PRINCIPAL 的详细信息
Rvp-principal 详细说明 PRINCIPAL 的逻辑 URL
Email DAV: 包含有关 PRINCIPAL 的电子邮件地址的详细信息
Mobile-state DAV: 确定 PRINCIPAL 的移动(即手机)状态是在线
Mobile-description DAV: 说明 PRINCIPAL 的移动(即手机)号码
Notification None表明发生了一个即时消息或对 PRINCIPAL 状态的更新
Propnotification 表明 PRINCIPAL 的状态发生了变化
Message 表明发送或接收了一个即时信息
Notification-from | 表明通知或消息的来源
Notification-to | 表明通知或消息要发送给何人
Msgbody 包含需要发送的用 MIME 编码的消息
Contact | 详细说明如何与 PRINCIPAL 联系
Description 说明联系人的情况
Mime-data 包含要发送或接收的实际 INSTANT MESSAGE


Top


MIME 有效负载

在通知的 mime 数据内可以传递三种类型的有效负载。以下各节包含这些有效负载中每一种的详细信息。

即时消息

此有效负载是最常见的类型。它通常用来在两个 PRINCIPALS 之间发送一些文本。mime 数据如下所示:

           
           

键入消息

此有效负载用来表明 PRINCIPAL 正在键入。在 Exchange 2000 Server 中,这些通知每隔 4 秒发送一次。

           
           

应用程序邀请

在出现启动应用程序的请求时,使用此有效负载。

           

Top


参考资料

以下这些文章可以在 Internet 工程工作组(英文)的 Web 站点上找到:

"A Model for Presence and Instant Messaging," Day, M., J. Rosenberg, and H. Sugano, RFC 2778 [MODEL]。

HTTP Extensions for Distributed Authoring, Goland Y., E. Whitehead, A. Faizi, S. Carter and D. Jensen, RFC 2518 [WEBDAV]。

Hypertext Transfer Protocol HTTP/1.1, Fielding, R. J. Gettys, J. Mogul, H. Frystyk, and T. Berners-Lee, RFC 2068 [HTTP]。

"Instant Messaging/Presence Protocol Requirements," Day, M., S. Aggarwal, G. Mohr, and J. Vincent RFC 2779, [IMPP-REQTS]。

回到顶部
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p> <span style="font-size:14px;color:#337FE5;">【为什么学爬虫?】</span> </p> <p> <span style="font-size:14px;">       1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!</span> </p> <p> <span style="font-size:14px;">       2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件网站</span> </p> <p> <br /> </p> <span style="font-size:14px;color:#337FE5;">【课程设计】</span> <p class="ql-long-10663260"> <span> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是 </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 网络请求模拟浏览器的行为从网上抓取数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据解析将请求下来的数据进行过滤,提取我们想要的数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据存储将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是 </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 爬虫进阶包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 </li> <li class="" style="font-size:11pt;color:#494949;"> Scrapy分布式爬虫Scrapy框架、Scrapy-redis组件、分布式爬虫等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 </p> <p style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;background-color:#FFFFFF;color:#337FE5;">【课程服务】</span> </p> <p> <span style="font-size:14px;">专属付费社群+定期答疑</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"><br /> </span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"></span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值