HTCP/0.0 超文本缓存协议( 二 )


---------------------
HEADER说明消息的长度和协议的版本
---------------------
DATAHTCP消息体 (每一个主版本号都会有所不同)
---------------------
AUTH可选的交易认证
---------------------
2.6. HTCP/*.* 的HEADER 的具体格式如下:
0 (MSB)1 (LSB)
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
0:LENGTH
2:LENGTH
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2:MAJORMINOR
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
LENGTH 消息的长度,其中包括了所有的HEADER以及八字节数据,还包括LENGTH字段自身所占长度 。假如在使用数据报协议的话,此字段与商务流量的大小(“记录的长度”)是一致的,并且还包括多余的空白,也就是说在DATA和AUTH部分并不是所有的八字节的消息都会有用 。
MAJOR 是主版本号(0代表规格) 。HTCP消息的DATA部分需要向上或者向下兼容不同的主版本号 。
MINOR 是次版本号(0代表规格) 。不同的特性标准和翻译规则依此字段而定,非凡地,预留(RESERVED)字段(虽然是可选的)在同一主版本号中的后续次版本号可能会有有新的含义 。
2.6.1. 我们希望HTCP的发出者知道即将到来的HTCP响应者的版本号,或者HTCP的发出者通过使用数值降序法探测MINOR和MAJOR版本号(以本地可支持的最大数值开始)并在本地缓存探测到的HTCP响应者的版本号 。
2.6.2. 较高的主版本号优先级更高,因为较高的次版本号也是被在特定的主版本号中的 。
2.7. HTCP/0.* 的DATA 的具体格式如下:
0 (MSB)1 (LSB)
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
0:LENGTH
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2:OPCODERESPONSERESERVED F1 RR
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
4:TRANS-ID
6:TRANS-ID
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
8:
/ OP-DATA /
/ /
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
LENGTH 是HTCP消息用来存放DATA部分的字节数,其中包括LENGTH字段本身所占的长度 。此数还包括多余的空白,也就是说LENGTH所预留的字节数并不是所有的都用于OP-DATA字段 。
OPCODE 是HTCP交易的操作编码字段 。一个HTCP交易可以包括多个HTCP消息,比如说,一个请求消息(由发出者发送),或者一个响应消息(由响应者发送) 。
RESPONSE 此为一个数值型编码,用来指示交易成功或者失败的 。此字段应该由请求者置为零(zero),而响应者不去管它 。每一操作都有自己的一套响应编码,这套编码将在后边才被确定下来 。整个消息的响应编码如下所示:
0 必须使用认证但是还没有使用
1 已经使用了认证,可是并不符合要求
2 操作编码未被执行
3 不被支持的主版本号
4 不被支持的次版本号(主版本号符合要求)
5 不适当的、不答应的或者是不受欢迎的操作编码
上面的响应编码都是错误提示,它们的能见性完全取决于MO=1(接下来会有说明)是否成立 。
RR 是一个标志位,指示一条消息是否请求(0)还是响应(1) 。
F1 此位被重载,因此它对于请求者和响应者有着不同的用法 。假如RR=0,那么F1被定义为RD 。假如RR=1,则F1定义为MO 。
RD 是一个标志位,当它是1时,意味着要求响应 。某些操作编码(OPCODE)需要将RD置为1才有意义 。
MO (em-oh) 是一个标志位,它指示是把响应编码解释为对整个消息的一个响应( DATA中确定的字段或者是AUTH中的任一个字段)[ MO = 1时 ],还是在 OP-DATA中的字段的一个响应[ MO = 0 时] 。

推荐阅读