rfc1714.Referral Whois Protocol (RWhois)
- 格式:pdf
- 大小:52.38 KB
- 文档页数:46
浅析HTTP的Referer含义理解、Referer作⽤(记录访问来源、防盗链、防⽌恶意请。
HTTP 请求的头信息⾥⾯,Referer 是⼀个常见字段,提供访问来源的信息。
很多开发者知道这个字段,但是说不清它的具体细节。
本⽂详细介绍该字段。
⼀、Referer 的含义 现实⽣活中,购买服务或加⼊会员的时候,往往要求提供信息:"你从哪⾥知道了我们?",这叫做引荐⼈(referrer),谁引荐了你?对于公司来说,这是很有⽤的信息。
互联⽹也是⼀样,你不会⽆缘⽆故访问⼀个⽹页,总是有⼈告诉你,可以去那⾥看看。
服务器也想知道,你的"引荐⼈"是谁? HTTP 协议在请求(request)的头信息⾥⾯,设计了⼀个 Referer 字段,给出"引荐⽹页"的 URL。
⽐如我从百度搜索关键字,然后跳转到我们⽹站,那么其 Referer 就是百度的搜索链接,百度链接⽐较长,带上了关键字之类的,如果是⾕歌的话,就只有⾕歌的⽹址,没有关键字那些。
这个字段是可选的。
客户端发送请求的时候,可以⾃主决定是否加上该字段。
需要注意的是,这个字段的拼写是错的。
Referer 的正确拼写是 Referrer,但是写⼊标准的时候,不知为何,没⼈发现少了⼀个字母 r。
标准定案以后,只能将错就错,所有头信息的该字段都⼀律错误拼写成 Referer。
⼆、Referer 的常见作⽤ Referer 字段实际上告诉了服务器,⽤户在访问当前资源之前的位置,这往往可以⽤来⽤户跟踪。
1、⽤户⾏为⽇志记录访问来源:这个就不多说了。
2、另⼀个典型的应⽤是:防盗链 ⽐如有些⽹站不允许图⽚外链,只有⾃家的⽹站才能显⽰图⽚,外部⽹站加载图⽚就会报错。
它的实现就是基于Referer字段,如果该字段的⽹址是⾃家⽹址,就放⾏。
如何处理:将http请求发给服务器后,如果服务器要求必须是某个地址或者某⼏个地址才能访问,⽽你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进⾏访问。
whois什么是“WHOIS”WHOIS系统组成WHOIS工作过程WHOIS的历史及其发展WHOIS的隐私保护什么是“WHOIS”简单来说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。
通过whois 来实现对域名信息的查询。
早期的WHOIS查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。
网页接口的查询工具仍然依赖WHOIS协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。
WHOIS通常使用TCP协议43埠。
每个域名/IP的WHOIS信息由对应的管理机构保存。
不同域名后缀的whois信息需要到不同的whois数据库查询。
如.com的whois数据库和.eu的就不同。
目前国内提供WHOIS查询服务的网站有万网的 , , , 等。
“WHOIS”是当前域名系统中不可或缺的一项信息服务。
在使用域名进行Internet冲浪时,很多用户希望进一步了解域名、名字服务器的详细信息,这就会用到WHOIS。
对于域名的注册服务机构(registrar)而言,要确认域名数据是否已经正确注册到域名注册中心(registry),也经常会用到WHOIS。
直观来看,WHOIS就是链接到域名数据库的搜索引擎,一般来说是属于网络信息中心(NIC)所提供和维护的名字服务之一。
WHOIS系统组成根据IETF标准要求,WHOIS服务一般由WHOIS系统来提供。
WHOIS系统是一个Client/Server系统。
其中Client端主要负责:1)提供访问WHOIS系统的用户接口;2)生成查询并将其以适当的格式传送给Server;3)接收Server传回的响应,并以用户可读的形式输出。
Server端则主要负责接收Client 端的请求并发回响应数据。
Internet上基于TCP协议的基本服务都有自己默认的TCP 端口号,象HTTP服务的默认端口号为80,FTP服务的默认控制端口号为21(数据端口为20)等。
referer校验机制Referer校验机制是一种用于保护Web应用程序的安全机制,该机制通过检查请求中的Referer头来防止恶意攻击者从其他网站发起攻击。
Referer头是HTTP请求中的一个标头,用于指示请求来源。
当用户从一个网页点击链接跳转到另一个网页时,浏览器会在请求头中添加Referer头,以便Web服务器知道请求来源。
例如,当用户从网站A跳转到网站B时,请求头中会包含Referer:。
Referer校验机制的工作原理很简单。
当Web应用程序接收到一个请求时,它会检查请求头中的Referer头。
如果Referer头与Web 应用程序的域名不匹配,应用程序会拒绝该请求,因为这可能是一个恶意攻击者试图从其他网站发起攻击。
Referer校验机制可以防止以下几种攻击:1. CSRF攻击:跨站请求伪造攻击是一种利用用户已登录的身份在不知情的情况下执行恶意操作的攻击。
攻击者通过在其他网站上放置伪造的表单或链接来欺骗用户。
当用户点击这些表单或链接时,Web浏览器会自动向目标网站发送请求,但是Referer头却指向攻击者的站点。
通过验证Referer头,Web应用程序可以检测到这种攻击并拒绝请求。
2. 点击劫持攻击:点击劫持攻击是一种通过欺骗用户在透明的iframe中单击操作,来执行恶意操作的攻击。
攻击者通过在透明的iframe中放置目标网站,并覆盖用户感兴趣的内容,诱使用户点击。
当用户单击iframe中的内容时,实际上是在执行攻击者指定的操作,而不是目标网站的操作。
通过验证Referer头,Web应用程序可以检测到这种攻击并拒绝请求。
3. 热连接攻击:热连接攻击是一种将其他网站的资源链接到目标网站的攻击。
攻击者将目标网站的资源链接复制到自己的网站上,并欺骗用户访问自己的网站。
当用户访问攻击者的网站时,实际上是在从目标网站上下载资源。
通过验证Referer头,Web应用程序可以检测到这种攻击并拒绝请求。
rfc协议RFC (Request for Comments)协议是互联网工程任务组(IETF)发布的一系列文件,它描述了互联网的各种协议、技术和标准。
RFC文档由IETF的成员和其他网络专业人士撰写,并经过同行审查后发布。
本文将对RFC协议进行简要介绍。
RFC协议的历史可以追溯到1969年,当时互联网的前身ARPANET刚刚建立,人们需要一个组织用于记录和交流互联网的相关协议。
随着时间的推移,RFC协议逐渐成为互联网标准发展的重要组成部分。
RFC协议的目的是促进全球范围内的技术合作和共享。
它提供了一种开放的、民主的方法,使任何人都可以参与到互联网协议的发展过程中来。
RFC协议的草案可以由任何人提交。
一旦提交,草案将经过同行审查,并由IETF进行讨论和投票,最终形成正式的RFC文档。
RFC协议的内容非常丰富,涵盖了从网络协议到应用程序的各个方面。
其中一些最著名的RFC文档包括TCP/IP协议族、HTTP协议、SMTP协议等。
RFC文档的编写方式相对自由,作者可以使用他们认为合适的格式和语言进行描述。
但是,RFC文档必须包含一些必要的内容,如标题、摘要、问题陈述、解决方案、安全考虑等。
这些要求确保了RFC文档的一致性和可读性。
RFC协议的发布对互联网的发展起到了重要的推动作用。
它促进了网络标准的制定和统一,使得不同厂商的设备能够互相通信,从而实现了互联网的互联互通。
同时,RFC协议的开放性也鼓励了创新和技术发展,使互联网能够不断适应新的需求和挑战。
总之,RFC协议是互联网发展的重要支撑和推动力量。
它通过开放、民主的方式推动着互联网的各个方面的发展,使得互联网成为了一个全球范围内的共享资源。
在未来的发展中,RFC协议将继续发挥其作用,推动互联网技术的创新和进步。
什么是whois? (whois的概念及应用)简单来说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。
通过whois来实现对域名信息的查询。
如果你想对这个问题做进一步了解,下面是中国互联网络信息中心(CNNIC)网站上的一篇关于WHOIS 的详细介绍,其中包括WHOIS概念、发展历程以及CNNIC WHOIS系统及其应用。
WHOIS概览(作者中国互联网络信息中心(CNNIC)技术部王朗)一. WHOIS的概念1.1什么是“WHOIS”“WHOIS”是当前域名系统中不可或缺的一项信息服务。
在使用域名进行Internet冲浪时,很多用户希望进一步了解域名、名字服务器的详细信息,这就会用到WHOIS。
对于域名的注册服务机构(registrar)而言,要确认域名数据是否已经正确注册到域名注册中心(registry),也经常会用到WHOIS。
直观来看,WHOIS就是链接到域名数据库的搜索引擎,一般来说是属于网络信息中心(NIC)所提供和维护的名字服务之一。
1.2 WHOIS系统组成根据IETF标准要求,WHOIS服务一般由WHOIS系统来提供。
WHOIS系统是一个Client/Server系统。
其中Client端主要负责:1)提供访问WHOIS系统的用户接口;2)生成查询并将其以适当的格式传送给Server;3)接收Server传回的响应,并以用户可读的形式输出。
Server端则主要负责接收Client端的请求并发回响应数据。
Internet上基于TCP协议的基本服务都有自己默认的TCP端口号,象HTTP服务的默认端口号为80,FTP服务的默认端口号为21等。
同样作为Internet上核心服务之一的WHOIS服务,其Server端默认监听43号TCP端口,接收查询请求并产生响应。
一般来说,Server端可以接收三种类型的信息查询:联系人、主机和域名。
Network Working Group M. St. Johns Request for Comments: 1413 US Department of Defense Obsoletes: 931 February 1993 Identification ProtocolStatus of this MemoThis RFC specifies an IAB standards track protocol for the Internetcommunity, and requests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official ProtocolStandards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.1. INTRODUCTIONThe Identification Protocol (a.k.a., "ident", a.k.a., "the IdentProtocol") provides a means to determine the identity of a user of a particular TCP connection. Given a TCP port number pair, it returns a character string which identifies the owner of that connection onthe server’s system.The Identification Protocol was formerly called the AuthenticationServer Protocol. It has been renamed to better reflect its function. This document is a product of the TCP Client Identity ProtocolWorking Group of the Internet Engineering Task Force (IETF).2. OVERVIEWThis is a connection based application on TCP. A server listens for TCP connections on TCP port 113 (decimal). Once a connection isestablished, the server reads a line of data which specifies theconnection of interest. If it exists, the system dependent useridentifier of the connection of interest is sent as the reply. Theserver may then either shut the connection down or it may continue to read/respond to multiple queries.The server should close the connection down after a configurableamount of time with no queries - a 60-180 second idle timeout isrecommended. The client may close the connection down at any time;however to allow for network delays the client should wait at least30 seconds (or longer) after a query before abandoning the query and closing the connection.St. Johns [Page 1]Queries are permitted only for fully specified connections. Thequery contains the local/foreign port pair -- the local/foreignaddress pair used to fully specify the connection is taken from thelocal and foreign address of query connection. This means a user on address A may only query the server on address B about connectionsbetween A and B.4. QUERY/RESPONSE FORMATThe server accepts simple text query requests of the form:<port-on-server> , <port-on-client>where <port-on-server> is the TCP port (decimal) on the target (where the "ident" server is running) system, and <port-on-client> is theTCP port (decimal) on the source (client) system.N.B - If a client on host A wants to ask a server on host B about aconnection specified locally (on the client’s machine) as 23, 6191(an inbound TELNET connection), the client must actually ask about6191, 23 - which is how the connection would be specified on host B. For example:6191, 23The response is of the form<port-on-server> , <port-on-client> : <resp-type> : <add-info>where <port-on-server>,<port-on-client> are the same pair as thequery, <resp-type> is a keyword identifying the type of response, and <add-info> is context dependent.The information returned is that associated with the fully specified TCP connection identified by <server-address>, <client-address>,<port-on-server>, <port-on-client>, where <server-address> and<client-address> are the local and foreign IP addresses of thequerying connection -- i.e., the TCP connection to the Identification Protocol Server. (<port-on-server> and <port-on-client> are takenfrom the query.)For example:6193, 23 : USERID : UNIX : stjohns6195, 23 : ERROR : NO-USERSt. Johns [Page 2]A response can be one of two types:USERIDIn this case, <add-info> is a string consisting of anoperating system name (with an optional character setidentifier), followed by ":", followed by anidentification string.The character set (if present) is separated from theoperating system name by ",". The character setidentifier is used to indicate the character set of theidentification string. The character set identifier,if omitted, defaults to "US-ASCII" (see below).Permitted operating system names and character setnames are specified in RFC 1340, "Assigned Numbers" orits successors.In addition to those operating system and character setnames specified in "Assigned Numbers" there is onespecial case operating system identifier - "OTHER".Unless "OTHER" is specified as the operating systemtype, the server is expected to return the "normal"user identification of the owner of this connection."Normal" in this context may be taken to mean a stringof characters which uniquely identifies the connectionowner such as a user identifier assigned by the systemadministrator and used by such user as a mailidentifier, or as the "user" part of a user/passwordpair used to gain access to system resources. When anoperating system is specified (e.g., anything but"OTHER"), the user identifier is expected to be in amore or less immediately useful form - e.g., somethingthat could be used as an argument to "finger" or as amail address."OTHER" indicates the identifier is an unformattedcharacter string consisting of printable characters inthe specified character set. "OTHER" should bespecified if the user identifier does not meet theconstraints of the previous paragraph. Sending anencrypted audit token, or returning other non-useridinformation about a user (such as the real name andphone number of a user from a UNIX passwd file) areSt. Johns [Page 3]both examples of when "OTHER" should be used.Returned user identifiers are expected to be printablein the character set indicated.The identifier is an unformatted octet string - - alloctets are permissible EXCEPT octal 000 (NUL), 012 (LF)and 015 (CR). N.B. - space characters (040) following thecolon separator ARE part of the identifier string andmay not be ignored. A response string is stillterminated normally by a CR/LF. N.B. A string may beprintable, but is not *necessarily* printable.ERRORFor some reason the port owner could not be determined, <add-info>tells why. The following are the permitted values of <add-info> and their meanings:INVALID-PORTEither the local or foreign port was improperlyspecified. This should be returned if either orboth of the port ids were out of range (TCP portnumbers are from 1-65535), negative integers, reals orin any fashion not recognized as a non-negativeinteger.NO-USERThe connection specified by the port pair is notcurrently in use or currently not owned by anidentifiable entity.HIDDEN-USERThe server was able to identify the user of thisport, but the information was not returned at therequest of the user.UNKNOWN-ERRORCan’t determine connection owner; reason unknown.Any error not covered above should return thiserror code value. Optionally, this code MAY bereturned in lieu of any other specific error codeif, for example, the server desires to hideinformation implied by the return of that errorSt. Johns [Page 4]code, or for any other reason. If a serverimplements such a feature, it MUST be configurableand it MUST default to returning the proper errormessage.Other values may eventually be specified and defined in futurerevisions to this document. If an implementer has a need to specify a non-standard error code, that code must begin with "X".In addition, the server is allowed to drop the query connectionwithout responding. Any premature close (i.e., one where the client does not receive the EOL, whether graceful or an abort should beconsidered to have the same meaning as "ERROR : UNKNOWN-ERROR". FORMAL SYNTAX<request> ::= <port-pair> <EOL><port-pair> ::= <integer> "," <integer><reply> ::= <reply-text> <EOL><EOL> ::= "015 012" ; CR-LF End of Line Indicator<reply-text> ::= <error-reply> | <ident-reply><error-reply> ::= <port-pair> ":" "ERROR" ":" <error-type><ident-reply> ::= <port-pair> ":" "USERID" ":" <opsys-field>":" <user-id><error-type> ::= "INVALID-PORT" | "NO-USER" | "UNKNOWN-ERROR"| "HIDDEN-USER" | <error-token><opsys-field> ::= <opsys> [ "," <charset>]<opsys> ::= "OTHER" | "UNIX" | <token> ...etc.; (See "Assigned Numbers")<charset> ::= "US-ASCII" | ...etc.; (See "Assigned Numbers")<user-id> ::= <octet-string><token> ::= 1*64<token-characters> ; 1-64 characters<error-token> ::= "X"1*63<token-characters>; 2-64 chars beginning w/XSt. Johns [Page 5]<integer> ::= 1*5<digit> ; 1-5 digits.<digit> ::= "0" | "1" ... "8" | "9" ; 0-9<token-characters> ::=<Any of these ASCII characters: a-z, A-Z,- (dash), .!@#$%^&*()_=+.,<>/?"’˜‘{}[]; >; upper and lowercase a-z plus; printables minus the colon ":"; character.<octet-string> ::= 1*512<octet-characters><octet-characters> ::=<any octet from 00 to 377 (octal) except forASCII NUL (000), CR (015) and LF (012)>Notes on Syntax:1) To promote interoperability among variantimplementations, with respect to white space the abovesyntax is understood to embody the "be conservative inwhat you send and be liberal in what you accept"philosophy. Clients and servers should not generateunnecessary white space (space and tab characters) butshould accept white space anywhere except within atoken. In parsing responses, white space may occuranywhere, except within a token. Specifically, anyamount of white space is permitted at the beginning orend of a line both for queries and responses. Thisdoes not apply for responses that contain a user IDbecause everything after the colon after the operatingsystem type until the terminating CR/LF is taken aspart of the user ID. The terminating CR/LF is NOTconsidered part of the user ID.2) The above notwithstanding, servers should restrict theamount of inter-token white space they send to thesmallest amount reasonable or useful. Clients shouldfeel free to abort a connection if they receive 1000characters without receiving an <EOL>.3) The 512 character limit on user IDs and the 64character limit on tokens should be understood to meanas follows: a) No new token (i.e., OPSYS or ERROR-TYPE)token will be defined that has a length greater than 64and b) a server SHOULD NOT send more than 512 octets ofuser ID and a client MUST accept at least 512 octets ofSt. Johns [Page 6]user ID. Because of this limitation, a server MUSTreturn the most significant portion of the user ID inthe first 512 octets.4) The character sets and character set identifiers shouldmap directly to those defined in or referenced by RFC 1340,"Assigned Numbers" or its successors. Character setidentifiers only apply to the user identification field- all other fields will be defined in and must be sentas US-ASCII.5) Although <user-id> is defined as an <octet-string>above, it must follow the format and character setconstraints implied by the <opsys-field>; see thediscussion above.6) The character set provides context for the client toprint or store the returned user identification string.If the client does not recognize or implement thereturned character set, it should handle the returnedidentification string as OCTET, but should in additionstore or report the character set. An OCTET stringshould be printed, stored or handled in hex notation(0-9a-f) in addition to any other representation theclient implements - this provides a standardrepresentation among differing implementations.6. Security ConsiderationsThe information returned by this protocol is at most as trustworthyas the host providing it OR the organization operating the host. For example, a PC in an open lab has few if any controls on it to prevent a user from having this protocol return any identifier the userwants. Likewise, if the host has been compromised the informationreturned may be completely erroneous and misleading.The Identification Protocol is not intended as an authorization oraccess control protocol. At best, it provides some additionalauditing information with respect to TCP connections. At worst, itcan provide misleading, incorrect, or maliciously incorrectinformation.The use of the information returned by this protocol for other thanauditing is strongly discouraged. Specifically, using Identification Protocol information to make access control decisions - either as the primary method (i.e., no other checks) or as an adjunct to othermethods may result in a weakening of normal host security.St. Johns [Page 7]An Identification server may reveal information about users,entities, objects or processes which might normally be consideredprivate. An Identification server provides service which is a rough analog of the CallerID services provided by some phone companies and many of the same privacy considerations and arguments that apply tothe CallerID service apply to Identification. If you wouldn’t run a "finger" server due to privacy considerations you may not want to run this protocol.7. ACKNOWLEDGEMENTSAcknowledgement is given to Dan Bernstein who is primarilyresponsible for renewing interest in this protocol and for pointingout some annoying errors in RFC 931.References[1] St. Johns, M., "Authentication Server", RFC 931, TPSC, January1985.[2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340, USC/Information Sciences Institute, July 1992.Author’s AddressMichael C. St. JohnsDARPA/CSTO3701 N. Fairfax DrArlington, VA 22203Phone: (703) 696-2271EMail: stjohns@St. Johns [Page 8]。
网络侦察技术分析(一)[本文原创,禁止任何形式的转载]一名严谨的黑客在入侵之前会先进行网络侦察及分析,以判断可行性及应采取的入侵方法。
我们今天就讲一下一名黑客是如何进行网络侦察的。
首先,我们介绍一下安全管理的规范。
一名好的网络安全人员,应该从两个不同的角度来分析网络进行安全评估:1、从黑客角度进行思考,寻找现有的网络漏洞,对网络资源加以保护;2、从安全管理者的角度进行思考,寻找最佳途径既可保障安全又不影响商业运作效率。
从安全管理者角度考虑,安全管理者知道网络是如何配置的,更多从防火墙内部发起探测,关注内部网络的服务器和主机是否有异常情况,但黑客是不知道目标网络的配置情况,他们是从防火墙外部进行攻击/渗透的,所以一名合格的安全管理者还要从防火墙外部进行渗透看是否能穿透防火墙而控制网络主机。
如图:从安全顾问角度考虑,首先要从不知情者的角度加以定位,然后以内部知情人的角度来评估网络安全如图:下面我们看一下不同基点的安全管理结构:首先我们介绍一下基于网络的安全管理结构。
如图:由图可知,基于网络的管理产品将软件安装在一台服务器上,由它来向网络提出查询,提出查询的要求,其中主机往往是管理者,扫描网络上所有可疑的活动。
在这种结构下每台计算机被动的响应查询,优点是主机并不知道被监视,缺点是监视端口会对交换机的性能产生影响我们再介绍一下基于主机级的安全管理结构。
如图:由图可知,这是一种分层管理体系,一层是图形界面,二层是管理者,通过代理发出查询请求,从代理收集信息进行显示,三层是安装在每台主机上的代理。
可安装SNMP辅助管理。
安全审计的三个阶段:对于安全管理的几个概念我们介绍完了,我们看一下网络攻击的动机。
随着木马/病毒及黑客技术的商业化,网络攻击行为越来越多的是为了名利目的。
现在所存在的主要动机为:偷取国家机密、商业竞争行为、内部员工对单位的不满、对企业核心机密的企望、网络接入帐号/信用卡号等金钱利益的诱惑、利用攻击网络站点而出名、对网络安全技术的挑战、对网络的好奇心。
rfc相关设置及使用RFC(Request for Comments)是一种用于定义互联网协议、标准和相关问题的文档。
RFC的格式由互联网工程任务组(IETF)统一规定,它们记录了网络技术的发展和演进过程。
在本文中,我们将介绍RFC相关的设置和使用。
1. 了解RFC的作用和历史:RFC是由IETF组织制定的一种标准化文档,它记录了互联网协议的设计、开发和演化过程。
RFC起源于20世纪60年代的ARPANET,是一种社区驱动的文档,通过共享和讨论来推动互联网技术的发展。
RFC文档旨在提供指南、建议和最佳实践,帮助网络技术人员解决问题。
2. 寻找和阅读RFC文档:RFC文档可以在互联网上免费获取,IETF的官方网站和其他资源库都有存档。
这些文档按照顺序编号,并且以RFC开头,比如RFC 791定义了IPv4协议。
通过搜索引擎或在IETF网站上使用关键词搜索,可以找到特定主题的RFC文档。
阅读RFC文档时,应该注意文档的状态,有一些可能已经被更新或废弃。
3. 使用RFC文档:RFC文档在网络技术的发展过程中起着重要的指导作用。
它们提供了协议规范、算法实现、安全性和隐私等方面的建议。
网络管理员、网络工程师和开发人员可以使用RFC文档来了解和理解特定协议或标准的设计原理和要求。
此外,RFC文档还常用于进行互联网协议的实现、编程和配置。
4. 参与RFC的制定过程:RFC并不是静止的文件,而是一个持续演进的过程。
任何人都可以参与到RFC的制定过程中。
要参与RFC的制定,可以加入IETF并参与相关的工作组或邮件列表。
通过这种方式,个人可以提出改进建议,参与讨论和标准化的制定。
5. 遵循RFC的指导原则:在网络技术领域,遵循RFC的指导原则是至关重要的。
这些指导原则包括设计原则、协议分层、安全性和互操作性等要求。
遵循RFC的指导原则可以确保网络协议的正确性、稳定性和可靠性,同时也可以促进网络技术的发展和创新。
总结起来,RFC在互联网技术领域起着重要的作用,它们记录了互联网协议的发展历程和指导原则。
rfc 3174标准RFC 3174标准介绍RFC(Request for Comments)3174是一项用于计算机网络中数据完整性校验的标准。
该标准定义了一种安全散列算法,即SHA-1(Secure Hash Algorithm 1)算法,用于验证数据在传输过程中是否被篡改。
SHA-1算法是美国国家安全局(NSA)设计的一种加密散列函数。
它将任意大小的数据块映射为一个固定长度的哈希值,通常为160位。
哈希值是一个数字指纹,用于唯一标识原始数据。
SHA-1算法使用了一系列复杂的位操作和逻辑函数来执行数据转换,以确保数据和哈希值之间的关联性。
RFC 3174标准的主要目的是提供一种机制来验证数据的完整性,以解决数据篡改的问题。
在现代互联网中,数据传输时存在被黑客篡改的风险。
如果数据在传输过程中被篡改,接收方将无法确定数据是否真实,从而产生安全隐患。
通过使用SHA-1算法,发送方可以将数据进行哈希运算并生成哈希值,然后将哈希值附加到数据中一起传输。
接收方可以使用相同的算法对接收到的数据进行计算,并将计算出的哈希值与附加的哈希值进行比较。
如果两个哈希值匹配,即可确认数据的完整性,并且可以安全地使用接收到的数据。
SHA-1算法具有以下特点,使其成为数据完整性校验的理想选择:1. 不可逆性:SHA-1算法将数据转换为固定长度的哈希值,不同的数据将生成不同的哈希值。
但是,无法通过哈希值推导出原始数据,使得黑客无法从哈希值中了解任何有关原始数据的信息。
2. 高度敏感性:SHA-1算法对数据的任何改动都会导致不同的哈希值。
即使是对原始数据进行微小的修改,也会显著改变哈希值,从而保证了数据完整性的检测。
3. 速度较快:SHA-1算法的计算速度较快,适用于大规模数据的处理。
这样可以确保数据的完整性校验不会成为传输过程中的瓶颈。
尽管SHA-1算法在数据完整性校验方面表现出色,但是随着计算能力的增强和密码破解技术的不断发展,SHA-1算法已经不再被认为是安全的加密散列函数。
科技部科技基础性工作专项资金重大项目研究成果项目名称:我国数字图书馆标准规范建设子项目名称:数字资源检索与应用标准规范研究项目编号:2002DEA20018研究成果类型:研究报告成果名称:LDAP协议应用指南成果编号:CDLS-S07-002成果版本:总项目组推荐稿成果提交日期:2003年2月撰写人:张智雄(中国科学院文献情报中心)项目版权声明本报告研究工作属于科技部科技基础性工作专项资金重大项目《我国数字图书馆标准规范建设》的一部分,得到科技部科技基础性工作专项资金资助,项目编号为2002DEA20018。
按照有关规定,国家和《我国数字图书馆标准规范建设》课题组拥有本报告的版权,依照《中华人民共和国著作权法》享有著作权。
本报告可以复制、转载、或在电子信息系统上做镜像,但在复制、转载或镜像时须注明真实作者和完整出处,并在明显地方标明“科技部科技基础性工作专项资金重大项目《我国数字图书馆标准规范建设》资助”的字样。
报告版权人不承担用户在使用本作品内容时可能造成的任何实际或预计的损失。
作者声明本报告作者谨保证本作品中出现的文字、图片、声音、剪辑和文后参考文献等内容的真实性和可靠性,愿按照《中华人民共和国著作权法》,承担本作品发布过程中的责任和义务。
科技部有关管理机构对于本作品内容所引发的版权、署名权的异议、纠纷不承担任何责任。
《我国数字图书馆标准规范建设》课题组网站()作为本报告的第一发表单位,并可向其他媒体推荐此作品。
在不发生重复授权的前提下,报告撰写人保留将经过修改的项目成果向正式学术媒体直接投稿的权利。
LDAP协议应用指南目 录1. 协议概述 (1)2. LDAP的特点和应用领域 (1)3. LDAP目录的优势 (2)1.协议概述LDAP(Lightweight Directory Access Protocol,轻量级目录存取协议)是目前广泛应用的目录协议。
在计算机中,目录被认为是一种特殊的数据库,也有人将其称为数据仓库(Data Repository),它被用于存储一定类型的经过整序的信息。
Network Working Group S. Williamson Request for Comments: 1714 M. Kosters Category: Informational Network Solutions Inc. InterNIC November 1994 Referral Whois Protocol (RWhois)Status of this MemoThis memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution ofthis memo is unlimited.AbstractThis memo describes version 1.0 of the client/server interaction ofRWhois. RWhois provides a distributed system for the display ofhierarchical information. This system is hierarchical by design,allowing for the reduction of a query, and the referral of the usercloser to the maintainer of the information.Table of Contents1. Introduction (3)2. RWhois Client Model (5)2.1 Directives: Client to Server Interaction (6)2.2 Required Directives (6)2.2.1 <query> (6)2.2.2 RWhois (7)2.3 Optional Directives (7)2.3.1 load (7)2.3.2 limit (7)2.3.3 schema (8)2.3.4 xfer (8)2.3.5 quit (9)2.3.6 status (9)2.3.7 cache (9)2.3.8 holdconnect (10)2.3.9 forward (10)2.3.10 soa (11)2.3.11 notify (11)2.3.12 register (13)2.3.13 object (14)2.3.14 define (15)2.3.15 private (15)2.3.16 X- (16)Williamson & Kosters [Page 1]2.3.18 display (17)2.3.19 language (18)2.4 RWhois Client Model (18)3. RWhois Server Model (20)3.1 Output Display and Restriction Keywords (20)3.2 Responses: Server to Client Interaction (21)3.3 Required Responses (22)3.3.1 RWhois (22)3.3.2 referral (22)3.3.3 ok (24)3.3.4 error (24)3.4 Optional Responses (25)3.4.1 see-also (25)3.4.2 load (26)3.4.3 soa (26)3.4.4 status (28)3.4.5 xfer (29)3.4.6 schema (30)3.4.7 define (32)3.4.8 object (32)3.4.9 directive (33)3.4.10 info (34)3.4.11 display (34)3.4.12 X- (35)3.4.13 language (35)3.5 Query Reduction (36)3.6 Determining Authority (36)3.7 Secondary Server Interaction (37)3.8 Registration Process (38)3.9 Out-of-Service (38)4. Interaction: Client Directives and AcceptableServer Responses (39)4.1 General (39)4.2 On Connection (39)4.3 <QUERY> (39)4.4 -RWhois (40)4.5 -load (40)4.6 -limit<SP>< value > (40)4.7 -schema<SP>[object] (40)4.8 -xfer<SP>[object] (40)4.9 -quit (40)4.10 -cache<SP><on/off> (40)4.11 -status (40)4.12 -forward (40)4.13 -soa (40)4.14 -notify (41)4.15 -register (41)Williamson & Kosters [Page 2]4.17 -object (41)4.18 -define (41)4.19 -X- (41)4.20 -display (41)4.21 -language (41)5. Error Codes (42)5.1 Error Code List (42)6. Attribute Format (43)6.1 Format Specification Macros (44)7. Quick Query (RWhois using UDP) (45)8. References (46)9. Security Considerations (46)10. Authors’ Addresses (46)1. IntroductionEarly in ARPANET development, the SRI-NIC established a centralizedwhois database that provided host and network information about thesystems connected to the network and the E-mail addresses of theusers on those systems. The ARPANET experiment has evolved into aglobal network with countless people and hundreds of thousands of end systems. Given the sheer size and effort needed to maintain acentralized database, an alternate, decentralized approach to storeand display this information is desired.The Internet portions of the DDN NIC have been transitioned to whatis now known as InterNIC Registration Services (RS). The charter for InterNIC RS has been reduced to maintain information only for IPnetworks, top-level domains, Autonomous System Numbers, and thepoints of contact for each of these particular entities. Inaddition, the InterNIC, in its role as an Internet Registry (IR), has delegated IP block assignment authority to Regional Registries suchas the RIPE NCC for Europe and the APNIC for the Asian Pacificregion, while retaining authority for North America and all non-delegated regions. This has led to a fragmentation of whois service to the Internet user.Several different solutions have been proposed and developed by thevarious regional IR’s. Two solutions have been worked onextensively: the Shared Whois Project (SWIP) and X.500.The SWIP project has a common exchange format that can be parsed bythe various IR’s for input and output. Thus, one can synchronizetheir databases with information obtained from the other IR’s. This project is showing promise and is now operational. However, thisapproach still requires a centralized database for store and display. Williamson & Kosters [Page 3]The InterNIC has also been involved in the use of X.500 for displayof registration information. Among other things, this includeddefining schemas and Directory information tree structures for thepurpose of distributing information amongst the various IR X.500Directory Service Agents (DSA). Unfortunately, X.500’s complexity,resource utilization, and lack of Internet support has made a search for an alternative solution necessary.The information that the various IR’s maintain is inherentlyhierarchical in nature. (Examples: is under the domain which is under the domain which is underthe .mil domain. 198.41.0.21 is part of network 198.41.0.0/24 whichis part of the block 198.41.0.0/16 which is part of the block198.0.0.0/8) The InterNIC may not have the information, but will at least be able to reduce the query and point or refer the users closer to their goal. This has led to the development of a referral whois, and the corresponding RWhois protocol.The underlying premise for this project has been to retain the basic functionality of the whois server and client, making all of theextensions optional. The server must respond to the original whoisclient, currently included with many operating systems. The RWhoisclient must also interact with RFC 954 [RFC-954] whois servers.RWhois has been designed as an extensible protocol to ensure thatmany uses can be accommodated. Public extensions to the protocolshould be documented as RFCs. Private extensions can be used withagreement left up to the client and server.If extensions are not implemented at the server in question, anappropriate error message must be sent. The use of extended errormessage is outlined in Section 5 - Error Codes.Throughout this document the following notations will be used todescribe the RWhois server/client interaction:<SP> space[arg] optional argument<arg> required argument(<arg>) conditional required argument([arg]) conditional optional argument{format} format of item\ continued on next lineThe words should and must are significant in this document. Ifshould is used, the implementor has the option to follow the adviceof this document. If must is used then it is a required part of the protocol. Implementations without this functionality may not Williamson & Kosters [Page 4]interact correctly with other RWhois servers.The format descriptions throughout this document use macrodefinitions described in Section 6.1. Refer to that section forclarification.The RWhois protocol specified in this document can be extended toaccommodate such applications as NetHelp and ZoneGen (DNS zonegenerator).2. RWhois Client ModelThe RWhois design requires compatibility with the current Whois andWhois++ servers. Therefore, the RWhois client must wait or haveknowledge of server type to determine if the server contacted is anRWhois server. The user should have control over the time the client waits, since this will vary based on network congestion and capacity. If after the wait the server does not respond with the %RWhoisresponse, the client must not send any RWhois extended directives.In this case, the client should only send the query. We realize that the server identification feature may mean that the identity of anRWhois server may be missed. However, it will allow the RWhoissystem to utilize the current Whois and Whois++ infrastructure.Referrals from RWhois can be directed toward a Whois or Whois++server. These non-RWhois servers must be placed as a leaf on thehierarchical tree. These servers represent a mesh structure from the RWhois perspective. This restriction should not discourage the useof these servers in building the RWhois structure.The RWhois server must remain connected until a query is received.If the client wishes to make multiple queries it must send the-holdconnect directive. In this mode, once the client has sent thelast query and received either an answer or the error code indicating that no records were found, it must issue the -quit directive. Ifthe client only wishes to issue directives, then upon completion the -quit directive must be sent. If it is not sent, the server willwait until it receives non-directive input from the client.Considering the requirement for compatibility with the originalwhois, the RWhois client in default mode must operate exactly likethe current Whois client. However, in the enhanced mode, the RWhois client can do much more based on information received from the RWhois server.Williamson & Kosters [Page 5]2.1 Directives: Client to Server InteractionThe RWhois client sends directives to the RWhois server. Thesedirectives are prefaced with the ‘-’ character always at the start of a new line. However, for compatibility with older Whois clients, the query is not prefaced with the ‘-’ character. Only after the clientis certain that the server is an RWhois server should thesedirectives be sent. Compatibility with RFC 954 [RFC-954] whoisservers is required. All directives must be terminated by <LF><CR>.2.2 Required DirectivesThe following are required RWhois client directives.2.2.1 <query>The query is generally the final directive sent to the server. It is the only directive that does not start with a ‘-’. The query is the question that the client wants the server to answer. The qualifiers that may proceed the query are addressed in Section 3.1 - OutputDisplay and Restriction Keywords.Format for use:[display format]<SP>[query restriction]<SP><query>[Display format]{%s} This optional pre-query directive allowsthe requester to select the format ofthe returned data. Details of theallowable values can be found in Section3.1.[Query restriction]{%s} This optional pre-query directive allowsthe requester to limit the area in whichthe servers search for a specificobject.Example of use:dump domain Williamson & Kosters [Page 6]2.2.2 RWhoisThe -RWhois directive identifies the client as an RWhois clientallowing the server to operate using the RWhois protocol exclusively. Format for use:-RWhois<SP>V-<spec version #><SP>[imp identifier]<Spec version #>{%2d.%2d} This required argument identifiesthe specification version that theclient is built to conform with.Clients that are built inaccordance with this document areV-1.0. This argument will be usedby the server to determine iffeatures introduced in subsequentreleases of the protocol documentmay be used.[Imp identifier]{%s} This optional argument identifies clientimplementation information. It isrecommended that the implementor maintain aversion number separate from thespecification version.Example of use:-RWhois V-1.0 [InterNIC B.0.9.7]2.3 Optional DirectivesThe following are OPTIONAL RWhois server directives.2.3.1 loadThe -load directive allows the client to make a quick decision about presenting the query to the current server. If the client determines that another server can better serve the query, then control may betransferred to the server with the lower load and better connection. This directive has no arguments.2.3.2 limitThe -limit directive will allow the client to request the serverallocate enough space to collect more responses than would currently be collected by the server.Williamson & Kosters [Page 7]Format for use:-limit<SP><value><Value>{%d} This required argument is the new limit requested bythe client. If the limit exceeds the limit set bythe server administrator, the client must receive anerror message. It is recommended that if the clientreceives an error for exceeding the servers upperlimit, it should cut the request in half and resendthe request until an acceptable level has beennegotiated.Example of use:-limit 20002.3.3 schemaOne of the shortcomings of X.500 was the requirement to know theschema of an object before making a query. RWhois allows the client to request the schema for an object without knowledge of the objectby using the -schema directive.Format for use:-schema<SP>[object][object]{%s} This optional argument identifies the objects forwhich the schema is being requested. If thisargument is not sent, the schemas for all objectscontained in the server will be sent.Example of use:-schema domain2.3.4 xferThe -xfer directive is used to transfer all data from a server. This method of transfer has no limit on the number of records that can be transferred to the client application. This directive is primarilyused to transfer data contained in an authority area for caching at a secondary server.Format for use:-xfer<SP>[object]<SP>[authority area]<SP>[SOA]Williamson & Kosters [Page 8][Object]{All|%s} This required argument identifies theobject to transfer. If the keyword allis sent, all objects contained in theserver will be transferred. Otherwise,only the object specified will be sent.[Authority area]{%s} This optional argument contains theauthority area of the object to sendfurther limiting the data transfer.[SOA]{%d} This optional argument notifies the serverto send everything that has been updatedsince this SOA number.Example of use:-xfer domain -xfer domain 199408181412592.3.5 quitThe -quit directive will inform the server that the client isfinished. The server and client should close the connection. Thisdirective has no arguments.2.3.6 statusThe -status directive is used to poll the server for its status.There are seven required responses to this directive. Additionalattributes may be sent in the response. The client should ignore all unknown attributes. This directive has no arguments.2.3.7 cacheThe RWhois server can hold data that it has no authority over. Ifthe server sends this data to a requester, it is considered a non-authoritative response. The holding of this data is called caching. The physical data for these objects is not contained on the systemhosting the server. The -cache directive allows the client toinstruct the server whether or not to send cached data. The RWhoisclient should start with the cache turned off. The server must start with the cache turned on in order to function like the RFC 954 [RFC- 954] whois server. Because of the server’s default, the clientshould send the -cache off directive during initial session setup if cached data should not be sent. Details on expiration of cache data can be found in section 3.4.3, %soa response.Williamson & Kosters [Page 9]Format for use:-cache<SP><mode><mode>{on|off}on: Turns caching on.off: Turns caching off.Example of use:-cache on2.3.8 holdconnectThe RWhois server must close the connection after the response to aquery has been received. The query is the final exchange between the client and server. However, this characteristic can be modified with the -holdconnect directive. If this directive is issued to theRWhois sever, it will remain connected until the -quit directive isreceived. Once the -quit directive is received, both the server and the client must close their connection.Format for use:-holdconnect<SP><mode><mode>{on|off}On: Turns holdconnect on.Off: Turns holdconnect off.Example of use:-holdconnect on2.3.9 forwardDuring normal sever operation the server will send %referral orsee-also responses to the client, expecting the client to redirectthe query to the server identified in the response. If the client is located behind a firewall or is poorly connected, having a servermake the query may improve query performance or allow a query to besatisfied. The -forward directive will instruct the server tooperate as a forwarding server. Whether or not this directive should be allowed should be a configuration parameter of the server. Williamson & Kosters [Page 10]Format for use:-forward<SP><mode><mode>{on|off}On: Turns forwarding on.Off: Turns forwarding off.Example of use:-forward on2.3.10 soaThe identification of authority area is an important part of theRWhois design. The -soa directive is used to question the server’sauthority for a specific area. A positive response will include the administrative parameters for the authority area as detailed insection 3.4.3. If the server does not contain an SOA for theauthority area requested, it must send an error message to theclient.Format for use:-soa<SP>[authority area][Authority area]{%s} This optional argument identifies theauthority area being requested. If thisargument is not sent, information aboutall authority areas contained in theserver must be sent.Example of use:-soa 2.3.11 notifyThe -notify directive is used to notify a server of a bad orrecursive referral or a change in a primary server’s data.Format for use:-notify<SP><action><SP><information><action>{badref|recurref|update|inssec|delsec}Williamson & Kosters [Page 11]badref When a client receives a %referral response that doesnot work, it must report the bad referral to the serverthat issued the referral. The referral is bad only ifthe referred server does not contain the SOA record forthe authority area in question. It is not considered abad referral if the server does not have an answer tothe query, but responds positively to the -soa areadirective. This merely means that there is not ananswer to the query. When a -badref is sent to thereferring server; it should log the bad referral so theadministrator of that server can remove the referenceif it is no longer correct. This action should only betaken after receiving a negative response to the queryand the SOA request.recurref When a client receives a referral that results in arecursive action, the referring server must beinformed. The -recurref directive must be sentidentifying the recursive loop. This directive shouldonly be sent to the server one level back, even ifmultiple server were involved in the referral.update An RWhois primary server must be aware of itssecondary servers. If the data in the primary serverchanges, the primary server may choose to notify thesecondary servers. This allows the secondary serversto quickly reflect changes in the primary server’s data.inssec This action will inform the authority server that theserver indicated in the argument will be a secondaryfor its authority area. The server receiving thisdirective must determine if the secondary isacceptable. If it is, the server should be added tothe update list so that it will be informed if data inthe authority area changes.delsec This action will inform the server that the serverindicated in the subsequent arguments will no longer bea secondary. The server receiving this action mustdetermine if the server is a secondary and if so,remove it from the update list.<information>{action=badref|recurref <<server>:<query>>action=inssec|delsec|update<<server>:<object>:<authority>>}Williamson & Kosters [Page 12]<server>{%Mserver} This required argument identifies the serverthat contained the recursive or bad referral,or has data that changed.<query>{%s} This required argument identifies the querythat was sent to the server that gave arecursive or bad referral.<object>{%s} This required argument identifies the objectthat changed.<authority>{%s} This required argument identifies theauthority area where the object that changedcurrently resides.Example of use:-notify recurref :4343:scottw@-notify badref :43:-notify update :4343:domain:-notify inssec :4343:domain:-notify delsec :4343:domain:2.3.12 registerThis directive allows the client to add, modify, or deleteinformation that exists or should exist in the server’s database.During the exchange, all attributes of an object must be sent. Theclient must wait to send the registration data until the %ok response is received from the server.Format for use:-register<SP><mode><SP>(on:<action><SP><e-mail contact><SP><authority info>)<mode>{on|off}on: This required argument starts theregistration process.off: This required argument ends the registrationprocess.The following arguments are only required if the mode argument issent with the value on:(<action>){add|mod|del}Williamson & Kosters [Page 13]add: This conditionally required argumentindicates that the object being sent shouldbe added to the server’s database.mod: This conditionally required argumentindicates that the object being sent shouldbe modified and should already exist in theserver’s database.del: This conditionally required argumentindicates that the object being sent shouldbe deleted from the server’s database.(<e-mail contact>){%Memail} This conditionally requiredargument identifies the sender ofthe registration information.(<authority info>){%s} This required argument containsinformation used to authenticatethe person sending the registrationinformation. The method used mustbe identified using the -privatedirective. Work must be done toidentify usable authenticationmethods for unsuperviseddelegation. This is beyond thescope of this document. However,the authors have made an effort toallow flexibility in theimplementation of an authenticationsystem.Example of use:-register on add scottw@Object-type:referralReferral::4343Domain-Name:IP-Network:192.153.247.0IP-Network:198.41.0.0-register off2.3.13 objectRWhois data is a collection of objects with defined attributes. The attributes for an object can be acquired by issuing the -schemadirective. Each object must at a minimum define the attributeobject-type. This attribute identifies the name of the object that Williamson & Kosters [Page 14]will be displayed in response to the -object directive. Thisdirective can be used by a client to verify that a server containsthe desired object. Another possible use may be to gather all of the objects contained on a server and display them to the user in theform of a menu for selection.Format for use:-object<SP>[object][object]{%s} This optional argument identifies the objectrequested. If no argument is sent, all objectscontained in the server will be returned.Example of use:-object domain2.3.14 defineFormat strings describing the format of an object’s attribute mayinclude format macros. More information about definitions of format macros can be found in Section 6. The -define directive allows theclient to request the definition of a format macro.Format for use:-define<SP>[macro name][macro name]{%s} This optional argument identifies the name ofthe macro to display. If no arguments aresent, the server must return the definitionof all macros contained in the server.Example of use:-define server2.3.15 privateThe -private directive allows the client to identify theauthentication method to be used. More research needs to be donewith respect to client authentication. This directive will allowmore experimentation.Williamson & Kosters [Page 15]-private<SP><action><SP><method><SP>[data]<action>{auth|encr} This required argument identifies the actionthe directive is taking. Currently the valuefor this argument can be auth forauthentication or encr for encryption.<method>{%s} This required argument contains the name ofthe method to be used. The value must berecognized by the server or an error will besent. It is beyond the scope of thisdocument to identify the possible method tobe used.[data]{%s} This optional argument must be supplied ifrequired by the method identified in theprevious argument.Example of use:-private auth pass1 xxjdk998uuThe above example is a simple password exchange. It is beyond thescope of this document to determine the authentication technique that would best suit this protocol. Development is underway to determine the authentication needs and to experiment with potential solutions.2.3.16 X-This directive is the preface to extended directives, mutually agreed to between the client and server. The client and server must haveknowledge of the extended directives to use. Extension canaccommodate other uses such as NetHelp, white pages, and many others. If the extensions are public, they should be documented in an RFC and available through the -directive directive.Williamson & Kosters [Page 16]-X-<directive name><SP>[directive arguments]<directive name>{%s} This required argument identifies thename of the directive being issued.[directive arguments]{?} This optional argument is dependent uponthe required or optional arguments ofthe extended directive. There may bemultiple directive arguments.Example of use:-X-date2.3.17 directiveDirectives allowed by a server may vary. The client can issue the-directive directive to determine if the server allows a specificdirective or to obtain a list of all acceptable directives for thatserver.Format for use:-directive<SP>[directive][directive][%s] This optional argument identifies the directivebeing requested. If no arguments are sent, allof the directives accepted by the server mustbe sent.Example of use:-directive X-date2.3.18 displayThe -display directive is used to set the display mode of the server or to identify display modes the client is capable of. If thisdirective is sent without arguments, the server will return allavailable display methods.Williamson & Kosters [Page 17]-display<SP>[action]<SP>[method][action]{activate|capable}The ‘activate’ setting enables a certaindisplay mode, while a ‘capable’ setting sendsthe display mode the client is capable of.[method]{%s} This optional argument indicates the displaymethod desired by the client.Example of use:-display swip-display mime2.3.19 languageThe -language directive is used to set the language mode of theserver or to identify language modes the client is capable of. Ifthis directive is sent without arguments, the server will return all available languages.Format for use:-language<SP>[language][language]{%s} This optional argument indicates the languagedesired by the client.Example of use:-language german2.4 RWhois Client ModelServer <-------> ClientSTART:<------ Connection (record time to connect)If no server type...Wait up to specifiedtime for------> "%RWhois" response(recommend wait of at least 5 seconds)if "%RWhois" is not received from server, assume that it isnot an RWhois servergoto QUERY:Williamson & Kosters [Page 18]。