介绍
WHOIS是一种基于TCP的面向事务的查询/响应协议。广泛的用于为用户提供互联网信息服务。虽然最初只是用于提供“白页”服务和有关已注册域名的信息,但现在涵盖更广泛的信息服务。该协议所提供的内容采用人类可读的格式。本文档更新了WHOIS协议的规范,从而废弃了RFC954。
由于历史原因,WHOIS有很多的协议缺憾,例如国际化和更好的安全性,可以与任何最近设计的IETF协议相比较后得知这一点并不假。本文档并不试图纠正任何这些缺点,相反,按原样记录了WHOIS协议。本文档记载了所有众所周知的WHOIS协议缺点。IETF正在进行相关的活动(CRISP工作小组),讨论新的协议,来修复这些缺憾。
协议规范
WHOIS服务器在TCP端口43上侦听来自WHOIS客户端的请求。WHOIS客户端向WHOIS服务器发出文本请求,然后WHOIS服务器回复文本内容。所有请求都是以ASCII CR终止,然后使用ASCII LF终止。答案可能会包含多行文本,因此ASCII CR或ASCII LF字符并不表示响应的结束。响应完成后,WHOIS服务器立即关闭其连接。客户端收到回复后,关闭TCP连接。
协议示例
如果向名为whois.nic.mil的WHOIS服务器请求有关“Smith”的信息,那么此TCP连接的数据包会像这样:
client server at whois.nic.mil
open TCP ---- (SYN) ------------------------------>
<---- (SYN+ACK) -------------------------
send query ---- "Smith<CR><LF>" -------------------->
get answer <---- "Info about Smith<CR><LF>" ---------
<---- "More info about Smith<CR><LF>" ----
close <---- (FIN) ------------------------------
----- (FIN) ----------------------------->
国际化
WHOIS协议尚未国际化。
WHOIS协议没有指示正在使用的字符集的机制。最初,使用的主要文本编码是US-ASCII。而实际上,一些WHOIS服务器,特别是美国以外的服务器,可能正在使用其他一些字符集来处理请求,回复。Whois协议无法预测或表达文本编码对互操作性产生了不利影响(缺乏可用性)。
安全考虑因素
WHOIS协议没有强有力的安全措施。Whois缺乏访问控制,完整性和机密性的机制。
因此,基于WHOIS的服务应仅用于提供非敏感的信息,旨在让每个人都可以访问。缺乏这种安全机制意味着在编写本文档时, IETF无法接受这一协议。
本协议原文在RFC3912