完整形式是“<n>#<m>元素”表示至少有<n>个至多有<m>个元素,中间用“,”或
任意数量的空(LWS-linear whitespace)来分隔,这将使列表非常方便,如“(*LWS
元素 *( *LWS "," *LWS 元素 ))”就等同于“1#元素”。
空元素在结构中可被任意使用,但不参与元素个数的计数。也就是说,“(元素1),,
(元素2)”仅表示2个元素。但在结构中,应至少有一个非空的元素存在。缺省
是0到无限,即“#(元素)”表示可取任何数,包括0;而“1#元素”表示至
少有1个;而“1#2元素”表示有1个或2个。
;注释(; comment)
分号后面是注释,仅在单行使用。
隐含*LWS(implied *LWS)
本文的语法描述是基于单词的。除非另有指定,线性空(LWS)可以两个邻近符
号或分隔符(tspecials)之间任意使用,而不会对整句的意思造成影响。在两个符号之
间必须有至少一个分隔符,因为它们也要做为单独的符号来解释。实际上,应用程序在
产生HTTP结构时,应当试图遵照“通常方式”,因为现在的确有些实现方式在通常方
式下无常工作。
在本备忘录中,我们用缩进的小型段落来提供动机和背景资料。这将使没有参与制定RTSP规范的读者更容易理解RTSP中各部分为什么要以该方式来实现。
3 协议参数
3.1 RTSP版本
同[H3.1]定义,仅用RTSP代替HTTP即可。
如下:
RTSP采用主从(<major>.<minor>)数字形式来表示版本。协议的版本政策倾向于让发
送方表明其消息的式及功能,而不仅仅为了获得通讯的特性,这样做的目的是为了与更高
版本的RTSP实现通讯。只增加扩展域的或增加了不影响通讯行为的消息组件都不会导致
版本数据的变化。当协议消息的主要解析算法没变,而消息语法及发送方的隐含功能增加了,
将会导致从版本号(<minor>)增加;当协议中消息的式变化了,主版本号(<major>)也
将发生改变。
RTSP消息的版本由消息第一行中的RTSP版本域来表示。
RTSP-Version = "RTSP" "/" 1*DIGIT "." 1*DIGIT
注意,主从版本应当被看作单独的整数,因为它们都有可能增加,从而超过一位整
数。因而,RTSP/2.4比RTSP/2.13版本低,而RTSP/2.13又比RTSP/12.3版本低。
版本号前面的0将被接收方忽略,而在发送方处也不应产生。
本文档定义了RTSP协议的1.0版本。发送本规范定义的请求(Request)或回应(Response)消息的应用必须指明RTSP的版本为“RTSP/1.0”。使用该版本号意味着发送消息的应用至少有条件的遵循本规范。
应用的RTSP版本即为应用至少能有条件遵循的RTSP版本中的最高版本。
当代理及网关收到与其自身版本不同的RTSP请求时,必须小心处理请求的推送,因为
协议版本表明发送方的能力,代理或网关不应发出高于自身版本的消息。如果收到高版本的
请求,代理或网关必须降低该请求的版本,并回应一个错误。而低版本的请求也应在被推送
前升级。代理或网关回应请求时必须和请求的版本相同。
3.2 RTSP URL
“rtsp”和“rtspu”表示要通过RTSP协议来定位网络资源。本节详细定义了RTSP URL的语法和语义。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47670-7.html
加快建设