RDAP(注册数据访问协议)

协议和标准
现代化的标准化协议,用于查询域名注册数据,以JSON格式的结构化响应取代了旧版WHOIS系统。
← 返回词汇表

什么是 RDAP?

RDAP(Registration Data Access Protocol,注册数据访问协议)是用于访问域名注册数据的现代协议,已由 IETF 标准化。RDAP 作为 WHOIS 的后继协议而开发,以 JSON 格式提供结构化、机器可读的响应,使开发者更容易将域名查询功能集成到自己的应用程序中。

RDAP 对开发者为何重要

如果你曾经尝试解析 WHOIS 数据,就会了解其中的困难。每个注册商对响应的格式各不相同,使用不一致的字段名称,并返回需要复杂正则表达式才能提取有用信息的非结构化纯文本。RDAP 通过标准化的 JSON 架构解决了这些问题,该架构在所有符合 RDAP 的服务器之间保持一致。

主要技术优势

结构化 JSON 响应:RDAP 响应使用 RFC 9083 定义的标准化 JSON 数据模型。这为客户端提供了一致的解析结构,但服务可能会根据其访问策略省略或脱敏字段。 RESTful 架构:RDAP 使用标准 HTTP 方法和状态码。当服务器找到匹配对象时,GET 请求会返回域名信息。404 响应表示查询的对象在该服务中未找到;这本身并不能证明该域名可以注册。 默认使用 HTTPS:WHOIS 通过 43 端口以纯文本传输数据,而 RDAP 使用 HTTPS,确保你的应用程序与 RDAP 服务器之间的通信经过加密。 国际化支持:RDAP 能够正确处理 IDN(国际化域名)和 Unicode 字符,这对全球化应用程序至关重要。

RDAP 的工作方式

当你通过 RDAP 查询域名时,流程会遵循以下步骤:

1. Bootstrap 发现:你的客户端查询 IANA RDAP Bootstrap 注册表,以查找该 TLD 的权威 RDAP 服务器

2. HTTP 请求:向 RDAP 服务器 URL 发出 GET 请求(例如:https://rdap.verisign.com/com/v1/domain/example.com

3. JSON 响应:服务器返回一个结构化 JSON 对象,其中包含注册数据、状态码和事件

RDAP 响应结构示例

{

"objectClassName": "domain",

"handle": "example.com",

"ldhName": "example.com",

"status": ["client transfer prohibited"],

"events": [

{"eventAction": "registration", "eventDate": "1995-08-14T04:00:00Z"},

{"eventAction": "expiration", "eventDate": "2025-08-13T04:00:00Z"}

]

}

RDAP 与 WHOIS 对比

特性RDAPWHOIS
数据格式结构化 JSON非结构化文本
传输方式HTTPS(加密)纯文本(43 端口)
标准化程度RFC 9082 和 RFC 9083不一致
IDN 支持原生支持有限支持
查询类型RESTful HTTP自定义协议

在应用程序中实现 RDAP

对于构建域名工具的开发者而言,RDAP 是推荐的方法。包括 DomScan 在内,大多数现代域名可用性检查器都将 RDAP 作为主要数据源,因为它提供:

RDAP 的采用状况

对于 gTLD,ICANN 表示 RDAP 已于 2025 年 1 月 28 日成为注册信息的权威来源,gTLD 注册局和注册商通常不再需要提供 WHOIS 服务,但 .com、.name 和 .post 除外。各 ccTLD 的政策和 RDAP 采用情况有所不同。IANA Bootstrap 文件 https://data.iana.org/rdap/dns.json 提供所有受支持 TLD 的当前 RDAP 服务器映射。

最佳实践

实现 RDAP 查询时,应适当缓存响应以遵守速率限制,实现 IANA Bootstrap 以发现服务器,并分别处理未找到、重定向和策略相关的错误响应。未找到响应是关于所查询服务的证据,而不是该域名具备注册资格的证明。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。