目 录
前 言
1 引言
2 范围
3 规范性引用文件
4 术语
5 缩略语
6 关键词网络定位服务解析协议遵循的原则
7 关键词网络定位体系
7.1 关键词解析体系结构
7.2 关键词解析流程
7.3 关键词语法定义
8 关键词请求消息
8.1 消息传输
8.2 请求方法
9 关键词应答消息
9.1. 应答的状态行(Status-Line)
9.2 应答标题域(Response-Header)
9.3转向应答
10 关键词对象的属性
10.1必要属性
10.2附加属性
10.3用户属性
11 缓存机制
12 关键词与网络资源的映射
12.1 关键词网络资源标识符
12.2 HTTP协议下关键词解析请求的语法
12.3 http协议下关键词网络资源定位应答的语法
12.4 http协议下关键词客户机的处理
13 关键词网络定位服务解析应用实施实例
13.1 关键词客户端
13.2 本地解析服务器(abc.com.cn)
13.3 顶级解析服务器(name.cnnic.net.cn)
前 言
本规范规定了关键词网络定位服务的解析协议
本规范起草单位:中国互联网络信息中心
本规范发起单位:
中国互联网络信息中心
搜狐爱特信信息技术(北京)有限公司
广州网易计算机系统有限公司
深圳市腾讯计算机系统有限公司
百度在线网络技术(北京)有限公司
北京爱思美网科技发展有限公司
关键词网络定位服务解析协议规范
返回
1 引言
关键词(Keyword)网络定位技术是继DNS域名技术之后发展起来的一种新型互联网访问技术。在该技术框架下,网络用户能够使用企业名、产品名、商标名或其它通用名称,直接访问目标网站或其它URI(统一资源定位标识)信息资源。
Keyword是应用级协议,它适应了分布式网络资源对灵活性及速度的要求。它是一个一般的、无状态的、面向连接的协议,通过对其请求方法(request methods)进行扩展,可以被用于多种用途。
该规范反映了“Keyword/1.0”基于HTTP协议的普通用法。其后续版本会支持XML规范。
返回
2 范围
本规范规定了关键词的结构、语法,以及关键词与网络地址(主要是IP地址)之间的映射机制,同时规定了关键词网络定位的协议模式和标准的实施要求。
本规范适用于关键词的命名、开发、系统运行、系统应用,以及建立在关键词网络定位技术基础之上的相关信息处理领域。
返回
3 规范性引用文件
GB/T 1988-1998 信息技术 信息交换用七位编码字符集 (ISO/IEC646:1991)
GB 13000.1-1993 信息技术 通用多八位编码字符集 (UCS)第一部分:体系结构与基本多文种平面 (ISO/IEC10646.1:1993)
GB 4754—84 国民经济行业分类和代码
RFC 3367 Common Name Resolution Protocol (CNRP)
RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1
RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1
RFC 1866 Hypertext Markup Language -2.0
RFC 1766 Tags for the Identification of Languages
ISO 3166 Country and Region Codes
返回
4 术语
本规范用了许多关键词及HTTP通讯相关的术语,如下:
关键词解析
关键词解析是在域名技术基础之上提出的、方便互联网用户访问网络资源的一种方法,它实现中文词汇(如:公司名称、产品名称、商标、人名等)到网络资源的直接定向解析处理。关键词中允许的字符集包括:中文汉字、数字、字母、“-”,全角符号表示需要转为半角符号表示。
连接(connection)
两个应用程序以通讯为目的在传输层建立虚拟电路。
消息(message)
关键词通讯的基本单元,在连接中传输的结构化的、有顺序的字节(其含义在第四节中定义),可分为请求消息和回应消息。
请求(request)
关键词的请求消息
回应(response)
关键词的回应消息
资源(resource)
网络上可以用URI来标识的数据对象或服务
客户端(client)
指以发出请求为目的而建立连接的应用程序。
用户代理(user agent)
指初始化请求的客户端,如浏览器、编辑器、蜘蛛(web爬行机器人)或其它终端用户工具。
服务器(server)
指接受连接,并通过发送回应来响应服务请求的应用程序。
原始服务器(origin server)
存放资源或产生资源的服务器。
代理(proxy)
同时扮演服务器及客户端角色的中间程序,用来为其它客户产生请求。请求经过变换,被传递到最终的目的服务器,在代理程序内部,请求或被处理,或被传递。代理必须在消息转发前对消息进行解释,而且如有必要还得重写消息。代理通常被用作经过防火墙的客户端出口,用以辅助处理用户代理所没实现的请求。
缓存(cache)
指程序本地存储的回应消息和用来控制消息存储、重获、删除的子系统。
缓存回应的目的是为减少请求回应时间,以及未来一段时间对网络带宽的消耗。任何客户端及服务端都可以包含缓存。
任何指定的程序都有能力同时做为客户端和服务器。我们在使用这个概念时,不是看程序功能上是否能实现客户及服务器,而是看程序在特定连接时段上扮演何种角色(客户或服务器)。同样,任何服务器可以扮演原始服务器、代理、缓存等角色,行为的切换取决于每次请求的内容。
八位位组 Octet
在计算机技术和通信技术中,作为一个整体处理的8个二进制数。
返回
5 缩略语
下列缩略语适用于本规范:
Keyword
关键词
DNS (Domain name system)
域名系统
IP (Internet Protocol )
互联网协议
URI (Uniform Resource Identifiers)
统一资源定位标识
HTTP (Hypertext Transfer Protocol)
超文本传输协议
返回
6 关键词网络定位服务解析协议遵循的原则
1)一致性
同样的关键词定位请求产生的精确应答结果必须一致,精确应答结果与解析过程中所涉及的解析器、服务器的位置及其系统设置无关。
2)开放性
关键词网络定位体系为其它应用软件提供开放、标准的技术平台,支持关键词的网络解析服务。
3)关键词网络定位服务具有健壮性、稳定性、安全性、可靠性。
返回
7 关键词网络定位体系
7.1 关键词解析体系结构
关键词命名空间是一个平面结构的空间。其解析体系有两级构成:若干服务器构成的关键词顶级解析服务器集群、关键词本地解析服务器。用户可以从任何解析服务器获得一致的应答结果。

