TRANS-ID 是一个32位字节的值,当它与发出者的网络地址加起来,就可以唯一确定此次HTCP交易 。需要谨慎的是,在UDP数据报的生命周期内不要重用此交易代号TRANS-ID 。
OP-DATA 它依靠于操作编码(opcode-dependent),其对每一操作代码的定义见下边 。
2.8. HTCP/0.0 的AUTH的具体格式如下:
0 (MSB)1 (LSB)
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
0:LENGTH
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2:SIG-TIME
4:SIG-TIME
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
6:SIG-EXPIRE
8:SIG-EXPIRE
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
10:
/ KEY-NAME /
/ /
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
n:
/ SIGNATURE /
/ /
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
LENGTH 是用来存放AUTH部分的字节数,其中包括LENGTH字段本身所占的长度 。假如可选项AUTH不被传送的话,此字段应该置为2(two) 。LENGTH还可以包括多余的空白,也就是说LENGTH所预留的字节数并不是所有的都用于SIGNATURE字段 。
SIG-TIME 是一个无符号二进制计数器,它指示着从1970年11月1号的00:00:00,(UTC,Coordinated Universal Time)开始计数,到SIGNATURE产生的所经历的时间(以秒计) 。
SIG-EXPIRE 是一个无符号二进制计数器,它指示着从1970年11月1号的00:00:00,(UTC,Coordinated Universal Time)开始计数,到SIGNATURE被认为过期所经历的时间(以秒计) 。
KEY-NAME 是一 COUNTSTR 结构[ 参见3.1 ],它具体指定了共享密钥的名称 。(每一个HTCP的实现都容许有几个共享密钥的配置,而且每一密钥都有一个名称) 。
SIGNATURE 是一带有一个值为64的B 的COUNTSTR 结构[ 参见3.1 ], 它包含 HMAC-MD5 下边所示的各个要素的摘要(请见[RFC2104]),其中每一个摘要都是以其“on the wire”格式整理的,假如有被与字段相关的LENGTH覆盖的话还包括传送的多余空白:
IP SRC ADDR [4 字节]
IP SRC PORT [2字节]
IP DST ADDR [4字节]
IP DST PORT [2字节]
HTCP MAJOR 版本号 [1字节]
HTCP MINOR 版本号 [1字节]
SIG-TIME [4字节]
SIG-EXPIRE [4字节]
HTCP DATA [长度可变]
KEY-NAME (全部的 COUNTSTR [3.1]) [长度可变]
2.8.1. 共享的密钥应当随机且秘密地生成,而且密钥的长度至少应该有几百个字节 。
3. 数据类型
HTCP/0.* 的数据类型定义如下:
3.1. COUNTSTR 是一个记长度(counted)的字符串,其格式为:
0 (MSB)1 (LSB)
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
0:LENGTH
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2:
/ TEXT /
/ /
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
LENGTH 为后面TEXT字段中的字节数 。此字段与上边讲到的其它的HTCP协议中的LENGTH字段一样的是,它不包括自身所占的字节数 。
TEXT 是一段未被解释的字节流,通常为ISO8859-1标准的字符 。
3.2. SPECIFIER(说明符)用于TST 和CLR请求消息 。下面有它的定义 。它其格式是:
---------------------
METHOD: COUNTSTR
---------------------
URI: COUNTSTR
---------------------
VERSION: COUNTSTR
---------------------
REQ-HDRS: COUNTSTR
---------------------
METHOD (因为HTCP仅返回标题,所以GET和HEAD方法是等价的 。)
URI (假如URI是一个URL,它通常应当还包括一个“:”说明符 。若是没有的话,接收器会使用端口80 。)
VERSION 是一个完整的HTTP版本字符串,比如说“HTTP/1.1” 。不是以“HTTP/”版本字符串打头的以及版本号小于“1.1” 的版本字符串均不在此规格之内 。
推荐阅读
- 0.3表示几个0.1还可以表示几个0.010.3可以表示几个0.1还可以表示几个0.01
- HTTP 超文本传输协议状态管理的应用
- 2%是多少是怎么算
- ug10.0创建一个平面具体流程介绍
- 0.000001用科学计数法 0.000001用科学计数法是多少
- N95升级到V11.0.026版本后的一些变化
- 0.0set是什么意思车上的
- E50 V 07.13.0.0 升级报告
- N76使用10.00.35版本的优缺点
- 饿了么1分钱拿好货活动0.01元商品兑换券有效期是多久
