资源标识符是一个可选的第三位标识符,位于域标识符之后,后跟‘/’作为分隔符。资源标识符可以修改< [url=mailto:node@domain]node@domain[/url]>也可以只是
资源标识符必须按Resourceprep profile of [STRINGPREP]格式化,才能无错应用。比较两个资源标识符前,服务器必须(客户端应该)首先为每个标识符应用Resourceprep profile。 3.5 决定地址
SASL协商后(第6节),如果正确,资源绑定(第7节),流接收实体必须决定初始实体的JID。
如果SASL协商(第6节)期间未指定授权身份,对服务器与服务器间的通信,初始实体的JID应当被授权身份,派生于认证身份,在SASL(Simple Authentication and Security Layer简单授权与安全层)说明[SASL]中定义。
如果SASL协商(第6节)期间未指定授权身份,对客户端到服务器的通信,“bare JID”(<[url=mailto:node@domain]node@domain[/url]>)应该被授权身份,被派生于授权认证, 定义在[SASL]。在资源绑定期间(第7节)“full JID”
(<[url=mailto:node@domain/resource]node@domain/resource[/url]& gt;)的资源标识符部分应当是客户端与服务器间协商的资源标识符。
接收实体必须确保结果JID(包括结点标识符,域标识符,资源标识符,分隔符)遵从此节中前面所定义的规则与格式;为满足此限制,接收实体可能需要替代由接收实体所决定的规范的JID初始实体所发送的JID。 XMPP 3920 最靠谱的中文翻译文档(二) XML流 4.1概述
使presence-aware实体间能够相互迅速的、异步交换相关的小负载的结构化信息有两种基本元素:XML流与XML节。术语定义如下:
XML流定义:XML流是一个容器,用于网络上任意两实体间交换XML元素。XML流的开始是以一个起始的XML
XML节定义:XML节是一个不连续的结构化信息语义单元,通过XML流从一个实体发送到另一个实体。XML节以根的直接子层存在,如果它匹配产品[43]内容[XML],则可以很好的平衡。
任何XML节的开始都由深度为1的XML流(例如:
考虑一个客户端与服务器的会话例子。为了连接到服务器,客户端必须初始化一个XML流:发送一个起始的
习惯于将XML考虑成以文档为中心的人可能希望看到客户端与服务器的会话作为两个末端开口的(自由回答的)XML文档的组成部分:一个从客户端到服务器, 另一个从服务器到客户端。从这个观点看,根
本质上,那么,一个XML流充当了所有通过会话发送的XML节的信封。可用图简单表示如下:
|--------------------| |
4.2 绑定到TCP
虽然将一个XML流结合到一个[TCP]连接上不是必须的(例如:两个实体能通过其它诸
如[HTTP]投票选举机制而彼此互连),此说明也只定义了 XMPP到TCP的绑定。在客户端到服务器端通信的上下文中,服务器必须允许客户端为了从客户端到服务器与服务器到客户端的XML节发送共享的一个单 TCP连接。在服务器到服务器的通信上下文中,服务器必须使用一条TCP连接用于从服务器到其对等服务器的XML节传送,另一条TCP连接(由对等初始 化)用于对其等服务器到服务器的XML节传送,总共有两条TCP连接。
4.3 流安全
当在XMPP1.0中协商XML流时,TLS应当按TLS应用(第5节)所定义的来使用,SASL必须按SASL(第6节)所定义的来使用。“初始流” (例如:从初始实体到接收实体的流)与“响应流”(例如:从接收实体到初始实体的流)必须被分别保护,即使双向安全可能已通过相互的认证机制所建立。实体 不应当在流被认证之前,尝试通过流发送XML节(第9节),但如果这样做了,那么,其它实体不准接受此类节,并应当返回一个
4.4 流属性
流元素属性如下:
1) to—‘ to’属性应当仅用于从初始实体到接收实体的XML流头中,并且必须被设成一个接收实体服务的主机名。‘to’属性不应当设在接收实体回应初始实体的XML流头中;然而,如果‘to’属性包括在内,它应当被初始实体默默忽略。
2) from—‘ from’属性应当仅用于从接收实体到初始实体的XML流头中,并且必须被设成一个接收实体服务的主机名,此接收实体正授权访问初始实体。‘from’属 性不应在初始实体发送到接收实体的流头中;然而,如果‘from’属性包括在内,它应当被接收实体忽略。 3) id—‘ id’属性应当仅用于从接收实体到初始实体的XML流头中。此属性是唯一一个由接收实体创建的,作为初始实体流与接收实体间会话的密钥,并且,在接收应用 (通常是一个服务器)中是唯一的。注意:流ID可能是严格安全的,并且因此必须是即不能预测也不能重复的(参考[RANDOM]推荐关于随机安全观点)。 ‘id’属性不应在初始实体到接收实体的XML流头中;然而,如果‘id’属性包含在内,应被接收实体忽略。
4) xml:lang—‘ xml:lang’属性(定义在[XML]的12.2)应当包含在初始实体的初始流头中,