- 顶级解析服务器
顶级解析服务器的应答是权威的,它从关键词数据库中查询得到最新的记录。应答最终用户或者各本地解析服务器的解析请求。
- 本地解析服务器
本地解析服务器在关键词解析体系中是可选的,它根据自身的缓存策略应答最终用户的请求,并缓存顶级解析服务器的应答。设置本地解析服务器的目的是为了加速最终用户的访问速度和提高关键词的解析效率。
- 关键词解析器
解析器将用户的关键词定位请求,发到关键词解析服务器,并将解析的应答返回给浏览器等网络应用程序。关键词客户端缺省设置一个或多个关键词解析服务器。
7.2 关键词解析流程
关键词网络定位服务解析协议是基于客户机-服务器结构的应用服务体系。下面说明在客户机、本地解析服务器、顶级解析服务器三级体系下的关键词解析过程:
1)用户使用支持关键词解析服务的客户程序,输入所要的关键词名称,经过互联网传输到本地关键词解析服务器。
2)本地解析服务器查询自身的缓存,如果有匹配的结果,则转4);否则,转发给顶级解析服务器。
3)顶级解析服务器收到解析请求后,查询关键词数据库到应答资源记录,封装成符合HTTP协议的数据格式的数据包返回给本地解析服务器。本地解析服务器对顶级解析服务器的应答进行缓存处理。
4)本地解析服务器将查询结果返回给用户程序。
7.3 关键词语法定义
<关键词> ::= <字符>|<字符><关键词>
<字符> ::= "-"|<汉字>|<数字>|<字母>
<汉字> ::= 任何一个汉字
<字母> ::= a-z|A-Z
<数字> ::= 0-9
返回
8 关键词请求消息
从客户端到服务器端的解析请求消息。如果关键词解析服务器收到请求消息,它必须返回一个应答消息。
8.1 消息传输
请求消息通过HTTP协议来传输。
8.2 请求方法
方法指明了将要以何种方式来定位由请求关键词指定的资源。方法是大小写敏感的。本规范中支持一种方法:
Method= "GET"
8.2.1 GET方法
GET方法就是以实体方式得到由请求关键词所指定资源的信息。
GET方法允许被缓存的解析结果在不必经过不必要的数据传输就能进行应答,从而有助于降低网络负载。
返回
9 关键词应答消息
在接收、解释请求消息后,服务器端通过HTTP协议返回关键词解析的应答消息:
Response= Full-Response
Full-Response = Status-Line ;
9.1状态行
|Response-Header
; 9.2 应答标题域
9.1. 应答的状态行(Status-Line)
完整回应消息的第一行就是状态行,它依次由http协议版本、数字形式的状态代码、及相应的词语文本组成,各元素间以空格(SP)分隔,除了结尾的回车换行(CRLF)外,不允许出现单独的回车(CR)或换行(LF)符。
Status-Line = http-Version SP Status-Code SP Reason-Phrase CRLF
9.1.1 状态代码和原因分析(Status Code and Reason Phrase)
状态代码(Status-Code)由3位数字组成,表示请求是否被理解或被满足。状态代码用来支持自动操作。
状态代码的第一位数字定义了回应的类别,后面两位数字没有具体分类。首位数字有5种取值可能,其代码的分配兼容HTTP协议的状态码:
1xx::保留,将来使用。
2xx:成功 - 操作被接收、理解、接受(received,understood, accepted)。
3xx:重定向(Redirection)-要完成请求必须进行进一步操作。
4xx:客户端出错 - 请求有语法错误或无法实现。
5xx:服务器端出错 - 服务器无法实现合法的请求。
Keyword/1.0的状态代码、原因解释在下面给出。
Status-Code = "200" ; OK
|"201" ; Created
|"202" ; Accepted
|"204" ; No Content
|"301" ; Moved Permanently
|"302" ; Moved Temporarily
|"304" ; Not Modified
|"400" ; Bad Request
|"401" ; Unauthorized
|"403" ; Forbidden
|"404" ; Not Found
|"500" ; Internal Server Error
|"501" ; Not Implemented
|"502" ; Bad Gateway
|"503" ; Service Unavailable
|extension-code
extension-code = 3个数字
Reason-Phrase = *
http状态代码是可扩展的,而只有上述代码才可以被当前全部的应用所识别。http应用不要求了解全部注册的状态代码。实际上,应用程序必须理解任何一种状态代码,如果碰到不识别的情况,可根据其首位数字来判断其类型并处理。
例如,如果客户端收到一个无法识别的状态码431,可以安全地假定是请求出了问题,可认为应答的状态码就是400。
9.2 应答标题域(Response-Header)
应答标题域中包括不能放在状态行中的附加应答信息。该域在对请求URI所指定资源进行访问的下一步信息。例如,在状态码是3XX,即重定向应答时,由回应标题域的Response-Header来指定重定向到的目的URL。
Response-Header = Location
9.3转向应答
当一个请求无法获得唯一精确的应答结果时,系统提供一个转向机制,依据请求的性质,进行多结果应答服务。
返回
10 关键词对象的属性
本规范中,关键词是以对象的形式存在,每个关键词对象具有各种不同的属性。关键词对象的属性分为必要属性、附加属性、用户属性三类,其中必要属性是用户请求或应答结果的组成部分。
10.1必要属性
必要属性是关键词系统服务必须支持的最小属性集合,它保证了关键词应用服务的各个环节之间的具有互操作性,能够正常的通讯。它包括:
- 关键词name
关键词名称。
- 应用类型 apptype
关键词对应网络资源所属的应用服务类别。
目前支持的类型有:
web ;Web服务
email ;email服务
800 ;800互联网络电话应用
缺省类型为web。
- 网络资源标识 url
关键词所对应的网络资源的统一资源定位标识。如web应用对应的网络资源标识:http://www.cnnic.net.cn
10.2附加属性
附加属性是关键词对象的一个组成部分,但不强制在整个系统中执行这些属性,引入附加属性的重要目的是为解析过程提供一个应答结果过滤器。附加属性包括:
- 语言
一个网络资源所属的语言类型。语言属性的具体种类参照RFC 1766。
- 地理位置 locale
一个网络资源所属的地理区域。参照ISO3166中标准的国家码区域码定义的一个地理位置。
- 工业范畴
一个网络资源所属的工业类型。参照GB4754—84 国民经济行业分类和代码
- 其它数据集的URL
一个关键词或相关数据集的URL.
10.3用户属性
除了必要属性和基本属性,规范中定义了用户属性,它是一个抽象属性元素,用于扩展系统的必要属性的范围。
创建用户属性有两种方式:
- 定义一个新属性名,以及该属性的类型(至少有一个类型);
- 为现有的属性名定义一个新的类型。
用户属性必须在关键词顶级解析服务器中注册。只有在注册之后,用户属性才能被整个关键词系统的各个部分识别、使用。
例如,用户可以定义的fallbackuri属性,用于指示在关键词精确匹配失败时,转向应答的URI地址。再如,合作伙伴标志pid属性,用于指示顶级解析服务器运行方分配给各合作伙伴的标识号。
返回
11 缓存机制
目前关键词解析协议的缓存机制与HTTP/1.1(RFC 2616)的缓存机制等同实现。
返回
12 关键词与网络资源的映射
12.1 关键词网络资源标识符
关键词网络资源标识符是关键词所对应的网络资源标识符。它包括:关键词、网络资源URI、属性、类型四个部分。如:
name = 清华大学
apptype = web
网络资源URL = http://www.tsinghua.edu.cn
apptype = email
网络资源URL = mailto:info@tsinghua.edu.cn
语言属性类型 = 中文
地理位置属性类型 = 北京
工业范畴属性类型 = 教育机构
12.2 HTTP协议下关键词解析请求的语法
目前,关键词网络定位服务的请求和应答均采用HTTP协议,其中最基本的请求数据模式为:
<关键词解析服务器URL>?<属性名>=<属性值> [&<属性名>=<属性值>]
以浏览器程序使用HTTP协议访问关键词服务器(http://name.cnnic.net.cn/cn.dll)为例:
http://name.cnnic.net.cn/cn.dll?pid=XXX&name=ZZZ&fallbackuri=http%3A%2F%2Fsearch-engine.cn%2Fsearch%3Fq%3DZZZ
其意义为,合作方XXX发送来的请求关键词ZZZ所对应的网络资源URL,如果没有精确匹配到结果,则转向应答到http://search-engine.cn/search?q=ZZZ,其它属性为缺省值。
12.3 http协议下关键词网络资源定位应答的语法
对关键词请求方的应答模式:
<应用类型 apptype ><网络资源标识URL>
以浏览器程序使用HTTP协议访问关键词服务器为例:
- 应答的HTTP状态码为:301。
- 应答的标题域的location = http://www.tsinghua.edu.cn
意思为,重定向到http://www.tsinghua.edu.cn。
12.4 http协议下关键词客户机的处理
客户机的关键词解析器得到的解析应答为:HTTP状态码为301,应答标题域的location为http://www.tsinghua.edu.cn,将这个应答交给浏览器应用,客户机的浏览器将访问http://www.tsinghua.edu.cn网络资源。
返回
13 关键词网络定位服务解析应用实施实例
为配合本规范的应用,给出一个最小代价的实施实例。

13.1 关键词客户端
配合支持HTTP协议的WEB浏览器等网络应用软件,将用户的关键词请求发向关键词本地解析服务器或者关键词顶级解析服务器。关键词的客户端至少要设定一个缺省的关键词解析服务器,可以是本地解析服务器或者某个顶级解析服务器。
13.2 本地解析服务器(abc.com.cn)
使用SQUID软件包(www.squid-cache.org),配置为顶级解析服务器的缓存服务器。
13.3 顶级解析服务器(name.cnnic.net.cn)
CNNIC通用网址解析服务器,http://name.cnnic.net.cn/cn.dll。
返回
中国互联网络信息中心
2003年4月15日