关键词网络定位服务解析协议规范目录前言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.2HTTP协议下关键词解析请求的语法12.3http协议下关键词网络资源定位应答的语法12.4http协议下关键词客户机的处理13关键词网络定位服务解析应用实施实例13.1关键词客户端13.2本地解析服务器(abc.com.cn)13.3顶级解析服务器(name.cnnic.net.cn)前言本规范规定了关键词网络定位服务的解析协议本规范起草单位:中国互联网络信息中心本规范发起单位:中国互联网络信息中心搜狐爱特信信息技术(北京)有限公司广州网易计算机系统有限公司深圳市腾讯计算机系统有限公司百度在线网络技术(北京)有限公司北京爱思美网科技发展有限公司关键词网络定位服务解析协议规范1引言关键词(Keyword)网络定位技术是继DNS域名技术之后发展起来的一种新型互联网访问技术。在该技术框架下,网络用户能够使用企业名、产品名、商标名或其它通用名称,直接访问目标网站或其它URI(统一资源定位标识)信息资源。Keyword是应用级协议,它适应了分布式网络资源对灵活性及速度的要求。它是一个一般的、无状态的、面向连接的协议,通过对其请求方法(requestmethods)进行扩展,可以被用于多种用途。该规范反映了“Keyword/1.0”基于HTTP协议的普通用法。其后续版本会支持XML规范。2范围本规范规定了关键词的结构、语法,以及关键词与网络地址(主要是IP地址)之间的映射机制,同时规定了关键词网络定位的协议模式和标准的实施要求。本规范适用于关键词的命名、开发、系统运行、系统应用,以及建立在关键词网络定位技术基础之上的相关信息处理领域。返回3规范性引用文件GB/T1988-1998信息技术信息交换用七位编码字符集(ISO/IEC646:1991)GB13000.1-1993信息技术通用多八位编码字符集(UCS)第一部分:体系结构与基本多文种平面(ISO/IEC10646.1:1993)GB4754—84国民经济行业分类和代码RFC3367CommonNameResolutionProtocol(CNRP)RFC2068HypertextTransferProtocol--HTTP/1.1RFC2616HypertextTransferProtocol--HTTP/1.1RFC1866HypertextMarkupLanguage-2.0RFC1766TagsfortheIdentificationofLanguagesISO3166CountryandRegionCodes4术语本规范用了许多关键词及HTTP通讯相关的术语,如下:关键词解析关键词解析是在域名技术基础之上提出的、方便互联网用户访问网络资源的一种方法,它实现中文词汇(如:公司名称、产品名称、商标、人名等)到网络资源的直接定向解析处理。关键词中允许的字符集包括:中文汉字、数字、字母、“-”,全角符号表示需要转为半角符号表示。连接(connection)两个应用程序以通讯为目的在传输层建立虚拟电路。消息(message)关键词通讯的基本单元,在连接中传输的结构化的、有顺序的字节(其含义在第四节中定义),可分为请求消息和回应消息。请求(request)关键词的请求消息回应(response)关键词的回应消息资源(resource)网络上可以用URI来标识的数据对象或服务客户端(client)指以发出请求为目的而建立连接的应用程序。用户代理(useragent)指初始化请求的客户端,如浏览器、编辑器、蜘蛛(web爬行机器人)或其它终端用户工具。服务器(server)指接受连接,并通过发送回应来响应服务请求的应用程序。原始服务器(originserver)存放资源或产生资源的服务器。代理(proxy)同时扮演服务器及客户端角色的中间程序,用来为其它客户产生请求。请求经过变换,被传递到最终的目的服务器,在代理程序内部,请求或被处理,或被传递。代理必须在消息转发前对消息进行解释,而且如有必要还得重写消息。代理通常被用作经过防火墙的客户端出口,用以辅助处理用户代理所没实现的请求。缓存(cache)指程序本地存储的回应消息和用来控制消息存储、重获、删除的子系统。缓存回应的目的是为减少请求回应时间,以及未来一段时间对网络带宽的消耗。任何客户端及服务端都可以包含缓存。任何指定的程序都有能力同时做为客户端和服务器。我们在使用这个概念时,不是看程序功能上是否能实现客户及服务器,而是看程序在特定连接时段上扮演何种角色(客户或服务器)。同样,任何服务器可以扮演原始服务器、代理、缓存等角色,行为的切换取决于每次请求的内容。八位位组Octet在计算机技术和通信技术中,作为一个整体处理的8个二进制数。5缩略语下列缩略语适用于本规范:Keyword关键词DNS(Domainnamesystem)域名系统IP(InternetProtocol)互联网协议URI(UniformResourceIdentifiers)统一资源定位标识HTTP(HypertextTransferProtocol)超文本传输协议6关键词网络定位服务解析协议遵循的原则1)一致性同样的关键词定位请求产生的精确应答结果必须一致,精确应答结果与解析过程中所涉及的解析器、服务器的位置及其系统设置无关。2)开放性关键词网络定位体系为其它应用软件提供开放、标准的技术平台,支持关键词的网络解析服务。3)关键词网络定位服务具有健壮性、稳定性、安全性、可靠性。7关键词网络定位体系7.1关键词解析体系结构关键词命名空间是一个平面结构的空间。其解析体系有两级构成:若干服务器构成的关键词顶级解析服务器集群、关键词本地解析服务器。用户可以从任何解析服务器获得一致的应答结果。顶级解析服务器顶级解析服务器的应答是权威的,它从关键词数据库中查询得到最新的记录。应答最终用户或者各本地解析服务器的解析请求。本地解析服务器本地解析服务器在关键词解析体系中是可选的,它根据自身的缓存策略应答最终用户的请求,并缓存顶级解析服务器的应答。设置本地解析服务器的目的是为了加速最终用户的访问速度和提高关键词的解析效率。关键词解析器解析器将用户的关键词定位请求,发到关键词解析服务器,并将解析的应答返回给浏览器等网络应用程序。关键词客户端缺省设置一个或多个关键词解析服务器。7.2关键词解析流程关键词网络定位服务解析协议是基于客户机-服务器结构的应用服务体系。下面说明在客户机、本地解析服务器、顶级解析服务器三级体系下的关键词解析过程:1)用户使用支持关键词解析服务的客户程序,输入所要的关键词名称,经过互联网传输到本地关键词解析服务器。2)本地解析服务器查询自身的缓存,如果有匹配的结果,则转4);否则,转发给顶级解析服务器。3)顶级解析服务器收到解析请求后,查询关键词数据库到应答资源记录,封装成符合HTTP协议的数据格式的数据包返回给本地解析服务器。本地解析服务器对顶级解析服务器的应答进行缓存处理。4)本地解析服务器将查询结果返回给用户程序。7.3关键词语法定义关键词::=字符|字符关键词字符::=-|汉字|数字|字母汉字::=任何一个汉字字母::=a-z|A-Z数字::=0-98关键词请求消息从客户端到服务器端的解析请求消息。如果关键词解析服务器收到请求消息,它必须返回一个应答消息。8.1消息传输请求消息通过HTTP协议来传输。8.2请求方法方法指明了将要以何种方式来定位由请求关键词指定的资源。方法是大小写敏感的。本规范中支持一种方法:Method=GET8.2.1GET方法GET方法就是以实体方式得到由请求关键词所指定资源的信息。GET方法允许被缓存的解析结果在不必经过不必要的数据传输就能进行应答,从而有助于降低网络负载。9关键词应答消息在接收、解释请求消息后,服务器端通过HTTP协议返回关键词解析的应答消息:Response=Full-ResponseFull-Response=Status-Line;9.1状态行|Response-Header;9.2应答标题域9.1.应答的状态行(Status-Line)完整回应消息的第一行就是状态行,它依次由http协议版本、数字形式的状态代码、及相应的词语文本组成,各元素间以空格(SP)分隔,除了结尾的回车换行(CRLF)外,不允许出现单独的回车(CR)或换行(LF)符。Status-Line=http-VersionSPStatus-CodeSPReason-PhraseCRLF9.1.1状态代码和原因分析(StatusCodeandReasonPhrase)状态代码(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;NoContent|301;MovedPermanently|302;MovedTemporarily|304;NotModified|400;BadRequest|401;Unauthorized|403;Forbidden|404;NotFound|500;InternalServerError|501;NotImplemented|502;BadGateway|503;ServiceUnavailable|extension-codeextension-code=3个数字Reason-Phrase=*http状态代码是可扩展的,而只有上述代码才可以被当前全部的应用所识别。http应用不要求了解全部注册的状态代码。实际上,应用程序必须理解任何一种状态代码,如果碰到不识别的情况,可根据其首位数字来判断其类型并处理。例如,如果客户端收到一个无法识别的状态码431,可以安全地假定是请求出了问题,可认为应答的状态码就是400。9.2应答标题域(Response-Header)应答标题域中包括不能放在状态行中的附加应答信息。该域在对请求URI所指定资源进行访问的下一步信息。例如,在状态码是3XX,即重定向应答时,由回应标题域的Response-Header来指定重定向到的目的URL。Response-Header=Location9.3转向应答当一个请求无法获得唯一精确的应答结果时,系统提供一个转向机制,依据请求的性质,进行多结果应答服务。10关键词对象的属性本规范中,关键词是以对象的形式存在,每个关键词对象具有各种不同的属性。关键词对象的属性分为必要属性、附加属性、用户属性三类,其中必要属性是用户请求或应答结果的组成部分。10.1必要属性必要属性是关键词系统服务必须支持的最小属性集合,它保证了关键词应用服务的各个环节之间的具有互操作性,能够正常的通讯。它包括:关键词name关键词名称。应用类型apptype关键词对应网络资源所属的应用服务类别。目前支持的类型有:web