Internet Engineering Task Force (IETF)                         A. Newton
Request for Comments: 7483                                          ARIN
Category: Standards Track                                  S. Hollenbeck
ISSN: 2070-1721                                            Verisign Labs
                                                              March 2015
        
Internet Engineering Task Force (IETF)                         A. Newton
Request for Comments: 7483                                          ARIN
Category: Standards Track                                  S. Hollenbeck
ISSN: 2070-1721                                            Verisign Labs
                                                              March 2015
        

JSON Responses for the Registration Data Access Protocol (RDAP)

注册数据访问协议(RDAP)的JSON响应

Abstract

摘要

This document describes JSON data structures representing registration information maintained by Regional Internet Registries (RIRs) and Domain Name Registries (DNRs). These data structures are used to form Registration Data Access Protocol (RDAP) query responses.

本文档描述了JSON数据结构,表示由区域互联网注册中心(RIR)和域名注册中心(DNR)维护的注册信息。这些数据结构用于形成注册数据访问协议(RDAP)查询响应。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7483.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc7483.

Copyright Notice

版权公告

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2015 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents

目录

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Terminology and Definitions . . . . . . . . . . . . . . .   3
     1.2.  Data Model  . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Use of JSON . . . . . . . . . . . . . . . . . . . . . . . . .   5
     2.1.  Naming  . . . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Common Data Types . . . . . . . . . . . . . . . . . . . . . .   7
   4.  Common Data Structures  . . . . . . . . . . . . . . . . . . .   8
     4.1.  RDAP Conformance  . . . . . . . . . . . . . . . . . . . .   8
     4.2.  Links . . . . . . . . . . . . . . . . . . . . . . . . . .   9
     4.3.  Notices and Remarks . . . . . . . . . . . . . . . . . . .  10
     4.4.  Language Identifier . . . . . . . . . . . . . . . . . . .  11
     4.5.  Events  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     4.6.  Status  . . . . . . . . . . . . . . . . . . . . . . . . .  13
     4.7.  Port 43 WHOIS Server  . . . . . . . . . . . . . . . . . .  13
     4.8.  Public IDs  . . . . . . . . . . . . . . . . . . . . . . .  13
     4.9.  Object Class Name . . . . . . . . . . . . . . . . . . . .  14
     4.10. An Example  . . . . . . . . . . . . . . . . . . . . . . .  14
   5.  Object Classes  . . . . . . . . . . . . . . . . . . . . . . .  15
     5.1.  The Entity Object Class . . . . . . . . . . . . . . . . .  16
     5.2.  The Nameserver Object Class . . . . . . . . . . . . . . .  22
     5.3.  The Domain Object Class . . . . . . . . . . . . . . . . .  26
     5.4.  The IP Network Object Class . . . . . . . . . . . . . . .  38
     5.5.  Autonomous System Number Entity Object Class  . . . . . .  42
   6.  Error Response Body . . . . . . . . . . . . . . . . . . . . .  45
   7.  Responding to Help Queries  . . . . . . . . . . . . . . . . .  48
   8.  Responding To Searches  . . . . . . . . . . . . . . . . . . .  48
   9.  Indicating Truncated Responses  . . . . . . . . . . . . . . .  49
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  52
     10.1.  RDAP JSON Media Type Registration  . . . . . . . . . . .  52
     10.2.  JSON Values Registry . . . . . . . . . . . . . . . . . .  53
       10.2.1.  Notice and Remark Types  . . . . . . . . . . . . . .  54
       10.2.2.  Status . . . . . . . . . . . . . . . . . . . . . . .  56
       10.2.3.  Event Actions  . . . . . . . . . . . . . . . . . . .  49
       10.2.4.  Roles  . . . . . . . . . . . . . . . . . . . . . . .  61
       10.2.5.  Variant Relations  . . . . . . . . . . . . . . . . .  63
   11. Security Considerations . . . . . . . . . . . . . . . . . . .  64
   12. Internationalization Considerations . . . . . . . . . . . . .  64
     12.1.  Character Encoding . . . . . . . . . . . . . . . . . . .  64
     12.2.  URIs and IRIs  . . . . . . . . . . . . . . . . . . . . .  64
     12.3.  Language Tags  . . . . . . . . . . . . . . . . . . . . .  64
     12.4.  Internationalized Domain Names . . . . . . . . . . . . .  65
   13. Privacy Considerations  . . . . . . . . . . . . . . . . . . .  65
   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  65
     14.1.  Normative References . . . . . . . . . . . . . . . . . .  65
     14.2.  Informative References . . . . . . . . . . . . . . . . .  67
        
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Terminology and Definitions . . . . . . . . . . . . . . .   3
     1.2.  Data Model  . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Use of JSON . . . . . . . . . . . . . . . . . . . . . . . . .   5
     2.1.  Naming  . . . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Common Data Types . . . . . . . . . . . . . . . . . . . . . .   7
   4.  Common Data Structures  . . . . . . . . . . . . . . . . . . .   8
     4.1.  RDAP Conformance  . . . . . . . . . . . . . . . . . . . .   8
     4.2.  Links . . . . . . . . . . . . . . . . . . . . . . . . . .   9
     4.3.  Notices and Remarks . . . . . . . . . . . . . . . . . . .  10
     4.4.  Language Identifier . . . . . . . . . . . . . . . . . . .  11
     4.5.  Events  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     4.6.  Status  . . . . . . . . . . . . . . . . . . . . . . . . .  13
     4.7.  Port 43 WHOIS Server  . . . . . . . . . . . . . . . . . .  13
     4.8.  Public IDs  . . . . . . . . . . . . . . . . . . . . . . .  13
     4.9.  Object Class Name . . . . . . . . . . . . . . . . . . . .  14
     4.10. An Example  . . . . . . . . . . . . . . . . . . . . . . .  14
   5.  Object Classes  . . . . . . . . . . . . . . . . . . . . . . .  15
     5.1.  The Entity Object Class . . . . . . . . . . . . . . . . .  16
     5.2.  The Nameserver Object Class . . . . . . . . . . . . . . .  22
     5.3.  The Domain Object Class . . . . . . . . . . . . . . . . .  26
     5.4.  The IP Network Object Class . . . . . . . . . . . . . . .  38
     5.5.  Autonomous System Number Entity Object Class  . . . . . .  42
   6.  Error Response Body . . . . . . . . . . . . . . . . . . . . .  45
   7.  Responding to Help Queries  . . . . . . . . . . . . . . . . .  48
   8.  Responding To Searches  . . . . . . . . . . . . . . . . . . .  48
   9.  Indicating Truncated Responses  . . . . . . . . . . . . . . .  49
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  52
     10.1.  RDAP JSON Media Type Registration  . . . . . . . . . . .  52
     10.2.  JSON Values Registry . . . . . . . . . . . . . . . . . .  53
       10.2.1.  Notice and Remark Types  . . . . . . . . . . . . . .  54
       10.2.2.  Status . . . . . . . . . . . . . . . . . . . . . . .  56
       10.2.3.  Event Actions  . . . . . . . . . . . . . . . . . . .  49
       10.2.4.  Roles  . . . . . . . . . . . . . . . . . . . . . . .  61
       10.2.5.  Variant Relations  . . . . . . . . . . . . . . . . .  63
   11. Security Considerations . . . . . . . . . . . . . . . . . . .  64
   12. Internationalization Considerations . . . . . . . . . . . . .  64
     12.1.  Character Encoding . . . . . . . . . . . . . . . . . . .  64
     12.2.  URIs and IRIs  . . . . . . . . . . . . . . . . . . . . .  64
     12.3.  Language Tags  . . . . . . . . . . . . . . . . . . . . .  64
     12.4.  Internationalized Domain Names . . . . . . . . . . . . .  65
   13. Privacy Considerations  . . . . . . . . . . . . . . . . . . .  65
   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  65
     14.1.  Normative References . . . . . . . . . . . . . . . . . .  65
     14.2.  Informative References . . . . . . . . . . . . . . . . .  67
        
   Appendix A.  Suggested Data Modeling with the Entity Object Class  68
     A.1.  Registrants and Contacts  . . . . . . . . . . . . . . . .  68
     A.2.  Registrars  . . . . . . . . . . . . . . . . . . . . . . .  70
   Appendix B.  Modeling Events  . . . . . . . . . . . . . . . . . .  72
   Appendix C.  Structured vs. Unstructured Addresses  . . . . . . .  74
   Appendix D.  Secure DNS . . . . . . . . . . . . . . . . . . . . .  76
   Appendix E.  Motivations for Using JSON . . . . . . . . . . . . .  77
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  77
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  78
        
   Appendix A.  Suggested Data Modeling with the Entity Object Class  68
     A.1.  Registrants and Contacts  . . . . . . . . . . . . . . . .  68
     A.2.  Registrars  . . . . . . . . . . . . . . . . . . . . . . .  70
   Appendix B.  Modeling Events  . . . . . . . . . . . . . . . . . .  72
   Appendix C.  Structured vs. Unstructured Addresses  . . . . . . .  74
   Appendix D.  Secure DNS . . . . . . . . . . . . . . . . . . . . .  76
   Appendix E.  Motivations for Using JSON . . . . . . . . . . . . .  77
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  77
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  78
        
1. Introduction
1. 介绍

This document describes responses in the JSON [RFC7159] format for the queries as defined by the Registration Data Access Protocol Query Format [RFC7482]. A communication protocol for exchanging queries and responses is described in [RFC7480].

本文档描述了注册数据访问协议查询格式[RFC7482]定义的查询的JSON[RFC7159]格式响应。[RFC7480]中描述了用于交换查询和响应的通信协议。

1.1. Terminology and Definitions
1.1. 术语和定义

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] when specified in their uppercase forms.

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中规定的大写形式进行解释。

The following list describes terminology and definitions used throughout this document:

以下列表描述了本文件中使用的术语和定义:

DNR: Domain Name Registry

域名注册

LDH: letters, digits, hyphen

LDH:字母、数字、连字符

member: data found within an object as defined by JSON [RFC7159].

成员:在JSON[RFC7159]定义的对象中找到的数据。

object: a data structure as defined by JSON [RFC7159].

对象:JSON[RFC7159]定义的数据结构。

object class: the definition of members that may be found in JSON objects described in this document.

对象类:可以在本文档中描述的JSON对象中找到的成员的定义。

object instance: an instantiation or specific instance of an object class.

对象实例:对象类的实例化或特定实例。

RDAP: Registration Data Access Protocol

注册数据访问协议

RIR: Regional Internet Registry

RIR:区域互联网注册处

1.2. Data Model
1.2. 数据模型

The data model for JSON responses is specified in five sections:

JSON响应的数据模型分为五个部分:

1. simple data types conveyed in JSON strings

1. JSON字符串中传递的简单数据类型

2. data structures specified as JSON arrays or objects that are used repeatedly when building up larger objects

2. 指定为JSON数组或对象的数据结构,在构建较大对象时重复使用

3. object classes representing structured data corresponding to a lookup of a single object

3. 表示与单个对象的查找相对应的结构化数据的对象类

4. arrays of objects representing structured data corresponding to a search for multiple objects

4. 表示与多个对象的搜索相对应的结构化数据的对象数组

5. the response to an error

5. 对错误的响应

The object classes represent responses for two major categories of data: responses returned by RIRs for registration data related to IP addresses, reverse DNS names, and Autonomous System numbers and responses returned by DNRs for registration data related to forward DNS names. The following object classes are returned by both RIRs and DNRs:

对象类表示两大类数据的响应:RIRs返回的与IP地址、反向DNS名称相关的注册数据的响应,以及DNRs返回的与正向DNS名称相关的注册数据的自治系统号和响应。以下对象类由RIR和DNR返回:

1. domains

1. 领域

2. nameservers

2. 名称服务器

3. entities

3. 实体

The information served by both RIRs and DNRs for these object classes overlap extensively and are given in this document as a unified model for both classes of service.

RIR和DNR为这些对象类提供的信息广泛重叠,本文档中给出了这两类服务的统一模型。

In addition to the object classes listed above, RIRs also serve the following object classes:

除了上面列出的对象类之外,RIR还服务于以下对象类:

1. IP networks

1. IP网络

2. Autonomous System numbers

2. 自治系统编号

Object classes defined in this document represent a minimal set of what a compliant client/server needs to understand to function correctly; however, some deployments may want to include additional object classes to suit individual needs. Anticipating this need for extension, Section 2.1 of this document defines a mechanism for extending the JSON objects that are described in this document.

本文档中定义的对象类代表了兼容客户机/服务器正确运行所需了解的内容的最小集合;但是,某些部署可能希望包含其他对象类以满足个人需要。考虑到这种扩展需求,本文档的第2.1节定义了一种扩展本文档中描述的JSON对象的机制。

Positive responses take two forms. A response to a lookup of a single object in the registration system yields a JSON object, which is the subject of the lookup. A response to a search for multiple objects yields a JSON object that contains an array of JSON objects that are the subject of the search. In each type of response, other data structures are present within the topmost JSON object.

积极的反应有两种形式。对注册系统中单个对象的查找的响应将生成一个JSON对象,它是查找的主题。对多个对象搜索的响应将生成一个JSON对象,其中包含作为搜索主题的JSON对象数组。在每种类型的响应中,最顶层的JSON对象中都存在其他数据结构。

2. Use of JSON
2. JSON的使用
2.1. Naming
2.1. 命名

Clients of these JSON responses SHOULD ignore unrecognized JSON members in responses. Servers can insert members into the JSON responses, which are not specified in this document, but that does not constitute an error in the response. Servers that insert such unspecified members into JSON responses SHOULD have member names prefixed with a short identifier followed by an underscore followed by a meaningful name. It has been observed that these short identifiers aid software implementers with identifying the specification of the JSON member, and failure to use one could cause an implementer to assume the server is erroneously using a name from this specification. This allowance does not apply to jCard [RFC7095] objects. The full JSON name (the prefix plus the underscore plus the meaningful name) SHOULD adhere to the character and name limitations of the prefix registry described in [RFC7480]. Failure to use these limitations could result in slower adoption as these limitations have been observed to aid some client programming models.

这些JSON响应的客户端应该忽略响应中无法识别的JSON成员。服务器可以在JSON响应中插入成员,这在本文档中没有指定,但这并不构成响应中的错误。在JSON响应中插入此类未指定成员的服务器,其成员名称的前缀应为短标识符,后跟下划线和有意义的名称。据观察,这些短标识符有助于软件实现者识别JSON成员的规范,如果不使用,可能会导致实现者认为服务器错误地使用了该规范中的名称。此容差不适用于jCard[RFC7095]对象。完整的JSON名称(前缀加下划线加有意义的名称)应遵守[RFC7480]中所述前缀注册表的字符和名称限制。未能使用这些限制可能会导致采用较慢,因为已观察到这些限制有助于某些客户端编程模型。

Consider the following JSON response with JSON members, all of which are specified in this document.

考虑JSON成员的下列JSON响应,所有这些都在本文档中指定。

   {
     "handle" : "ABC123",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ]
   }
        
   {
     "handle" : "ABC123",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ]
   }
        

Figure 1

图1

If The Registry of the Moon desires to express information not found in this specification, it might select "lunarNic" as its identifying prefix and insert, as an example, the member named "lunarNic_beforeOneSmallStep" to signify registrations occurring before the first moon landing and the member named "lunarNic_harshMistressNotes" that contains other descriptive text.

如果月球注册中心希望表达本规范中未发现的信息,它可能会选择“lunarNic”作为其识别前缀,并插入(例如)名为“lunarNic_beforeOneSmallStep”的成员,以表示首次登月之前发生的注册,以及名为“lunarNic_”的成员包含其他描述性文本的。

Consider the following JSON response with JSON names, some of which should be ignored by clients without knowledge of their meaning.

考虑JSON名称下面的JSON响应,其中一些应该被客户端忽略,而不知道它们的含义。

   {
     "handle" : "ABC123",
     "lunarNic_beforeOneSmallStep" : "TRUE THAT!",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "lunarNic_harshMistressNotes" :
     [
       "In space,",
       "nobody can hear you scream."
     ]
   }
        
   {
     "handle" : "ABC123",
     "lunarNic_beforeOneSmallStep" : "TRUE THAT!",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "lunarNic_harshMistressNotes" :
     [
       "In space,",
       "nobody can hear you scream."
     ]
   }
        

Figure 2

图2

Insertion of unrecognized members ignored by clients may also be used for future revisions to this specification.

插入客户忽略的未识别成员也可用于本规范的未来修订。

Clients processing JSON responses need to be prepared for members representing registration data specified in this document to be absent from a response. In other words, servers are free to not include JSON members containing registration data based on their own policies.

处理JSON响应的客户机需要为表示本文档中指定的注册数据的成员做好准备,以便响应中不包含这些成员。换句话说,服务器可以根据自己的策略不包含包含注册数据的JSON成员。

Finally, all JSON names specified in this document are case sensitive. Both servers and clients MUST transmit and process them using the specified character case.

最后,本文档中指定的所有JSON名称都区分大小写。服务器和客户端都必须使用指定的大小写传输和处理它们。

3. Common Data Types
3. 通用数据类型

JSON [RFC7159] defines the data types of a number, character string, boolean, array, object, and null. This section describes the semantics and/or syntax reference for common, JSON character strings used in this document.

JSON[RFC7159]定义数字、字符串、布尔值、数组、对象和null的数据类型。本节介绍本文档中使用的常见JSON字符串的语义和/或语法参考。

handle: DNRs and RIRs have registry-unique identifiers that may be used to specifically reference an object instance. The semantics of this data type as found in this document are to be a registry-unique reference to the closest enclosing object where the value is found. The data type names "registryId", "roid", "nic-handle", "registrationNo", etc., are terms often synonymous with this data type. In this document, the term "handle" is used. The term exposed to users by clients is a presentation issue beyond the scope of this document.

句柄:DNR和RIR具有注册表唯一标识符,可用于专门引用对象实例。本文档中此数据类型的语义是对找到值的最近封闭对象的注册表唯一引用。数据类型名称“registryId”、“roid”、“nic句柄”、“registrationNo”等术语通常与此数据类型同义。在本文件中,使用术语“句柄”。客户端向用户公开的术语是一个超出本文档范围的表示问题。

IPv4 addresses: The representation of IPv4 addresses in this document uses the dotted-decimal notation. An example of this textual representation is "192.0.2.0".

IPv4地址:本文档中IPv4地址的表示形式使用点十进制表示法。这种文本表示的一个例子是“192.0.2.0”。

IPv6 addresses: The representation of IPv6 addresses in this document follow the forms outlined in [RFC5952]. An example of this textual representation is "2001:db8::1:0:0:1".

IPv6地址:本文档中IPv6地址的表示形式遵循[RFC5952]中概述的格式。这种文本表示的一个示例是“2001:db8::1:0:0:1”。

country codes: Where the identity of a geopolitical nation or country is needed, these identities are represented with the alpha-2 or two-character country code designation as defined in [ISO.3166.1988]. The alpha-2 representation is used because it is freely available, whereas the alpha-3 and numeric-3 standards are not.

国家代码:如果需要地缘政治国家或国家的身份,这些身份用[ISO.3166.1988]中定义的阿尔法-2或两个字符的国家代码名称表示。使用alpha-2表示法是因为它是免费提供的,而alpha-3和numeric-3标准则不是。

LDH names: Textual representations of DNS names where the labels of the domain are all "letters, digits, hyphen" labels as described by [RFC5890]. Trailing periods are optional.

LDH名称:DNS名称的文本表示,其中域的标签均为[RFC5890]所述的“字母、数字、连字符”标签。尾随句点是可选的。

Unicode names: Textual representations of DNS names where one or more of the labels are U-labels as described by [RFC5890]. Trailing periods are optional.

Unicode名称:DNS名称的文本表示,其中一个或多个标签是[RFC5890]所述的U型标签。尾随句点是可选的。

dates and times: The syntax for values denoting dates and times is defined in [RFC3339].

日期和时间:表示日期和时间的值的语法在[RFC3339]中定义。

URIs: The syntax for values denoting a Uniform Resource Identifier (URI) is defined by [RFC3986].

URI:表示统一资源标识符(URI)的值的语法由[RFC3986]定义。

Contact information is defined using jCards as described in [RFC7095].

如[RFC7095]所述,使用jCards定义联系信息。

4. Common Data Structures
4. 通用数据结构

This section defines common data structures used in responses and object classes.

本节定义了响应和对象类中使用的通用数据结构。

4.1. RDAP Conformance
4.1. RDAP一致性

The data structure named "rdapConformance" is an array of strings, each providing a hint as to the specifications used in the construction of the response. This data structure appears only in the topmost JSON object of a response.

名为“rdapConformance”的数据结构是一个字符串数组,每个字符串都提供了关于响应构造中使用的规范的提示。此数据结构仅出现在响应的最顶层JSON对象中。

An example rdapConformance data structure:

rdapConformance数据结构示例:

"rdapConformance" : [ "rdap_level_0" ]

“rdapConformance”:[“RDAP0级”]

Figure 3

图3

The string literal "rdap_level_0" signifies conformance with this specification. When custom JSON values are inserted into responses, conformance to those custom specifications MUST use a string prefixed with the appropriate identifier from the IANA RDAP Extensions registry specified in [RFC7480]. For example, if the fictional Registry of the Moon wants to signify that their JSON responses are conformant with their registered extensions, the string used might be "lunarNIC_level_0". These prefixes aid the identification of specifications for software implementers, and failure to use them could result in slower adoption of extensions.

字符串文字“rdap_level_0”表示符合本规范。在响应中插入自定义JSON值时,符合这些自定义规范的字符串必须以[RFC7480]中指定的IANA RDAP Extensions注册表中的相应标识符作为前缀。例如,如果虚构的月球注册中心想要表示他们的JSON响应与注册的扩展一致,那么使用的字符串可能是“lunarNIC_level_0”。这些前缀有助于识别软件实现者的规范,如果不使用它们,可能会导致扩展采用的速度变慢。

Example rdapConformance structure with custom extensions noted:

带有自定义扩展的rdapConformance结构示例:

"rdapConformance" : [ "rdap_level_0", "lunarNic_level_0" ]

“rdapConformance”:[“rdap级别0”、“月亮级别0”]

Figure 4

图4

4.2. Links
4.2. 链接

The "links" array is found in data structures to signify links to other resources on the Internet. The relationship of these links is defined by the IANA registry described by [RFC5988].

“links”数组位于数据结构中,表示与Internet上其他资源的链接。这些链接的关系由[RFC5988]描述的IANA注册表定义。

The following is an example of the link structure:

以下是链接结构的示例:

       {
         "value" : "http://example.com/context_uri",
         "rel" : "self",
         "href" : "http://example.com/target_uri",
         "hreflang" : [ "en", "ch" ],
         "title" : "title",
         "media" : "screen",
         "type" : "application/json"
       }
        
       {
         "value" : "http://example.com/context_uri",
         "rel" : "self",
         "href" : "http://example.com/target_uri",
         "hreflang" : [ "en", "ch" ],
         "title" : "title",
         "media" : "screen",
         "type" : "application/json"
       }
        

Figure 5

图5

The JSON name/values of "rel", "href", "hreflang", "title", "media", and "type" correspond to values found in Section 5 of [RFC5988]. The "value" JSON value is the context URI as described by [RFC5988]. The "href" JSON value MUST be specified. All other JSON values are OPTIONAL.

JSON名称/值“rel”、“href”、“hreflang”、“title”、“media”和“type”对应于[RFC5988]第5节中的值。“value”JSON值是[RFC5988]描述的上下文URI。必须指定“href”JSON值。所有其他JSON值都是可选的。

This is an example of the "links" array as it might be found in an object class:

这是在对象类中可能找到的“链接”数组的一个示例:

       "links" :
       [
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "self",
             "href" : "http://example.com/ip/2001:db8::123",
             "type" : "application/rdap+json"
           },
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "up",
             "href" : "http://example.com/ip/2001:db8::/48",
             "type" : "application/rdap+json"
           }
        
       "links" :
       [
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "self",
             "href" : "http://example.com/ip/2001:db8::123",
             "type" : "application/rdap+json"
           },
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "up",
             "href" : "http://example.com/ip/2001:db8::/48",
             "type" : "application/rdap+json"
           }
        

]

]

Figure 6

图6

4.3. Notices and Remarks
4.3. 通知及备注

The "notices" and "remarks" data structures take the same form. The notices structure denotes information about the service providing RDAP information and/or information about the entire response, whereas the remarks structure denotes information about the object class that contains it (see Section 5 regarding object classes).

“通知”和“备注”数据结构采用相同的形式。notices结构表示关于提供RDAP信息的服务的信息和/或关于整个响应的信息,而Comments结构表示关于包含它的对象类的信息(参见第5节关于对象类)。

Both are arrays of objects. Each object contains an optional "title" string representing the title of the object, an optional "type" string denoting a registered type of remark or notice (see Section 10.2.1), an array of strings named "description" for the purposes of conveying any descriptive text, and an optional "links" array as described in Section 4.2.

两者都是对象数组。每个对象包含一个表示对象标题的可选“title”字符串、一个表示已注册的备注或通知类型的可选“type”字符串(见第10.2.1节)、一个名为“description”的字符串数组(用于传输任何描述性文本)以及一个可选的“links”数组(如第4.2节所述)。

An example of the notices data structure:

通知数据结构的一个示例:

   "notices" :
   [
     {
       "title" : "Terms of Use",
       "description" :
       [
         "Service subject to The Registry of the Moon's TOS.",
         "Copyright (c) 2020 LunarNIC"
       ],
       "links" :
       [
         {
           "value" : "http://example.net/entity/XXXX",
           "rel" : "alternate",
           "type" : "text/html",
           "href" : "http://www.example.com/terms_of_use.html"
         }
       ]
     }
   ]
        
   "notices" :
   [
     {
       "title" : "Terms of Use",
       "description" :
       [
         "Service subject to The Registry of the Moon's TOS.",
         "Copyright (c) 2020 LunarNIC"
       ],
       "links" :
       [
         {
           "value" : "http://example.net/entity/XXXX",
           "rel" : "alternate",
           "type" : "text/html",
           "href" : "http://www.example.com/terms_of_use.html"
         }
       ]
     }
   ]
        

Figure 7

图7

It is the job of the clients to determine line breaks, spacing, and display issues for sentences within the character strings of the "description" array. Each string in the "description" array contains a single complete division of human-readable text indicating to clients where there are semantic breaks.

客户机的工作是确定“description”数组字符串中句子的换行、间距和显示问题。“description”数组中的每个字符串都包含一个完整的人类可读文本分区,用于向客户端指示语义中断的位置。

An example of the remarks data structure:

备注数据结构示例:

   "remarks" :
   [
     {
       "description" :
       [
         "She sells sea shells down by the sea shore.",
         "Originally written by Terry Sullivan."
       ]
     }
   ]
        
   "remarks" :
   [
     {
       "description" :
       [
         "She sells sea shells down by the sea shore.",
         "Originally written by Terry Sullivan."
       ]
     }
   ]
        

Figure 8

图8

Note that objects in the "remarks" array may also have a "links" array.

请注意,“备注”数组中的对象也可能有“链接”数组。

While the "title" and "description" fields are intended primarily for human consumption, the "type" string contains a well-known value to be registered with IANA (see Section 10.2.1) for programmatic use.

虽然“标题”和“描述”字段主要用于人类消费,“类型”字符串包含一个众所周知的值,将在IANA注册(见第10.2.1节)以供编程使用。

An example of the remarks data structure:

备注数据结构示例:

   "remarks" :
   [
     {
       "type" : "object truncated due to authorization",
       "description" :
       [
         "Some registration data may not have been given.",
         "Use proper authorization credentials to see all of it."
       ]
     }
   ]
        
   "remarks" :
   [
     {
       "type" : "object truncated due to authorization",
       "description" :
       [
         "Some registration data may not have been given.",
         "Use proper authorization credentials to see all of it."
       ]
     }
   ]
        

Figure 9

图9

While the "remarks" array will appear in many object classes in a response, the "notices" array appears only in the topmost object of a response.

虽然“备注”数组将出现在响应的许多对象类中,“通知”数组仅出现在响应的最顶层对象中。

4.4. Language Identifier
4.4. 语言标识符

This data structure consists solely of a name/value pair, where the name is "lang" and the value is a string containing a language identifier as described in [RFC5646].

该数据结构仅由名称/值对组成,其中名称为“lang”,值为包含[RFC5646]中所述语言标识符的字符串。

"lang" : "mn-Cyrl-MN"

“lang”:“mn Cyrl mn”

Figure 10

图10

The "lang" attribute may appear anywhere in an object class or data structure except for in jCard objects.

“lang”属性可能出现在对象类或数据结构中的任何位置,jCard对象中除外。

4.5. Events
4.5. 事件

This data structure represents events that have occurred on an instance of an object class (see Section 5 regarding object classes).

此数据结构表示对象类实例上发生的事件(请参阅第5节有关对象类的内容)。

This is an example of an "events" array.

这是一个“事件”数组的示例。

   "events" :
   [
     {
       "eventAction" : "registration",
       "eventActor" : "SOMEID-LUNARNIC",
       "eventDate" : "1990-12-31T23:59:59Z"
     },
     {
       "eventAction" : "last changed",
       "eventActor" : "OTHERID-LUNARNIC",
       "eventDate" : "1991-12-31T23:59:59Z"
     }
   ]
        
   "events" :
   [
     {
       "eventAction" : "registration",
       "eventActor" : "SOMEID-LUNARNIC",
       "eventDate" : "1990-12-31T23:59:59Z"
     },
     {
       "eventAction" : "last changed",
       "eventActor" : "OTHERID-LUNARNIC",
       "eventDate" : "1991-12-31T23:59:59Z"
     }
   ]
        

Figure 11

图11

The "events" array consists of objects, each with the following members:

“事件”数组由对象组成,每个对象具有以下成员:

o "eventAction" -- a string denoting the reason for the event

o “eventAction”--表示事件原因的字符串

o "eventActor" -- an optional identifier denoting the actor responsible for the event

o “eventActor”--表示负责事件的参与者的可选标识符

o "eventDate" -- a string containing the time and date the event occurred.

o “eventDate”--包含事件发生的时间和日期的字符串。

o "links" -- see Section 4.2

o “链接”--见第4.2节

Events can be future dated. One use case for future dating of events is to denote when an object expires from a registry.

事件可以是未来的日期。未来事件日期的一个用例是表示对象何时从注册表过期。

The "links" array in this data structure is provided for references to the event actor. In order to reference an RDAP entity, a "rel" of "related" and a "type" of "application/rdap+json" is used in the link reference.

此数据结构中的“links”数组用于引用事件参与者。为了引用RDAP实体,在链接引用中使用“relate”的“rel”和“type”的“application/RDAP+json”。

See Section 10.2.3 for a list of values for the "eventAction" string. See Appendix B regarding the various ways events can be modeled.

有关“eventAction”字符串的值列表,请参见第10.2.3节。关于事件建模的各种方法,请参见附录B。

4.6. Status
4.6. 地位

This data structure, named "status", is an array of strings indicating the state of a registered object (see Section 10.2.2 for a list of values).

这个名为“status”的数据结构是一个字符串数组,表示注册对象的状态(值列表见第10.2.2节)。

4.7. Port 43 WHOIS Server
4.7. 端口43 WHOIS服务器

This data structure, a member named "port43", is a simple string containing the fully qualified host name or IP address of the WHOIS [RFC3912] server where the containing object instance may be found. Note that this is not a URI, as there is no WHOIS URI scheme.

此数据结构(名为“port43”的成员)是一个简单字符串,其中包含WHOIS[RFC3912]服务器的完全限定主机名或IP地址,在该服务器上可以找到包含对象实例的服务器。请注意,这不是URI,因为没有WHOIS URI方案。

4.8. Public IDs
4.8. 公共ID

This data structure maps a public identifier to an object class. It is named "publicIds" and is an array of objects, with each object containing the following members:

此数据结构将公共标识符映射到对象类。它名为“PublicID”,是一个对象数组,每个对象包含以下成员:

o type -- a string denoting the type of public identifier

o type——表示公共标识符类型的字符串

o identifier -- a public identifier of the type denoted by "type"

o 标识符--由“type”表示的类型的公共标识符

The following is an example of a publicIds structure.

以下是publicIds结构的示例。

   "publicIds":
   [
     {
       "type":"IANA Registrar ID",
       "identifier":"1"
     }
   ]
        
   "publicIds":
   [
     {
       "type":"IANA Registrar ID",
       "identifier":"1"
     }
   ]
        

Figure 12

图12

4.9. Object Class Name
4.9. 对象类名

This data structure, a member named "objectClassName", gives the object class name of a particular object as a string. This identifies the type of object being processed. An objectClassName is REQUIRED in all RDAP response objects so that the type of the object can be interpreted.

该数据结构是一个名为“objectClassName”的成员,它以字符串形式给出特定对象的对象类名。这标识正在处理的对象的类型。所有RDAP响应对象中都需要objectClassName,以便可以解释对象的类型。

4.10. An Example
4.10. 一个例子

This is an example response with both rdapConformance and notices embedded:

这是一个包含rdapConformance和通知的示例响应:

   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Content Removed",
         "description" :
         [
           "Without full authorization, content has been removed.",
           "Sorry, dude!"
         ],
         "links" :
         [
           {
             "value" : "http://example.net/ip/192.0.2.0/24",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/redaction_policy.html"
           }
         ]
       }
     ],
     "lang" : "en",
     "objectClassName" : "ip network",
     "startAddress" : "192.0.2.0",
     "endAddress" : "192.0.2.255",
     "handle" : "XXXX-RIR",
     "ipVersion" : "v4",
     "name": "NET-RTR-1",
     "parentHandle" : "YYYY-RIR",
     "remarks" :
     [
        
   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Content Removed",
         "description" :
         [
           "Without full authorization, content has been removed.",
           "Sorry, dude!"
         ],
         "links" :
         [
           {
             "value" : "http://example.net/ip/192.0.2.0/24",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/redaction_policy.html"
           }
         ]
       }
     ],
     "lang" : "en",
     "objectClassName" : "ip network",
     "startAddress" : "192.0.2.0",
     "endAddress" : "192.0.2.255",
     "handle" : "XXXX-RIR",
     "ipVersion" : "v4",
     "name": "NET-RTR-1",
     "parentHandle" : "YYYY-RIR",
     "remarks" :
     [
        
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ]
   }
        
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ]
   }
        

Figure 13

图13

5. Object Classes
5. 对象类

Object classes represent structures appropriate for a response from the queries specified in [RFC7482].

对象类表示适合于[RFC7482]中指定的查询响应的结构。

Each object class contains a "links" array as specified in Section 4.2. For every object class instance in a response, whether the object class instance is directly representing the response to a query or is embedded in other object class instances or is an item in a search result set, servers SHOULD provide a link representing a URI for that object class instance using the "self" relationship as described in the IANA registry specified by [RFC5988]. As explained in Section 5.2, this may be not always be possible for nameserver data. Clients MUST be able to process object instances without a self link. When present, clients can use the self link for caching data. Servers MAY provide more than one self link for any given object instance. Failure to provide any self link by a server may result in clients being unable to cache object class instances.

每个对象类都包含第4.2节中指定的“链接”数组。对于响应中的每个对象类实例,无论该对象类实例是直接表示对查询的响应,还是嵌入到其他对象类实例中,或者是搜索结果集中的一个项,服务器都应使用“self”提供表示该对象类实例的URI的链接[RFC5988]指定的IANA注册表中描述的关系。如第5.2节所述,对于名称服务器数据,这可能并不总是可行的。客户端必须能够在没有自链接的情况下处理对象实例。如果存在,客户端可以使用自链接缓存数据。服务器可以为任何给定对象实例提供多个自链接。服务器未能提供任何自链接可能会导致客户端无法缓存对象类实例。

Clients using self links for caching SHOULD not cache any object class instances where the authority of the self link is different than the authority of the server returning the data. Failing to do so might result in cache poisoning.

使用自链接进行缓存的客户端不应缓存自链接的权限与返回数据的服务器的权限不同的任何对象类实例。否则可能导致缓存中毒。

Self links MUST contain a "type" element containing the "application/ rdap+json" media type when referencing RDAP object instances as defined by this document.

当引用本文档定义的rdap对象实例时,自链接必须包含一个“type”元素,该元素包含“application/rdap+json”媒体类型。

This is an example of the "links" array with a self link to an object class:

这是一个“链接”数组的示例,该数组具有指向对象类的自链接:

       "links" :
       [
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "self",
             "href" : "http://example.com/ip/2001:db8::123",
             "type" : "application/rdap+json"
           }
       ]
        
       "links" :
       [
           {
             "value" : "http://example.com/ip/2001:db8::123",
             "rel" : "self",
             "href" : "http://example.com/ip/2001:db8::123",
             "type" : "application/rdap+json"
           }
       ]
        

Figure 14

图14

5.1. The Entity Object Class
5.1. 实体对象类

The entity object class appears throughout this document and is an appropriate response for the /entity/XXXX query defined in "Registration Data Access Protocol (RDAP) Query Format" [RFC7482]. This object class represents the information of organizations, corporations, governments, non-profits, clubs, individual persons, and informal groups of people. All of these representations are so similar that it is best to represent them in JSON [RFC7159] with one construct, the entity object class, to aid in the reuse of code by implementers.

实体对象类出现在本文档中,是对“注册数据访问协议(RDAP)查询格式”[RFC7482]中定义的/entity/XXXX查询的适当响应。此对象类表示组织、公司、政府、非营利组织、俱乐部、个人和非正式人群的信息。所有这些表示都非常相似,因此最好用JSON[RFC7159]用一个构造(实体对象类)来表示它们,以帮助实现者重用代码。

The entity object class uses jCard [RFC7095] to represent contact information, such as postal addresses, email addresses, phone numbers and names of organizations and individuals. Many of the types of information that can be represented with jCard have no use in RDAP, such as birthdays, anniversaries, and gender.

实体对象类使用jCard[RFC7095]表示联系信息,例如邮政地址、电子邮件地址、电话号码以及组织和个人的姓名。许多可以用jCard表示的信息类型在RDAP中没有用处,例如生日、周年纪念日和性别。

The entity object is served by both RIRs and DNRs. The following is an example of an entity that might be served by an RIR.

实体对象由RIR和DNR提供服务。以下是可能由RIR提供服务的实体的示例。

   {
     "objectClassName" : "entity",
     "handle":"XXXX",
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["n", {}, "text",
           ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]
         ],
         ["kind", {}, "text", "individual"],
        
   {
     "objectClassName" : "entity",
     "handle":"XXXX",
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["n", {}, "text",
           ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]
         ],
         ["kind", {}, "text", "individual"],
        
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["adr",
           {
             "type":"home",
             "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"
           },
           "text",
           [
             "", "", "", "", "", "", ""
           ]
         ],
         ["tel",
           {
             "type":["work", "voice"],
             "pref":"1"
           },
           "uri",
           "tel:+1-555-555-1234;ext=102"
         ],
         ["tel",
           { "type":["work", "cell", "voice", "video", "text"] },
           "uri",
           "tel:+1-555-555-4321"
         ],
         ["email",
        
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["adr",
           {
             "type":"home",
             "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"
           },
           "text",
           [
             "", "", "", "", "", "", ""
           ]
         ],
         ["tel",
           {
             "type":["work", "voice"],
             "pref":"1"
           },
           "uri",
           "tel:+1-555-555-1234;ext=102"
         ],
         ["tel",
           { "type":["work", "cell", "voice", "video", "text"] },
           "uri",
           "tel:+1-555-555-4321"
         ],
         ["email",
        
           { "type":"work" },
           "text",
           "joe.user@example.com"
         ],
         ["geo", {
           "type":"work"
         }, "uri", "geo:46.772673,-71.282945"],
         ["key",
           { "type":"work" },
           "uri",
           "http://www.example.com/joe.user/joe.asc"
         ],
         ["tz", {},
           "utc-offset", "-05:00"],
         ["url", { "type":"home" },
           "uri", "http://example.org"]
       ]
     ],
     "roles":[ "registrar" ],
     "publicIds":[
       {
         "type":"IANA Registrar ID",
         "identifier":"1"
       }
     ],
     "remarks":[
       {
         "description":[
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links":[
       {
         "value":"http://example.com/entity/XXXX",
         "rel":"self",
         "href":"http://example.com/entity/XXXX",
         "type" : "application/rdap+json"
       }
     ],
     "events":[
       {
         "eventAction":"registration",
         "eventDate":"1990-12-31T23:59:59Z"
       }
     ],
     "asEventActor":[
        
           { "type":"work" },
           "text",
           "joe.user@example.com"
         ],
         ["geo", {
           "type":"work"
         }, "uri", "geo:46.772673,-71.282945"],
         ["key",
           { "type":"work" },
           "uri",
           "http://www.example.com/joe.user/joe.asc"
         ],
         ["tz", {},
           "utc-offset", "-05:00"],
         ["url", { "type":"home" },
           "uri", "http://example.org"]
       ]
     ],
     "roles":[ "registrar" ],
     "publicIds":[
       {
         "type":"IANA Registrar ID",
         "identifier":"1"
       }
     ],
     "remarks":[
       {
         "description":[
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links":[
       {
         "value":"http://example.com/entity/XXXX",
         "rel":"self",
         "href":"http://example.com/entity/XXXX",
         "type" : "application/rdap+json"
       }
     ],
     "events":[
       {
         "eventAction":"registration",
         "eventDate":"1990-12-31T23:59:59Z"
       }
     ],
     "asEventActor":[
        
       {
         "eventAction":"last changed",
         "eventDate":"1991-12-31T23:59:59Z"
       }
     ]
   }
        
       {
         "eventAction":"last changed",
         "eventDate":"1991-12-31T23:59:59Z"
       }
     ]
   }
        

Figure 15

图15

The entity object class can contain the following members:

实体对象类可以包含以下成员:

o objectClassName -- the string "entity"

o objectClassName——字符串“entity”

o handle -- a string representing a registry unique identifier of the entity

o 句柄——表示实体的注册表唯一标识符的字符串

o vcardArray -- a jCard with the entity's contact information

o vcardArray——包含实体联系信息的jCard

o roles -- an array of strings, each signifying the relationship an object would have with its closest containing object (see Section 10.2.4 for a list of values)

o 角色——一个字符串数组,每个字符串表示对象与其最近的包含对象之间的关系(值列表见第10.2.4节)

o publicIds -- see Section 4.8

o PublicID——见第4.8节

o entities -- an array of entity objects as defined by this section

o 实体——本节定义的实体对象数组

o remarks -- see Section 4.3

o 备注——见第4.3节

o links -- see Section 4.2

o 链接——见第4.2节

o events -- see Section 4.5

o 事件——见第4.5节

o asEventActor -- this data structure takes the same form as the events data structure (see Section 4.5), but each object in the array MUST NOT have an "eventActor" member. These objects denote that the entity is an event actor for the given events. See Appendix B regarding the various ways events can be modeled.

o asEventActor——此数据结构采用与事件数据结构相同的形式(请参见第4.5节),但数组中的每个对象不得具有“eventActor”成员。这些对象表示实体是给定事件的事件参与者。关于事件建模的各种方法,请参见附录B。

o status -- see Section 4.6

o 状态——见第4.6节

o port43 -- see Section 4.7

o 端口43——见第4.7节

o networks -- an array of IP network objects as defined in Section 5.4

o 网络——第5.4节中定义的IP网络对象数组

o autnums -- an array of autnum objects as defined in Section 5.5

o autnums——第5.5节中定义的autnum对象数组

Entities may also have other entities embedded with them in an array. This can be used to model an organization with specific individuals fulfilling designated roles of responsibility.

实体也可以在数组中嵌入其他实体。这可以用来为一个组织建模,使特定的个人履行指定的职责。

The following is an elided example of an entity with embedded entities.

以下是具有嵌入式实体的实体的省略示例。

   {
     "objectClassName" : "entity",
     "handle" : "ANENTITY",
     "roles" : [ "registrar" ],
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle": "ANEMBEDDEDENTITY",
         "roles" : [ "technical" ],
         ...
       },
       ...
     ],
     ...
   }
        
   {
     "objectClassName" : "entity",
     "handle" : "ANENTITY",
     "roles" : [ "registrar" ],
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle": "ANEMBEDDEDENTITY",
         "roles" : [ "technical" ],
         ...
       },
       ...
     ],
     ...
   }
        

Figure 16

图16

The following is an example of an entity that might be served by a DNR.

以下是DNR可能提供服务的实体示例。

   {
     "objectClassName" : "entity",
     "handle":"XXXX",
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["kind", {}, "text", "individual"],
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
        
   {
     "objectClassName" : "entity",
     "handle":"XXXX",
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["kind", {}, "text", "individual"],
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
        
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["tel",
           { "type":["work", "voice"], "pref":"1" },
           "uri", "tel:+1-555-555-1234;ext=102"
         ],
         ["email",
           { "type":"work" },
           "text", "joe.user@example.com"
         ]
       ]
     ],
     "status":[ "validated", "locked" ],
     "remarks":[
       {
         "description":[
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links":[
       {
         "value":"http://example.com/entity/XXXX",
         "rel":"self",
         "href":"http://example.com/entity/XXXX",
         "type":"application/rdap+json"
       }
     ],
     "port43":"whois.example.net",
     "events":[
       {
         "eventAction":"registration",
         "eventDate":"1990-12-31T23:59:59Z"
       },
        
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["tel",
           { "type":["work", "voice"], "pref":"1" },
           "uri", "tel:+1-555-555-1234;ext=102"
         ],
         ["email",
           { "type":"work" },
           "text", "joe.user@example.com"
         ]
       ]
     ],
     "status":[ "validated", "locked" ],
     "remarks":[
       {
         "description":[
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links":[
       {
         "value":"http://example.com/entity/XXXX",
         "rel":"self",
         "href":"http://example.com/entity/XXXX",
         "type":"application/rdap+json"
       }
     ],
     "port43":"whois.example.net",
     "events":[
       {
         "eventAction":"registration",
         "eventDate":"1990-12-31T23:59:59Z"
       },
        
       {
         "eventAction":"last changed",
         "eventDate":"1991-12-31T23:59:59Z",
         "eventActor":"joe@example.com"
       }
     ]
   }
        
       {
         "eventAction":"last changed",
         "eventDate":"1991-12-31T23:59:59Z",
         "eventActor":"joe@example.com"
       }
     ]
   }
        

Figure 17

图17

See Appendix A for use of the entity object class to model various types of entities found in both RIRs and DNRs. See Appendix C regarding structured vs. unstructured postal addresses in entities.

有关实体对象类对RIR和DNR中的各种类型实体建模的使用,请参见附录A。关于实体中的结构化与非结构化邮政地址,请参见附录C。

5.2. The Nameserver Object Class
5.2. 名称服务器对象类

The nameserver object class represents information regarding DNS nameservers used in both forward and reverse DNS. RIRs and some DNRs register or expose nameserver information as an attribute of a domain name, while other DNRs model nameservers as "first class objects".

nameserver对象类表示有关在正向和反向DNS中使用的DNS名称服务器的信息。RIR和一些DNR将名称服务器信息注册或公开为域名的属性,而其他DNR将名称服务器建模为“第一类对象”。

The nameserver object class accommodates both models and degrees of variation in between.

nameserver对象类同时容纳模型和模型之间的变化程度。

The following is an example of a nameserver object.

以下是名称服务器对象的示例。

     {
       "objectClassName" : "nameserver",
       "handle" : "XXXX",
       "ldhName" : "ns1.xn--fo-5ja.example",
       "unicodeName" : "ns1.foo.example",
       "status" : [ "active" ],
       "ipAddresses" :
       {
         "v4": [ "192.0.2.1", "192.0.2.2" ],
         "v6": [ "2001:db8::123" ]
       },
       "remarks" :
       [
         {
           "description" :
           [
             "She sells sea shells down by the sea shore.",
             "Originally written by Terry Sullivan."
           ]
         }
       ],
       "links" :
       [
         {
           "value" : "http://example.net/nameserver/xxxx",
           "rel" : "self",
           "href" : "http://example.net/nameserver/xxxx",
           "type" : "application/rdap+json"
         }
       ],
       "port43" : "whois.example.net",
       "events" :
       [
         {
           "eventAction" : "registration",
           "eventDate" : "1990-12-31T23:59:59Z"
         },
         {
           "eventAction" : "last changed",
           "eventDate" : "1991-12-31T23:59:59Z",
           "eventActor" : "joe@example.com"
         }
       ]
     }
        
     {
       "objectClassName" : "nameserver",
       "handle" : "XXXX",
       "ldhName" : "ns1.xn--fo-5ja.example",
       "unicodeName" : "ns1.foo.example",
       "status" : [ "active" ],
       "ipAddresses" :
       {
         "v4": [ "192.0.2.1", "192.0.2.2" ],
         "v6": [ "2001:db8::123" ]
       },
       "remarks" :
       [
         {
           "description" :
           [
             "She sells sea shells down by the sea shore.",
             "Originally written by Terry Sullivan."
           ]
         }
       ],
       "links" :
       [
         {
           "value" : "http://example.net/nameserver/xxxx",
           "rel" : "self",
           "href" : "http://example.net/nameserver/xxxx",
           "type" : "application/rdap+json"
         }
       ],
       "port43" : "whois.example.net",
       "events" :
       [
         {
           "eventAction" : "registration",
           "eventDate" : "1990-12-31T23:59:59Z"
         },
         {
           "eventAction" : "last changed",
           "eventDate" : "1991-12-31T23:59:59Z",
           "eventActor" : "joe@example.com"
         }
       ]
     }
        

Figure 18

图18

Figure 18 is an example of a nameserver object with all values given. Registries using a first-class nameserver data model would embed this in domain objects as well as allowing references to it with the "/nameserver" query type (all depending on the registry operators policy). Other registries may pare back the information as needed. Figure 19 is an example of a nameserver object as would be found in RIRs and some DNRs, while Figure 20 is an example of a nameserver object as would be found in other DNRs.

图18是给定所有值的nameserver对象的示例。使用一级nameserver数据模型的注册表将把它嵌入域对象中,并允许使用“/nameserver”查询类型引用它(所有这些都取决于注册表操作员策略)。其他登记处可根据需要缩减信息。图19是在RIR和一些DNR中可以找到的名称服务器对象的示例,而图20是在其他DNR中可以找到的名称服务器对象的示例。

The following is an example of the simplest nameserver object:

以下是最简单的nameserver对象的示例:

     {
       "objectClassName" : "nameserver",
       "ldhName" : "ns1.example.com"
     }
        
     {
       "objectClassName" : "nameserver",
       "ldhName" : "ns1.example.com"
     }
        

Figure 19

图19

The following is an example of a simple nameserver object that might be commonly used by DNRs:

以下是DNR可能常用的简单名称服务器对象的示例:

     {
       "objectClassName" : "nameserver",
       "ldhName" : "ns1.example.com",
       "ipAddresses" : { "v6" : [ "2001:db8::123", "2001:db8::124" ] }
     }
        
     {
       "objectClassName" : "nameserver",
       "ldhName" : "ns1.example.com",
       "ipAddresses" : { "v6" : [ "2001:db8::123", "2001:db8::124" ] }
     }
        

Figure 20

图20

As nameservers can be modeled by some registries to be first-class objects, they may also have an array of entities (Section 5.1) embedded to signify parties responsible for the maintenance, registrations, etc., of the nameservers.

由于名称服务器可以由一些注册中心建模为一级对象,它们还可以嵌入一组实体(第5.1节),以表示负责名称服务器维护、注册等的各方。

The following is an elided example of a nameserver with embedded entities.

下面是一个省略的带有嵌入式实体的名称服务器示例。

   {
     "objectClassName" : "nameserver",
     "handle" : "XXXX",
     "ldhName" : "ns1.xn--fo-5ja.example",
     ...
     "entities" :
     [
       ...
     ],
     ...
   }
        
   {
     "objectClassName" : "nameserver",
     "handle" : "XXXX",
     "ldhName" : "ns1.xn--fo-5ja.example",
     ...
     "entities" :
     [
       ...
     ],
     ...
   }
        

Figure 21

图21

The nameserver object class can contain the following members:

nameserver对象类可以包含以下成员:

o objectClassName -- the string "nameserver"

o objectClassName——字符串“nameserver”

o handle -- a string representing a registry unique identifier of the nameserver

o 句柄——表示名称服务器的注册表唯一标识符的字符串

o ldhName -- a string containing the LDH name of the nameserver (see Section 3)

o ldhName——包含名称服务器的LDH名称的字符串(请参见第3节)

o unicodeName -- a string containing a DNS Unicode name of the nameserver (see Section 3)

o unicodeName——包含名称服务器的DNS Unicode名称的字符串(参见第3节)

o ipAddresses -- an object containing the following members:

o IPAddresss--包含以下成员的对象:

* v6 -- an array of strings containing IPv6 addresses of the nameserver

* v6--包含名称服务器IPv6地址的字符串数组

* v4 -- an array of strings containing IPv4 addresses of the nameserver

* v4—包含名称服务器IPv4地址的字符串数组

o entities -- an array of entity objects as defined by Section 5.1

o 实体——第5.1节定义的实体对象数组

o status -- see Section 4.6

o 状态——见第4.6节

o remarks -- see Section 4.3

o 备注——见第4.3节

o links -- see Section 4.2

o 链接——见第4.2节

o port43 -- see Section 4.7

o 端口43——见第4.7节

o events -- see Section 4.5

o 事件——见第4.5节

5.3. The Domain Object Class
5.3. 域对象类

The domain object class represents a DNS name and point of delegation. For RIRs, these delegation points are in the reverse DNS tree, whereas for DNRs, these delegation points are in the forward DNS tree.

域对象类表示DNS名称和委派点。对于RIR,这些委派点位于反向DNS树中,而对于DNR,这些委派点位于正向DNS树中。

In both cases, the high-level structure of the domain object class consists of information about the domain registration, nameserver information related to the domain name, and entities related to the domain name (e.g., registrant information, contacts, etc.).

在这两种情况下,域对象类的高级结构都包含有关域注册的信息、与域名相关的名称服务器信息以及与域名相关的实体(例如,注册人信息、联系人等)。

The following is an elided example of the domain object showing the high-level structure:

以下是显示高级结构的域对象的省略示例:

   {
     "objectClassName" : "domain",
     "handle" : "XXX",
     "ldhName" : "blah.example.com",
     ...
     "nameservers" :
     [
       ...
     ],
     ...
     "entities" :
     [
       ...
     ]
   }
        
   {
     "objectClassName" : "domain",
     "handle" : "XXX",
     "ldhName" : "blah.example.com",
     ...
     "nameservers" :
     [
       ...
     ],
     ...
     "entities" :
     [
       ...
     ]
   }
        

Figure 22

图22

The domain object class can contain the following members:

域对象类可以包含以下成员:

o objectClassName -- the string "domain"

o objectClassName——字符串“域”

o handle -- a string representing a registry unique identifier of the domain object instance

o 句柄——表示域对象实例的注册表唯一标识符的字符串

o ldhName -- a string describing a domain name in LDH form as described in Section 3

o ldhName——如第3节所述,以LDH形式描述域名的字符串

o unicodeName -- a string containing a domain name with U-labels as described in Section 3

o unicodeName——一个字符串,包含一个带有U标签的域名,如第3节所述

o variants -- an array of objects, each containing the following values:

o 变量--对象数组,每个对象包含以下值:

* relation -- an array of strings, with each string denoting the relationship between the variants and the containing domain object (see Section 10.2.5 for a list of suggested variant relations).

* 关系——字符串数组,每个字符串表示变量和包含域对象之间的关系(建议的变量关系列表见第10.2.5节)。

* idnTable -- the name of the Internationalized Domain Name (IDN) table of codepoints, such as one listed with the IANA (see IDN tables [IANA_IDNTABLES]).

* IDN表——代码点的国际化域名(IDN)表的名称,如与IANA一起列出的(参见IDN表[IANA_IDN表])。

* variantNames -- an array of objects, with each object containing an "ldhName" member and a "unicodeName" member (see Section 3).

* variantNames——一个对象数组,每个对象包含一个“ldhName”成员和一个“unicodeName”成员(参见第3节)。

o nameservers -- an array of nameserver objects as defined by Section 5.2

o 名称服务器——第5.2节定义的名称服务器对象数组

o secureDNS -- an object with the following members:

o secureDNS--具有以下成员的对象:

* zoneSigned -- true if the zone has been signed, false otherwise.

* zoneSigned——如果区域已签名,则为true,否则为false。

* delegationSigned -- boolean true if there are DS records in the parent, false otherwise.

* delegationSigned——如果父级中存在DS记录,则布尔值为true,否则为false。

* maxSigLife -- an integer representing the signature lifetime in seconds to be used when creating the RRSIG DS record in the parent zone [RFC5910].

* maxSigLife——一个整数,表示在父区域[RFC5910]中创建RRSIG DS记录时使用的签名生存期(以秒为单位)。

* dsData -- an array of objects, each with the following members:

* dsData—对象数组,每个对象具有以下成员:

+ keyTag -- an integer as specified by the key tag field of a DNS DS record as specified by [RFC4034] in presentation format

+ keyTag——由[RFC4034]以表示格式指定的DNS DS记录的key tag字段指定的整数

+ algorithm -- an integer as specified by the algorithm field of a DNS DS record as described by RFC 4034 in presentation format

+ algorithm——由RFC 4034以表示格式描述的DNS DS记录的algorithm字段指定的整数

+ digest -- a string as specified by the digest field of a DNS DS record as specified by RFC 4034 in presentation format

+ 摘要——由RFC 4034以表示格式指定的DNS DS记录的摘要字段指定的字符串

+ digestType -- an integer as specified by the digest type field of a DNS DS record as specified by RFC 4034 in presentation format

+ digestType——由RFC 4034以表示格式指定的DNS DS记录的digest type字段指定的整数

+ events -- see Section 4.5

+ 事件——见第4.5节

+ links -- see Section 4.2

+ 链接——见第4.2节

* keyData -- an array of objects, each with the following members:

* keyData--对象数组,每个对象都有以下成员:

+ flags -- an integer representing the flags field value in the DNSKEY record [RFC4034] in presentation format

+ flags——一个整数,表示DNSKEY记录[RFC4034]中表示格式的flags字段值

+ protocol -- an integer representation of the protocol field value of the DNSKEY record [RFC4034] in presentation format

+ 协议——DNSKEY记录[RFC4034]的协议字段值在表示格式中的整数表示

+ publicKey -- a string representation of the public key in the DNSKEY record [RFC4034] in presentation format

+ publicKey——DNSKEY记录[RFC4034]中以表示格式表示的公钥的字符串

+ algorithm -- an integer as specified by the algorithm field of a DNSKEY record as specified by [RFC4034] in presentation format

+ algorithm——由[RFC4034]以表示格式指定的DNSKEY记录的algorithm字段指定的整数

+ events -- see Section 4.5

+ 事件——见第4.5节

+ links -- see Section 4.2

+ 链接——见第4.2节

See Appendix D for background information on these objects.

有关这些对象的背景信息,请参见附录D。

o entities -- an array of entity objects as defined by Section 5.1

o 实体——第5.1节定义的实体对象数组

o status -- see Section 4.6

o 状态——见第4.6节

o publicIds -- see Section 4.8

o PublicID——见第4.8节

o remarks -- see Section 4.3

o 备注——见第4.3节

o links -- see Section 4.2

o 链接——见第4.2节

o port43 -- see Section 4.7

o 端口43——见第4.7节

o events -- see Section 4.5

o 事件——见第4.5节

o network -- represents the IP network for which a reverse DNS domain is referenced. See Section 5.4

o 网络--表示引用反向DNS域的IP网络。见第5.4节

The following is an example of a JSON domain object representing a reverse DNS delegation point that might be served by an RIR.

下面是一个JSON域对象的示例,表示可能由RIR提供服务的反向DNS委托点。

   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "0.2.192.in-addr.arpa",
     "nameservers" :
     [
       {
         "objectClassName" : "nameserver",
         "ldhName" : "ns1.rir.example"
       },
       {
         "objectClassName" : "nameserver",
         "ldhName" : "ns2.rir.example"
       }
     ],
     "secureDNS":
     {
       "delegationSigned": true,
       "dsData":
       [
         {
           "keyTag": 12345,
           "algorithm": 3,
           "digestType": 1,
           "digest": "49FD46E6C4B45C55D4AC"
         }
       ]
     },
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value": "http://example.net/domain/XXXX",
         "rel" : "self",
         "href" : "http://example.net/domain/XXXXX",
         "type" : "application/rdap+json"
        
   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "0.2.192.in-addr.arpa",
     "nameservers" :
     [
       {
         "objectClassName" : "nameserver",
         "ldhName" : "ns1.rir.example"
       },
       {
         "objectClassName" : "nameserver",
         "ldhName" : "ns2.rir.example"
       }
     ],
     "secureDNS":
     {
       "delegationSigned": true,
       "dsData":
       [
         {
           "keyTag": 12345,
           "algorithm": 3,
           "digestType": 1,
           "digest": "49FD46E6C4B45C55D4AC"
         }
       ]
     },
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value": "http://example.net/domain/XXXX",
         "rel" : "self",
         "href" : "http://example.net/domain/XXXXX",
         "type" : "application/rdap+json"
        
       }
     ],
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
        
       }
     ],
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
        
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value": "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z",
             "eventActor" : "joe@example.com"
           }
         ]
       }
     ],
     "network" :
     {
       "objectClassName" : "ip network",
        
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value": "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z",
             "eventActor" : "joe@example.com"
           }
         ]
       }
     ],
     "network" :
     {
       "objectClassName" : "ip network",
        
       "handle" : "XXXX-RIR",
       "startAddress" : "192.0.2.0",
       "endAddress" : "192.0.2.255",
       "ipVersion" : "v6",
       "name": "NET-RTR-1",
       "type" : "DIRECT ALLOCATION",
       "country" : "AU",
       "parentHandle" : "YYYY-RIR",
       "status" : [ "active" ]
     }
   }
        
       "handle" : "XXXX-RIR",
       "startAddress" : "192.0.2.0",
       "endAddress" : "192.0.2.255",
       "ipVersion" : "v6",
       "name": "NET-RTR-1",
       "type" : "DIRECT ALLOCATION",
       "country" : "AU",
       "parentHandle" : "YYYY-RIR",
       "status" : [ "active" ]
     }
   }
        

Figure 23

图23

The following is an example of a JSON domain object representing a forward DNS delegation point that might be served by a DNR.

下面是一个JSON域对象的示例,表示可能由DNR提供服务的前向DNS委派点。

   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "xn--fo-5ja.example",
     "unicodeName" : "foo.example",
     "variants" :
     [
       {
         "relation" : [ "registered", "conjoined" ],
         "variantNames" :
         [
           {
             "ldhName" : "xn--fo-cka.example",
             "unicodeName" : "foo.example"
           },
           {
             "ldhName" : "xn--fo-fka.example",
             "unicodeName" : "foo.example"
           }
         ]
       },
       {
         "relation" : [ "unregistered", "registration restricted" ],
         "idnTable": ".EXAMPLE Swedish",
         "variantNames" :
         [
           {
             "ldhName": "xn--fo-8ja.example",
             "unicodeName" : "foo.example"
           }
         ]
        
   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "xn--fo-5ja.example",
     "unicodeName" : "foo.example",
     "variants" :
     [
       {
         "relation" : [ "registered", "conjoined" ],
         "variantNames" :
         [
           {
             "ldhName" : "xn--fo-cka.example",
             "unicodeName" : "foo.example"
           },
           {
             "ldhName" : "xn--fo-fka.example",
             "unicodeName" : "foo.example"
           }
         ]
       },
       {
         "relation" : [ "unregistered", "registration restricted" ],
         "idnTable": ".EXAMPLE Swedish",
         "variantNames" :
         [
           {
             "ldhName": "xn--fo-8ja.example",
             "unicodeName" : "foo.example"
           }
         ]
        
       }
     ],
     "status" : [ "locked", "transfer prohibited" ],
     "publicIds":[
       {
         "type":"ENS_Auth ID",
         "identifier":"1234567890"
       }
     ],
     "nameservers" :
     [
       {
         "objectClassName" : "nameserver",
         "handle" : "XXXX",
         "ldhName" : "ns1.example.com",
         "status" : [ "active" ],
         "ipAddresses" :
         {
           "v6": [ "2001:db8::123", "2001:db8::124" ],
           "v4": [ "192.0.2.1", "192.0.2.2" ]
         },
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/nameserver/XXXX",
             "rel" : "self",
             "href" : "http://example.net/nameserver/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
        
       }
     ],
     "status" : [ "locked", "transfer prohibited" ],
     "publicIds":[
       {
         "type":"ENS_Auth ID",
         "identifier":"1234567890"
       }
     ],
     "nameservers" :
     [
       {
         "objectClassName" : "nameserver",
         "handle" : "XXXX",
         "ldhName" : "ns1.example.com",
         "status" : [ "active" ],
         "ipAddresses" :
         {
           "v6": [ "2001:db8::123", "2001:db8::124" ],
           "v4": [ "192.0.2.1", "192.0.2.2" ]
         },
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/nameserver/XXXX",
             "rel" : "self",
             "href" : "http://example.net/nameserver/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
        
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       },
       {
         "objectClassName" : "nameserver",
         "handle" : "XXXX",
         "ldhName" : "ns2.example.com",
         "status" : [ "active" ],
         "ipAddresses" :
         {
           "v6" : [ "2001:db8::125", "2001:db8::126" ],
           "v4" : [ "192.0.2.3", "192.0.2.4" ]
         },
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/nameserver/XXXX",
             "rel" : "self",
             "href" : "http://example.net/nameserver/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ],
     "secureDNS":
     {
        
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       },
       {
         "objectClassName" : "nameserver",
         "handle" : "XXXX",
         "ldhName" : "ns2.example.com",
         "status" : [ "active" ],
         "ipAddresses" :
         {
           "v6" : [ "2001:db8::125", "2001:db8::126" ],
           "v4" : [ "192.0.2.3", "192.0.2.4" ]
         },
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/nameserver/XXXX",
             "rel" : "self",
             "href" : "http://example.net/nameserver/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ],
     "secureDNS":
     {
        
        "zoneSigned": true,
        "delegationSigned": true,
        "maxSigLife": 604800,
        "keyData":
        [
          {
            "flags": 257,
            "protocol": 3,
            "algorithm": 1,
            "publicKey": "AQPJ////4Q==",
            "events":
            [
              {
                "eventAction": "last changed",
                "eventDate": "2012-07-23T05:15:47Z"
              }
            ]
          }
        ]
     },
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value": "http://example.net/domain/XXXX",
         "rel" : "self",
         "href" : "http://example.net/domain/XXXX",
         "type" : "application/rdap+json"
       }
     ],
     "port43" : "whois.example.net",
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
        
        "zoneSigned": true,
        "delegationSigned": true,
        "maxSigLife": 604800,
        "keyData":
        [
          {
            "flags": 257,
            "protocol": 3,
            "algorithm": 1,
            "publicKey": "AQPJ////4Q==",
            "events":
            [
              {
                "eventAction": "last changed",
                "eventDate": "2012-07-23T05:15:47Z"
              }
            ]
          }
        ]
     },
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value": "http://example.net/domain/XXXX",
         "rel" : "self",
         "href" : "http://example.net/domain/XXXX",
         "type" : "application/rdap+json"
       }
     ],
     "port43" : "whois.example.net",
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
        
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       },
       {
         "eventAction" : "transfer",
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       },
       {
         "eventAction" : "expiration",
         "eventDate" : "2016-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
        
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       },
       {
         "eventAction" : "transfer",
         "eventDate" : "1991-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       },
       {
         "eventAction" : "expiration",
         "eventDate" : "2016-12-31T23:59:59Z",
         "eventActor" : "joe@example.com"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
        
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "status" : [ "validated", "locked" ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "status" : [ "validated", "locked" ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        

Figure 24

图24

5.4. The IP Network Object Class
5.4. IP网络对象类

The IP network object class models IP network registrations found in RIRs and is the expected response for the "/ip" query as defined by [RFC7482]. There is no equivalent object class for DNRs. The high-level structure of the IP network object class consists of information about the network registration and entities related to the IP network (e.g., registrant information, contacts, etc.).

IP网络对象类对RIRs中的IP网络注册进行建模,是[RFC7482]定义的“/IP”查询的预期响应。DNR没有等效的对象类。IP网络对象类的高级结构包括有关网络注册和与IP网络相关的实体的信息(例如,注册者信息、联系人等)。

The following is an elided example of the IP network object type showing the high-level structure:

以下是显示高级结构的IP网络对象类型的省略示例:

   {
     "objectClassName" : "ip network",
     "handle" : "XXX",
     ...
     "entities" :
     [
       ...
     ]
   }
        
   {
     "objectClassName" : "ip network",
     "handle" : "XXX",
     ...
     "entities" :
     [
       ...
     ]
   }
        

Figure 25

图25

The following is an example of the JSON object for the network registration information.

以下是网络注册信息的JSON对象示例。

   {
     "objectClassName" : "ip network",
     "handle" : "XXXX-RIR",
     "startAddress" : "2001:db8::",
     "endAddress" : "2001:db8:0:ffff:ffff:ffff:ffff:ffff",
     "ipVersion" : "v6",
     "name": "NET-RTR-1",
     "type" : "DIRECT ALLOCATION",
     "country" : "AU",
     "parentHandle" : "YYYY-RIR",
     "status" : [ "active" ],
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
        
   {
     "objectClassName" : "ip network",
     "handle" : "XXXX-RIR",
     "startAddress" : "2001:db8::",
     "endAddress" : "2001:db8:0:ffff:ffff:ffff:ffff:ffff",
     "ipVersion" : "v6",
     "name": "NET-RTR-1",
     "type" : "DIRECT ALLOCATION",
     "country" : "AU",
     "parentHandle" : "YYYY-RIR",
     "status" : [ "active" ],
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
        
     "links" :
     [
       {
         "value" : "http://example.net/ip/2001:db8::/48",
         "rel" : "self",
         "href" : "http://example.net/ip/2001:db8::/48",
         "type" : "application/rdap+json"
       },
       {
         "value" : "http://example.net/ip/2001:db8::/48",
         "rel" : "up",
         "href" : "http://example.net/ip/2001:C00::/23",
         "type" : "application/rdap+json"
       }
     ],
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
        
     "links" :
     [
       {
         "value" : "http://example.net/ip/2001:db8::/48",
         "rel" : "self",
         "href" : "http://example.net/ip/2001:db8::/48",
         "type" : "application/rdap+json"
       },
       {
         "value" : "http://example.net/ip/2001:db8::/48",
         "rel" : "up",
         "href" : "http://example.net/ip/2001:C00::/23",
         "type" : "application/rdap+json"
       }
     ],
     "events" :
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
        
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
        
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/xxxx",
             "rel" : "self",
             "href" : "http://example.net/entity/xxxx",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
        
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        

Figure 26

图26

The IP network object class can contain the following members:

IP网络对象类可以包含以下成员:

o objectClassName -- the string "ip network"

o objectClassName——字符串“ip网络”

o handle -- a string representing an RIR-unique identifier of the network registration

o 句柄——表示网络注册的RIR唯一标识符的字符串

o startAddress -- the starting IP address of the network, either IPv4 or IPv6

o startAddress—网络的起始IP地址,IPv4或IPv6

o endAddress -- the ending IP address of the network, either IPv4 or IPv6

o endAddress—网络的结束IP地址,IPv4或IPv6

o ipVersion -- a string signifying the IP protocol version of the network: "v4" signifies an IPv4 network, and "v6" signifies an IPv6 network

o ipVersion——表示网络IP协议版本的字符串:“v4”表示IPv4网络,“v6”表示IPv6网络

o name -- an identifier assigned to the network registration by the registration holder

o 名称--由注册持有者分配给网络注册的标识符

o type -- a string containing an RIR-specific classification of the network

o 类型--包含特定于RIR的网络分类的字符串

o country -- a string containing the two-character country code of the network

o country——包含网络的两个字符的国家代码的字符串

o parentHandle -- a string containing an RIR-unique identifier of the parent network of this network registration

o parentHandle--包含此网络注册的父网络的RIR唯一标识符的字符串

o status -- an array of strings indicating the state of the IP network

o status——表示IP网络状态的字符串数组

o entities -- an array of entity objects as defined by Section 5.1

o 实体——第5.1节定义的实体对象数组

o remarks -- see Section 4.3

o 备注——见第4.3节

o links -- see Section 4.2

o 链接——见第4.2节

o port43 -- see Section 4.7

o 端口43——见第4.7节

o events -- see Section 4.5

o 事件——见第4.5节

5.5. Autonomous System Number Entity Object Class
5.5. 自治系统编号实体对象类

The Autonomous System number (autnum) object class models Autonomous System number registrations found in RIRs and represents the expected response to an "/autnum" query as defined by [RFC7482]. There is no equivalent object class for DNRs. The high-level structure of the autnum object class consists of information about the network registration and entities related to the autnum registration (e.g., registrant information, contacts, etc.) and is similar to the IP network entity object class.

自治系统编号(autnum)对象类对RIRs中的自治系统编号注册进行建模,并表示对[RFC7482]定义的“/autnum”查询的预期响应。DNR没有等效的对象类。autnum对象类的高级结构由有关网络注册的信息和与autnum注册相关的实体(例如,注册人信息、联系人等)组成,类似于IP网络实体对象类。

The following is an example of a JSON object representing an autnum.

下面是表示autnum的JSON对象的示例。

   {
     "objectClassName" : "autnum",
     "handle" : "XXXX-RIR",
     "startAutnum" : 10,
     "endAutnum" : 15,
     "name": "AS-RTR-1",
     "type" : "DIRECT ALLOCATION",
     "status" : [ "active" ],
     "country": "AU",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value" : "http://example.net/autnum/xxxx",
         "rel" : "self",
         "href" : "http://example.net/autnum/xxxx",
         "type" : "application/rdap+json"
       }
     ],
     "events" :
        
   {
     "objectClassName" : "autnum",
     "handle" : "XXXX-RIR",
     "startAutnum" : 10,
     "endAutnum" : 15,
     "name": "AS-RTR-1",
     "type" : "DIRECT ALLOCATION",
     "status" : [ "active" ],
     "country": "AU",
     "remarks" :
     [
       {
         "description" :
         [
           "She sells sea shells down by the sea shore.",
           "Originally written by Terry Sullivan."
         ]
       }
     ],
     "links" :
     [
       {
         "value" : "http://example.net/autnum/xxxx",
         "rel" : "self",
         "href" : "http://example.net/autnum/xxxx",
         "type" : "application/rdap+json"
       }
     ],
     "events" :
        
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
        
     [
       {
         "eventAction" : "registration",
         "eventDate" : "1990-12-31T23:59:59Z"
       },
       {
         "eventAction" : "last changed",
         "eventDate" : "1991-12-31T23:59:59Z"
       }
     ],
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
        
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/XXXX",
             "rel" : "self",
             "href" : "http://example.net/entity/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links" :
         [
           {
             "value" : "http://example.net/entity/XXXX",
             "rel" : "self",
             "href" : "http://example.net/entity/XXXX",
             "type" : "application/rdap+json"
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        

Figure 27

图27

The Autonomous System number object class can contain the following members:

自治系统编号对象类可以包含以下成员:

o objectClassName -- the string "autnum"

o objectClassName——字符串“autnum”

o handle -- a string representing an RIR-unique identifier of the autnum registration

o 句柄——表示autnum注册的RIR唯一标识符的字符串

o startAutnum -- a number representing the starting number [RFC5396] in the block of Autonomous System numbers

o startAutnum——表示自治系统编号块中起始编号[RFC5396]的数字

o endAutnum -- a number representing the ending number [RFC5396] in the block of Autonomous System numbers

o endAutnum——表示自治系统编号块中的结束编号[RFC5396]的数字

o name -- an identifier assigned to the autnum registration by the registration holder

o 名称——由注册持有者分配给autnum注册的标识符

o type -- a string containing an RIR-specific classification of the autnum

o 类型——包含autnum的RIR特定分类的字符串

o status -- an array of strings indicating the state of the autnum

o status——表示autnum状态的字符串数组

o country -- a string containing the name of the two-character country code of the autnum

o country——一个字符串,包含autnum的两个字符的国家代码的名称

o entities -- an array of entity objects as defined by Section 5.1

o 实体——第5.1节定义的实体对象数组

o remarks -- see Section 4.3

o 备注——见第4.3节

o links -- see Section 4.2

o 链接——见第4.2节

o port43 -- see Section 4.7

o 端口43——见第4.7节

o events -- see Section 4.5

o 事件——见第4.5节

6. Error Response Body
6. 错误响应体

Some non-answer responses may return entity bodies with information that could be more descriptive.

一些非答案回答可能返回实体实体,其中包含更具描述性的信息。

The basic structure of that response is an object class containing an error code number (corresponding to the HTTP response code) followed by a string named "title" and an array of strings named "description".

该响应的基本结构是一个对象类,其中包含一个错误代码(对应于HTTP响应代码),后跟一个名为“title”的字符串和一个名为“description”的字符串数组。

This is an example of the common response body.

这是公共响应机构的一个示例。

   {
     "errorCode": 418,
     "title": "Your Beverage Choice is Not Available",
     "description":
     [
       "I know coffee has more ummppphhh.",
       "Sorry, dude!"
     ]
   }
        
   {
     "errorCode": 418,
     "title": "Your Beverage Choice is Not Available",
     "description":
     [
       "I know coffee has more ummppphhh.",
       "Sorry, dude!"
     ]
   }
        

Figure 28

图28

This is an example of the common response body with an rdapConformance and notices data structures:

这是一个具有rdapConformance和notices数据结构的公共响应主体示例:

   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Beverage Policy",
         "description" :
         [
           "Beverages with caffeine for keeping horses awake."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/ip/192.0.2.0/24",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/redaction_policy.html"
           }
         ]
       }
     ],
     "lang" : "en",
     "errorCode": 418,
     "title": "Your beverage choice is not available",
     "description":
     [
       "I know coffee has more ummppphhh.",
       "Sorry, dude!"
     ]
   }
        
   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Beverage Policy",
         "description" :
         [
           "Beverages with caffeine for keeping horses awake."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/ip/192.0.2.0/24",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/redaction_policy.html"
           }
         ]
       }
     ],
     "lang" : "en",
     "errorCode": 418,
     "title": "Your beverage choice is not available",
     "description":
     [
       "I know coffee has more ummppphhh.",
       "Sorry, dude!"
     ]
   }
        

Figure 29

图29

7. Responding to Help Queries
7. 响应帮助查询

The appropriate response to /help queries as defined by [RFC7482] is to use the notices structure as defined in Section 4.3.

[RFC7482]中定义的适当响应/帮助查询是使用第4.3节中定义的通知结构。

This is an example of a response to a /help query including the rdapConformance data structure.

这是对包含rdapConformance数据结构的a/help查询的响应示例。

   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Authentication Policy",
         "description" :
         [
           "Access to sensitive data for users with proper credentials."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/auth_policy.html"
           }
         ]
       }
     ]
   }
        
   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Authentication Policy",
         "description" :
         [
           "Access to sensitive data for users with proper credentials."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/auth_policy.html"
           }
         ]
       }
     ]
   }
        

Figure 30

图30

8. Responding To Searches
8. 回应搜查

[RFC7482] specifies three types of searches: domains, nameservers, and entities. Responses to these searches take the form of an array of object instances where each instance is an appropriate object class for the search (i.e., a search for /domains yields an array of domain object instances). These arrays are contained within the response object.

[RFC7482]指定三种类型的搜索:域、名称服务器和实体。对这些搜索的响应采取对象实例数组的形式,其中每个实例都是搜索的适当对象类(即,搜索/domains会生成域对象实例数组)。这些数组包含在响应对象中。

The names of the arrays are as follows:

阵列的名称如下:

o for /domains searches, the array is "domainSearchResults"

o 对于/domains搜索,数组为“domainSearchResults”

o for /nameservers searches, the array is "nameserverSearchResults"

o 对于/nameservers搜索,数组为“nameserverSearchResults”

o for /entities searches, the array is "entitySearchResults"

o 对于/实体搜索,数组为“entitySearchResults”

The following is an elided example of a response to a /domains search.

以下是对a/domains搜索的响应的省略示例。

   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     ...
     "domainSearchResults" :
     [
       {
         "objectClassName" : "domain",
         "handle" : "1-XXXX",
         "ldhName" : "1.example.com",
         ...
       },
       {
         "objectClassName" : "domain",
         "handle" : "2-XXXX",
         "ldhName" : "2.example.com",
         ...
       }
     ]
   }
        
   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     ...
     "domainSearchResults" :
     [
       {
         "objectClassName" : "domain",
         "handle" : "1-XXXX",
         "ldhName" : "1.example.com",
         ...
       },
       {
         "objectClassName" : "domain",
         "handle" : "2-XXXX",
         "ldhName" : "2.example.com",
         ...
       }
     ]
   }
        

Figure 31

图31

9. Indicating Truncated Responses
9. 表示截断的响应

In cases where the data of a response needs to be limited or parts of the data need to be omitted, the response is considered "truncated". A truncated response is still valid JSON, but some of the results in a search set or some of the data in an object are not provided by the server. A server may indicate this by including a typed notice in the response object.

在需要限制响应数据或需要省略部分数据的情况下,响应被视为“截断”。截断的响应仍然是有效的JSON,但服务器不提供搜索集中的某些结果或对象中的某些数据。服务器可以通过在响应对象中包含键入的通知来指示这一点。

The following is an elided example of a search response that has been truncated.

以下是被截断的搜索响应的省略示例。

   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Search Policy",
         "type" : "result set truncated due to authorization",
         "description" :
         [
           "Search results are limited to 25 per day per querying IP."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/search_policy.html"
           }
         ]
       }
     ],
     "domainSearchResults" :
     [
       ...
     ]
   }
        
   {
     "rdapConformance" :
     [
       "rdap_level_0"
     ],
     "notices" :
     [
       {
         "title" : "Search Policy",
         "type" : "result set truncated due to authorization",
         "description" :
         [
           "Search results are limited to 25 per day per querying IP."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/search_policy.html"
           }
         ]
       }
     ],
     "domainSearchResults" :
     [
       ...
     ]
   }
        

Figure 32

图32

A similar technique can be used with a typed remark where a single object has been returned and data in that object has been truncated. Such an example might be an entity object with only a partial set of the IP networks associated with it.

类似的技术可以用于类型化备注,其中返回了单个对象,并且该对象中的数据被截断。这样一个例子可能是一个实体对象,它只有一部分和之相关联的IP网络。

The following is an elided example of an entity truncated data.

以下是实体截断数据的省略示例。

   {
     "objectClassName" : "entity",
     "handle" : "ANENTITY",
     "roles" : [ "registrant" ],
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle": "ANEMBEDDEDENTITY",
         "roles" : [ "technical" ],
         ...
       },
       ...
     ],
     "networks" :
     [
       ...
     ],
     ...
     "remarks" :
     [
       {
         "title" : "Data Policy",
         "type" : "object truncated due to unexplainable reason",
         "description" :
         [
           "Some of the data in this object has been removed."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/data_policy.html"
           }
         ]
       }
     ]
   }
        
   {
     "objectClassName" : "entity",
     "handle" : "ANENTITY",
     "roles" : [ "registrant" ],
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle": "ANEMBEDDEDENTITY",
         "roles" : [ "technical" ],
         ...
       },
       ...
     ],
     "networks" :
     [
       ...
     ],
     ...
     "remarks" :
     [
       {
         "title" : "Data Policy",
         "type" : "object truncated due to unexplainable reason",
         "description" :
         [
           "Some of the data in this object has been removed."
         ],
         "links" :
         [
           {
             "value" : "http://example.net/help",
             "rel" : "alternate",
             "type" : "text/html",
             "href" : "http://www.example.com/data_policy.html"
           }
         ]
       }
     ]
   }
        

Figure 33

图33

10. IANA Considerations
10. IANA考虑
10.1. RDAP JSON Media Type Registration
10.1. RDAP JSON媒体类型注册

This specification registers the "application/rdap+json" media type.

本规范注册了“应用程序/rdap+json”媒体类型。

Type name: application

类型名称:应用程序

Subtype name: rdap+json

子类型名称:rdap+json

Required parameters: n/a

所需参数:不适用

Encoding considerations: See Section 3.1 of [RFC6839].

编码注意事项:见[RFC6839]第3.1节。

Security considerations: The media represented by this identifier does not have security considerations beyond that found in Section 6 of [RFC7159].

安全注意事项:除[RFC7159]第6节中的安全注意事项外,此标识符表示的媒体没有其他安全注意事项。

Interoperability considerations: There are no known interoperability problems regarding this media format.

互操作性注意事项:此媒体格式没有已知的互操作性问题。

Published specification: RFC 7483

已发布规范:RFC 7483

Applications that use this media type: Implementations of the Registration Data Access Protocol (RDAP).

使用此媒体类型的应用程序:注册数据访问协议(RDAP)的实现。

Additional information: This media type is a product of the IETF WEIRDS working group. The WEIRDS charter, information on the WEIRDS mailing list, and other documents produced by the WEIRDS working group can be found at <https://datatracker.ietf.org/wg/weirds/>.

附加信息:此媒体类型是IETF WEIRDS工作组的产品。WEIRDS章程、WEIRDS邮件列表上的信息以及WEIRDS工作组制作的其他文件可在<https://datatracker.ietf.org/wg/weirds/>.

      Person & email address to contact for further information: IESG
      <iesg@ietf.org>
        
      Person & email address to contact for further information: IESG
      <iesg@ietf.org>
        

Intended usage: COMMON

预期用途:普通

Restrictions on usage: none

使用限制:无

Author: Andy Newton

作者:安迪·牛顿

Change controller: IETF

更改控制器:IETF

Provisional Registration: No (upon publication of this RFC)

临时注册:否(本RFC发布后)

10.2. JSON Values Registry
10.2. JSON值注册表

IANA has created a category in the protocol registries labeled "Registration Data Access Protocol (RDAP)", and within that category, IANA has established a URL-referenceable, stand-alone registry labeled "RDAP JSON Values". This new registry is for use in the notices and remarks (Section 4.3), status (Section 4.6), role (Section 5.1), event action (Section 4.5), and domain variant relation (Section 5.3) fields specified in RDAP.

IANA在协议注册表中创建了一个名为“注册数据访问协议(RDAP)”的类别,在该类别中,IANA建立了一个URL可引用的独立注册表,名为“RDAP JSON值”。此新注册表用于RDAP中指定的通知和备注(第4.3节)、状态(第4.6节)、角色(第5.1节)、事件操作(第4.5节)和域变量关系(第5.3节)字段。

Each entry in the registry contains the following fields:

注册表中的每个条目都包含以下字段:

1. Value -- the string value being registered.

1. Value——正在注册的字符串值。

2. Type -- the type of value being registered. It should be one of the following:

2. Type——正在注册的值的类型。它应该是以下内容之一:

* "notice or remark type" -- denotes a type of notice or remark.

* “通知或备注类型”--表示通知或备注的类型。

* "status" -- denotes a value for the "status" object member as defined by Section 4.6.

* “状态”--表示第4.6节定义的“状态”对象成员的值。

* "role" -- denotes a value for the "role" array as defined in Section 5.1.

* “角色”--表示第5.1节中定义的“角色”数组的值。

* "event action" -- denotes a value for an event action as defined in Section 4.5.

* “事件动作”--表示第4.5节中定义的事件动作值。

* "domain variant relation" -- denotes a relationship between a domain and a domain variant as defined in Section 5.3.

* “域变量关系”——表示第5.3节中定义的域和域变量之间的关系。

3. Description -- a one- or two-sentence description regarding the meaning of the value, how it might be used, and/or how it should be interpreted by clients.

3. 描述——关于值的含义、如何使用和/或客户应如何解释的一句或两句描述。

4. Registrant Name -- the name of the person registering the value.

4. 注册人姓名——注册价值的人的姓名。

5. Registrant Contact Information -- an email address, postal address, or some other information to be used to contact the registrant.

5. 注册人联系信息——用于联系注册人的电子邮件地址、邮政地址或其他信息。

This registry is operated under the "Expert Review" policy defined in [RFC5226].

该登记处按照[RFC5226]中定义的“专家审查”政策运作。

Review of registrations into this registry by the designated expert(s) should be narrowly judged on the following criteria:

指定专家对本登记册登记的审查应根据以下标准进行狭义判断:

1. Values in need of being placed into multiple types must be assigned a separate registration for each type.

1. 需要放入多个类型的值必须为每个类型分配单独的注册。

2. Values must be strings. They should be multiple words separated by single space characters. Every character should be lowercased. If possible, every word should be given in English and each character should be US-ASCII.

2. 值必须是字符串。它们应该是由单个空格字符分隔的多个单词。每个字符都应该小写。如果可能,每个单词都应该用英语,每个字符都应该是US-ASCII。

3. Registrations should not duplicate the meaning of any existing registration. That is, if a request for a registration is significantly similar in nature to an existing registration, the request should be denied. For example, the terms "maintainer" and "registrant" are significantly similar in nature as they both denote a holder of a domain name or Internet number resource. In cases where it may be reasonably argued that machine interpretation of two similar values may alter the operation of client software, designated experts should not judge the values to be of significant similarity.

3. 注册不应重复任何现有注册的含义。也就是说,如果注册请求在性质上与现有注册非常相似,则应拒绝该请求。例如,术语“维护者”和“注册者”在性质上非常相似,因为它们都表示域名或互联网号码资源的持有者。如果有合理理由认为两个相似值的机器解释可能会改变客户端软件的操作,则指定专家不应判断这些值具有显著的相似性。

4. Registrations should be relevant to the common usages of RDAP. Designated experts may rely upon the serving of the value by a DNR or RIR to make this determination.

4. 注册应与RDAP的常见用法相关。指定专家可依靠DNR或RIR提供的价值来做出此决定。

The following sections provide initial registrations into this registry.

以下各节提供此注册表的初始注册。

10.2.1. Notice and Remark Types
10.2.1. 通知和备注类型

The following values have been registered in the "RDAP JSON Values" registry:

以下值已在“RDAP JSON值”注册表中注册:

Value: result set truncated due to authorization Type: notice and remark type Description: The list of results does not contain all results due to lack of authorization. This may indicate to some clients that proper authorization will yield a longer result set. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:由于授权类型而被截断的结果集:注意和备注类型说明:由于缺乏授权,结果列表不包含所有结果。这可能向某些客户端表明,适当的授权将产生更长的结果集。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: result set truncated due to excessive load Type: notice and remark type Description: The list of results does not contain all results due to an excessively heavy load on the server. This may indicate to some clients that requerying at a later time will yield a longer result set. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:结果集因负载过大而被截断类型:注意和备注类型说明:由于服务器负载过大,结果列表不包含所有结果。这可能向某些客户机表明,稍后重新查询将产生更长的结果集。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: result set truncated due to unexplainable reasons Type: notice and remark type Description: The list of results does not contain all results for an unexplainable reason. This may indicate to some clients that requerying for any reason will not yield a longer result set. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:由于无法解释的原因而被截断的结果集类型:注意和备注类型说明:由于无法解释的原因,结果列表不包含所有结果。这可能会向某些客户端表明,出于任何原因重新查询不会产生更长的结果集。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: object truncated due to authorization Type: notice and remark type Description: The object does not contain all data due to lack of authorization. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:由于授权类型而被截断的对象:注意和备注类型说明:由于缺乏授权,对象不包含所有数据。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: object truncated due to excessive load Type: notice and remark type Description: The object does not contain all data due to an excessively heavy load on the server. This may indicate to some clients that requerying at a later time will yield all data of the object. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:由于负载过重而被截断的对象类型:注意和备注类型说明:由于服务器负载过重,对象不包含所有数据。这可能向某些客户端表明,稍后重新查询将生成对象的所有数据。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: object truncated due to unexplainable reasons Type: notice and remark type Description: The object does not contain all data for an unexplainable reason. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:由于无法解释的原因而被截断的对象类型:注意和备注类型说明:由于无法解释的原因,该对象不包含所有数据。注册人姓名:IESG注册人联系信息:iesg@ietf.org

10.2.2. Status
10.2.2. 地位

The following values have been registered in the "RDAP JSON Values" registry:

以下值已在“RDAP JSON值”注册表中注册:

Value: validated Type: status Description: Signifies that the data of the object instance has been found to be accurate. This type of status is usually found on entity object instances to note the validity of identifying contact information. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:已验证类型:状态描述:表示已发现对象实例的数据是准确的。这种类型的状态通常出现在实体对象实例上,以说明标识联系人信息的有效性。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: renew prohibited Type: status Description: Renewal or reregistration of the object instance is forbidden. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:续订禁止类型:状态描述:禁止对象实例的续订或重新注册。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: update prohibited Type: status Description: Updates to the object instance are forbidden. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:更新禁止类型:状态描述:禁止更新对象实例。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: transfer prohibited Type: status Description: Transfers of the registration from one registrar to another are forbidden. This type of status normally applies to DNR domain names. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:禁止转移类型:状态描述:禁止将注册从一个注册器转移到另一个注册器。这种状态通常适用于DNR域名。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: delete prohibited Type: status Description: Deletion of the registration of the object instance is forbidden. This type of status normally applies to DNR domain names. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:删除禁止类型:状态描述:禁止删除对象实例的注册。这种状态通常适用于DNR域名。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: proxy Type: status Description: The registration of the object instance has been performed by a third party. This is most commonly applied to entities. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:代理类型:状态描述:对象实例的注册已由第三方执行。这通常应用于实体。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: private Type: status Description: The information of the object instance is not designated for public consumption. This is most commonly applied to entities. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:私有类型:状态描述:对象实例的信息未指定为公共使用。这通常应用于实体。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: removed Type: status Description: Some of the information of the object instance has not been made available and has been removed. This is most commonly applied to entities. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:已删除类型:状态描述:对象实例的某些信息尚未可用,已删除。这通常应用于实体。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: obscured Type: status Description: Some of the information of the object instance has been altered for the purposes of not readily revealing the actual information of the object instance. This is most commonly applied to entities. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:模糊类型:状态描述:对象实例的某些信息已被更改,目的是不容易显示对象实例的实际信息。这通常应用于实体。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: associated Type: status Description: The object instance is associated with other object instances in the registry. This is most commonly used to signify that a nameserver is associated with a domain or that an entity is associated with a network resource or domain. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:关联类型:状态描述:对象实例与注册表中的其他对象实例关联。这通常用于表示名称服务器与域相关联,或者实体与网络资源或域相关联。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: active Type: status Description: The object instance is in use. For domain names, it signifies that the domain name is published in DNS. For network and autnum registrations, it signifies that they are allocated or assigned for use in operational networks. This maps to the "OK" status of the Extensible Provisioning Protocol (EPP) [RFC5730] . Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:活动类型:状态描述:对象实例正在使用中。对于域名,它表示域名已在DNS中发布。对于网络和autnum注册,这意味着它们被分配或分配用于操作网络。这映射到可扩展资源调配协议(EPP)[RFC5730]的“正常”状态。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: inactive Type: status Description: The object instance is not in use. See "active". Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:非活动类型:状态描述:对象实例未在使用中。请参阅“活动”。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: locked Type: status Description: Changes to the object instance cannot be made, including the association of other object instances. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:锁定类型:状态描述:无法更改对象实例,包括其他对象实例的关联。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: pending create Type: status Description: A request has been received for the creation of the object instance, but this action is not yet complete. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:挂起的创建类型:状态描述:已收到创建对象实例的请求,但此操作尚未完成。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: pending renew Type: status Description: A request has been received for the renewal of the object instance, but this action is not yet complete. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:挂起续订类型:状态描述:已收到对象实例续订的请求,但此操作尚未完成。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: pending transfer Type: status Description: A request has been received for the transfer of the object instance, but this action is not yet complete. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:挂起的传输类型:状态描述:已收到传输对象实例的请求,但此操作尚未完成。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: pending update Type: status Description: A request has been received for the update or modification of the object instance, but this action is not yet complete. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:挂起的更新类型:状态描述:已收到更新或修改对象实例的请求,但此操作尚未完成。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: pending delete Type: status Description: A request has been received for the deletion or removal of the object instance, but this action is not yet complete. For domains, this might mean that the name is no longer published in DNS but has not yet been purged from the registry database. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:挂起的删除类型:状态描述:已收到删除或删除对象实例的请求,但此操作尚未完成。对于域,这可能意味着该名称不再在DNS中发布,但尚未从注册表数据库中清除。注册人姓名:IESG注册人联系信息:iesg@ietf.org

10.2.3. Event Actions
10.2.3. 事件动作

The following values have been registered in the "RDAP JSON Values" registry:

以下值已在“RDAP JSON值”注册表中注册:

Value: registration Type: event action Description: The object instance was initially registered. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:注册类型:事件操作描述:对象实例最初已注册。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: reregistration Type: event action Description: The object instance was registered subsequently to initial registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:重新注册类型:事件操作描述:在初始注册之后注册了对象实例。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: last changed Type: event action Description: An action noting when the information in the object instance was last changed. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:上次更改类型:事件操作描述:一个操作,记录对象实例中的信息上次更改的时间。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: expiration Type: event action Description: The object instance has been removed or will be removed at a predetermined date and time from the registry. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:过期类型:事件操作描述:对象实例已从注册表中删除或将在预定日期和时间从注册表中删除。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: deletion Type: event action Description: The object instance was removed from the registry at a point in time that was not predetermined. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:删除类型:事件操作描述:对象实例在未预先确定的时间点从注册表中删除。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: reinstantiation Type: event action Description: The object instance was reregistered after having been removed from the registry. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:重新实例化类型:事件操作描述:对象实例从注册表中删除后已重新注册。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: transfer Type: event action Description: The object instance was transferred from one registrant to another. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:传输类型:事件操作描述:对象实例已从一个注册者传输到另一个注册者。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: locked Type: event action Description: The object instance was locked (see the "locked" status). Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:锁定类型:事件操作描述:对象实例已锁定(请参阅“锁定”状态)。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: unlocked Type: event action Description: The object instance was unlocked (see the "locked" status). Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:解锁类型:事件操作描述:对象实例已解锁(请参阅“锁定”状态)。注册人姓名:IESG注册人联系信息:iesg@ietf.org

10.2.4. Roles
10.2.4. 角色

The following values have been registered in the "RDAP JSON Values" registry:

以下值已在“RDAP JSON值”注册表中注册:

Value: registrant Type: role Description: The entity object instance is the registrant of the registration. In some registries, this is known as a maintainer. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:注册人类型:角色描述:实体对象实例是注册的注册人。在一些注册中心中,这被称为维护者。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: technical Type: role Description: The entity object instance is a technical contact for the registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:技术类型:角色描述:实体对象实例是注册的技术联系人。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: administrative Type: role Description: The entity object instance is an administrative contact for the registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:管理类型:角色描述:实体对象实例是注册的管理联系人。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: abuse Type: role Description: The entity object instance handles network abuse issues on behalf of the registrant of the registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:滥用类型:角色描述:实体对象实例代表注册者处理网络滥用问题。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: billing Type: role Description: The entity object instance handles payment and billing issues on behalf of the registrant of the registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:计费类型:角色描述:实体对象实例代表注册人处理支付和计费问题。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: registrar Type: role Description: The entity object instance represents the authority responsible for the registration in the registry. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:注册器类型:角色描述:实体对象实例表示负责在注册表中注册的机构。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: reseller Type: role Description: The entity object instance represents a third party through which the registration was conducted (i.e., not the registry or registrar). Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:分销商类型:角色描述:实体对象实例表示进行注册的第三方(即,不是注册中心或注册中心)。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: sponsor Type: role Description: The entity object instance represents a domain policy sponsor, such as an ICANN-approved sponsor. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:发起人类型:角色描述:实体对象实例表示域策略发起人,例如ICANN批准的发起人。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: proxy Type: role Description: The entity object instance represents a proxy for another entity object, such as a registrant. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:代理类型:角色描述:实体对象实例表示另一个实体对象(如注册人)的代理。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: notifications Type: role Description: An entity object instance designated to receive notifications about association object instances. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:通知类型:角色描述:指定用于接收有关关联对象实例的通知的实体对象实例。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: noc Type: role Description: The entity object instance handles communications related to a network operations center (NOC). Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:noc类型:角色描述:实体对象实例处理与网络运营中心(noc)相关的通信。注册人姓名:IESG注册人联系信息:iesg@ietf.org

10.2.5. Variant Relations
10.2.5. 变异关系

The following values have been registered in the "RDAP JSON Values" registry:

以下值已在“RDAP JSON值”注册表中注册:

Value: registered Type: domain variant relation Description: The variant names are registered in the registry. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:注册类型:域变量关系描述:变量名称在注册表中注册。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: unregistered Type: domain variant relation Description: The variant names are not found in the registry. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:未注册类型:域变量关系描述:在注册表中找不到变量名称。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: registration restricted Type: domain variant relation Description: Registration of the variant names is restricted to certain parties or within certain rules. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:注册受限类型:域变量关系描述:变量名称的注册仅限于特定方或特定规则内。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: open registration Type: domain variant relation Description: Registration of the variant names is available to generally qualified registrants. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:开放注册类型:域变量关系描述:一般合格的注册人可以注册变量名称。注册人姓名:IESG注册人联系信息:iesg@ietf.org

Value: conjoined Type: domain variant relation Description: Registration of the variant names occurs automatically with the registration of the containing domain registration. Registrant Name: IESG Registrant Contact Information: iesg@ietf.org

值:连接类型:域变量关系描述:随包含域注册的注册自动注册变量名称。注册人姓名:IESG注册人联系信息:iesg@ietf.org

11. Security Considerations
11. 安全考虑

This specification models information serialized in JSON format. As JSON is a subset of JavaScript, implementations are advised to follow the security considerations outlined in Section 6 of [RFC7159] to prevent code injection.

此规范以JSON格式对序列化的信息进行建模。由于JSON是JavaScript的一个子集,建议实现遵循[RFC7159]第6节中概述的安全注意事项,以防止代码注入。

Though not specific to JSON, RDAP implementers should be aware of the security considerations specified in [RFC7480] and the security requirements and considerations in [RFC7481].

尽管并非特定于JSON,但RDAP实现者应该了解[RFC7480]中指定的安全注意事项以及[RFC7481]中的安全要求和注意事项。

Clients caching data, especially clients using RDAP-specific caches (instead of HTTP-layer caches), should have safeguards to prevent cache poisoning. See Section 5 for advice on using the self links for caching.

缓存数据的客户机,特别是使用RDAP特定缓存(而不是HTTP层缓存)的客户机,应该具有防止缓存中毒的保护措施。有关使用自链接进行缓存的建议,请参见第5节。

Finally, service operators should be aware of the privacy mechanisms noted in Section 13.

最后,服务运营商应了解第13节中提到的隐私机制。

12. Internationalization Considerations
12. 国际化考虑
12.1. Character Encoding
12.1. 字符编码

The default text encoding for JSON responses in RDAP is UTF-8 [RFC3629], and all servers and clients MUST support UTF-8.

RDAP中JSON响应的默认文本编码为UTF-8[RFC3629],所有服务器和客户端都必须支持UTF-8。

12.2. URIs and IRIs
12.2. URI和IRIs

[RFC7480] defines the use of URIs and IRIs in RDAP.

[RFC7480]定义了URI和IRI在RDAP中的使用。

12.3. Language Tags
12.3. 语言标签

Section 4.4 defines the use of language tags in the JSON responses defined in this document.

第4.4节定义了本文档中定义的JSON响应中语言标记的使用。

12.4. Internationalized Domain Names
12.4. 国际化域名

IDNs are denoted in this specification by the separation of DNS names in LDH form and Unicode form (see Section 3). Representation of IDNs in registries is described by the "variants" object in Section 5.3 and the suggested values listed in Section 10.2.5.

在本规范中,IDN由LDH形式和Unicode形式的DNS名称分隔表示(见第3节)。第5.3节中的“变体”对象和第10.2.5节中列出的建议值描述了注册中IDN的表示。

13. Privacy Considerations
13. 隐私考虑

This specification suggests status values to denote contact and registrant information that has been marked as private and/or has been removed or obscured. See Section 10.2.2 for the complete list of status values. A few of the status values indicate that there are privacy concerns associated with the object instance. The following status codes SHOULD be used to describe data elements of a response when appropriate:

本规范建议使用状态值来表示标记为私有和/或已删除或隐藏的联系人和注册人信息。有关状态值的完整列表,请参见第10.2.2节。一些状态值表示存在与对象实例相关的隐私问题。适当时,应使用以下状态代码来描述响应的数据元素:

private -- The object is not be shared in query responses, unless the user is authorized to view this information.

private——除非用户有权查看此信息,否则不能在查询响应中共享该对象。

removed -- Data elements within the object have been collected but have been omitted from the response. This option can be used to prevent unauthorized access to associated object instances without the need to mark them as private.

removed——对象中的数据元素已被收集,但已从响应中忽略。此选项可用于防止未经授权访问关联的对象实例,而无需将其标记为私有。

obscured -- Data elements within the object have been collected, but the response value has been altered so that values are not easily discernible. A value changed from "1212" to "XXXX" is an example of obscured data. This option may reveal privacy sensitive information and should only be used when data sensitivity does not require a more protective option like "private" or "removed".

模糊——对象中的数据元素已被收集,但响应值已被更改,因此值不容易识别。从“1212”更改为“XXXX”的值就是模糊数据的一个示例。此选项可能会泄露隐私敏感信息,仅当数据敏感不需要“私密”或“删除”等更具保护性的选项时才应使用。

See Appendix A.1 for an example of applying those values to contacts and registrants.

有关将这些值应用于联系人和注册人的示例,请参见附录A.1。

14. References
14. 工具书类
14.1. Normative References
14.1. 规范性引用文件

[ISO.3166.1988] International Organization for Standardization, "Codes for the representation of names of countries, 3rd edition", ISO Standard 3166, August 1988.

[ISO.3166.1988]国际标准化组织,“国家名称表示代码,第3版”,ISO标准3166,1988年8月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月<http://www.rfc-editor.org/info/rfc2119>.

[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, July 2002, <http://www.rfc-editor.org/info/rfc3339>.

[RFC3339]Klyne,G.,Ed.和C.Newman,“互联网上的日期和时间:时间戳”,RFC33392002年7月<http://www.rfc-editor.org/info/rfc3339>.

[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003, <http://www.rfc-editor.org/info/rfc3629>.

[RFC3629]Yergeau,F.,“UTF-8,ISO 10646的转换格式”,STD 63,RFC 3629,2003年11月<http://www.rfc-editor.org/info/rfc3629>.

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005, <http://www.rfc-editor.org/info/rfc3986>.

[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,2005年1月<http://www.rfc-editor.org/info/rfc3986>.

[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Resource Records for the DNS Security Extensions", RFC 4034, March 2005, <http://www.rfc-editor.org/info/rfc4034>.

[RFC4034]Arends,R.,Austein,R.,Larson,M.,Massey,D.,和S.Rose,“DNS安全扩展的资源记录”,RFC 40342005年3月<http://www.rfc-editor.org/info/rfc4034>.

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008, <http://www.rfc-editor.org/info/rfc5226>.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,2008年5月<http://www.rfc-editor.org/info/rfc5226>.

[RFC5396] Huston, G. and G. Michaelson, "Textual Representation of Autonomous System (AS) Numbers", RFC 5396, December 2008, <http://www.rfc-editor.org/info/rfc5396>.

[RFC5396]Huston,G.和G.Michaelson,“自治系统(AS)编号的文本表示”,RFC 53962008年12月<http://www.rfc-editor.org/info/rfc5396>.

[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009, <http://www.rfc-editor.org/info/rfc5646>.

[RFC5646]Phillips,A.和M.Davis,“识别语言的标记”,BCP 47,RFC 56462009年9月<http://www.rfc-editor.org/info/rfc5646>.

[RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, August 2010, <http://www.rfc-editor.org/info/rfc5890>.

[RFC5890]Klensin,J.“应用程序的国际化域名(IDNA):定义和文档框架”,RFC 58902010年8月<http://www.rfc-editor.org/info/rfc5890>.

[RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 Address Text Representation", RFC 5952, August 2010, <http://www.rfc-editor.org/info/rfc5952>.

[RFC5952]Kawamura,S.和M.Kawashima,“IPv6地址文本表示的建议”,RFC 59522010年8月<http://www.rfc-editor.org/info/rfc5952>.

[RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010, <http://www.rfc-editor.org/info/rfc5988>.

[RFC5988]诺丁汉,M.,“网络链接”,RFC 5988,2010年10月<http://www.rfc-editor.org/info/rfc5988>.

[RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, January 2014, <http://www.rfc-editor.org/info/rfc7095>.

[RFC7095]Kewisch,P.,“jCard:vCard的JSON格式”,RFC7095,2014年1月<http://www.rfc-editor.org/info/rfc7095>.

[RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data Interchange Format", RFC 7159, March 2014, <http://www.rfc-editor.org/info/rfc7159>.

[RFC7159]Bray,T.,“JavaScript对象表示法(JSON)数据交换格式”,RFC 7159,2014年3月<http://www.rfc-editor.org/info/rfc7159>.

[RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the Registration Data Access Protocol (RDAP)", RFC 7480, March 2015, <http://www.rfc-editor.org/info/rfc7480>.

[RFC7480]Newton,A.,Ellacott,B.,和N.Kong,“注册数据访问协议(RDAP)中的HTTP使用”,RFC 7480,2015年3月<http://www.rfc-editor.org/info/rfc7480>.

[RFC7481] Hollenbeck, S. and N. Kong, "Security Services for the Registration Data Access Protocol (RDAP)", RFC 7481, March 2015, <http://www.rfc-editor.org/info/rfc7481>.

[RFC7481]Hollenbeck,S.和N.Kong,“注册数据访问协议(RDAP)的安全服务”,RFC 74812015年3月<http://www.rfc-editor.org/info/rfc7481>.

[RFC7482] Newton, A. and S. Hollenbeck, "Registration Data Access Protocol (RDAP) Query Format", RFC 7482, March 2015, <http://www.rfc-editor.org/info/rfc7482>.

[RFC7482]Newton,A.和S.Hollenbeck,“注册数据访问协议(RDAP)查询格式”,RFC 7482,2015年3月<http://www.rfc-editor.org/info/rfc7482>.

14.2. Informative References
14.2. 资料性引用

[IANA_IDNTABLES] IANA, "Repository of IDN Practices", <http://www.iana.org/domains/idn-tables>.

[IANA_IDNTABLES]IANA,“IDN实践知识库”<http://www.iana.org/domains/idn-tables>.

[JSON_ascendancy] MacVittie, L., "The Stealthy Ascendancy of JSON", April 2011, <https://devcentral.f5.com/weblogs/macvittie/ archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx>.

[JSON_优势]MacVittie,L.,“JSON的隐性优势”,2011年4月<https://devcentral.f5.com/weblogs/macvittie/ archive/2011/04/27/json.aspx>的隐形优势。

[JSON_performance_study] Nurseitov, N., Paulson, M., Reynolds, R., and C. Izurieta, "Comparison of JSON and XML Data Interchange Formats: A Case Study", 2009, <http://www.cs.montana.edu/izurieta/pubs/caine2009.pdf>.

[JSON_性能研究]Nurseitov,N.,Paulson,M.,Reynolds,R.,和C.Izurieta,“JSON和XML数据交换格式的比较:案例研究”,2009年<http://www.cs.montana.edu/izurieta/pubs/caine2009.pdf>.

[RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, September 2004, <http://www.rfc-editor.org/info/rfc3912>.

[RFC3912]Daigle,L.,“WHOIS协议规范”,RFC 3912,2004年9月<http://www.rfc-editor.org/info/rfc3912>.

[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, August 2009, <http://www.rfc-editor.org/info/rfc5730>.

[RFC5730]Hollenbeck,S.,“可扩展资源调配协议(EPP)”,STD 69,RFC 5730,2009年8月<http://www.rfc-editor.org/info/rfc5730>.

[RFC5910] Gould, J. and S. Hollenbeck, "Domain Name System (DNS) Security Extensions Mapping for the Extensible Provisioning Protocol (EPP)", RFC 5910, May 2010, <http://www.rfc-editor.org/info/rfc5910>.

[RFC5910]Gould,J.和S.Hollenbeck,“可扩展资源调配协议(EPP)的域名系统(DNS)安全扩展映射”,RFC 59102010年5月<http://www.rfc-editor.org/info/rfc5910>.

[RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, August 2011, <http://www.rfc-editor.org/info/rfc6350>.

[RFC6350]Perreault,S.,“vCard格式规范”,RFC 63502011年8月<http://www.rfc-editor.org/info/rfc6350>.

[RFC6839] Hansen, T. and A. Melnikov, "Additional Media Type Structured Syntax Suffixes", RFC 6839, January 2013, <http://www.rfc-editor.org/info/rfc6839>.

[RFC6839]Hansen,T.和A.Melnikov,“其他媒体类型结构化语法后缀”,RFC 6839,2013年1月<http://www.rfc-editor.org/info/rfc6839>.

Appendix A. Suggested Data Modeling with the Entity Object Class
附录A.实体对象类的建议数据建模
A.1. Registrants and Contacts
A.1. 注册人和联系人

This document does not provide specific object classes for registrants and contacts. Instead, the entity object class may be used to represent a registrant or contact. When the entity object is embedded inside a containing object such as a domain name or IP network, the "roles" string array can be used to signify the relationship. It is recommended that the values from Section 10.2.4 be used.

本文档不为注册人和联系人提供特定的对象类。相反,实体对象类可用于表示注册人或联系人。当实体对象嵌入到包含对象(如域名或IP网络)中时,“角色”字符串数组可用于表示关系。建议使用第10.2.4节中的值。

The following is an example of an elided containing object with an embedded entity that is both a registrant and administrative contact:

以下是一个省略包含对象的示例,该对象具有一个嵌入式实体,该实体既是注册人又是管理联系人:

   {
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
        
   {
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe User"],
             ["kind", {}, "text", "individual"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["title", {}, "text", "Research Scientist"],
             ["role", {}, "text", "Project Lead"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
        
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant", "administrative" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               { "type":["work", "voice"], "pref":"1" },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joe.user@example.com"
             ]
           ]
         ],
         "roles" : [ "registrant", "administrative" ],
         "remarks" :
         [
           {
             "description" :
             [
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "events" :
         [
           {
             "eventAction" : "registration",
             "eventDate" : "1990-12-31T23:59:59Z"
           },
           {
             "eventAction" : "last changed",
             "eventDate" : "1991-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        

Figure 34

图34

In many use cases, it is necessary to hide or obscure the information of a registrant or contact due to policy or other operational matters. Registries can denote these situations with "status" values (see Section 10.2.2).

在许多用例中,由于策略或其他操作问题,有必要隐藏或隐藏注册者或联系人的信息。注册表可以用“状态”值表示这些情况(见第10.2.2节)。

The following is an elided example of a registrant with information changed to reflect that of a third party.

以下是一个省略的注册人示例,其信息已更改以反映第三方的信息。

   {
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         ...
         "roles" : [ "registrant", "administrative" ],
         "status" : [ "proxy", "private", "obscured" ]
       }
     ]
   }
        
   {
     ...
     "entities" :
     [
       {
         "objectClassName" : "entity",
         "handle" : "XXXX",
         ...
         "roles" : [ "registrant", "administrative" ],
         "status" : [ "proxy", "private", "obscured" ]
       }
     ]
   }
        

Figure 35

图35

A.2. Registrars
A.2. 登记员

This document does not provide a specific object class for registrars, but like registrants and contacts (see Appendix A.1), the "roles" string array maybe used. Additionally, many registrars have publicly assigned identifiers. The publicIds structure (Section 4.8) represents that information.

本文档未为注册者提供特定的对象类,但与注册者和联系人一样(见附录a.1),可能会使用“角色”字符串数组。此外,许多注册商都公开分配了标识符。publicIds结构(第4.8节)表示该信息。

The following is an example of an elided containing object with an embedded entity that is a registrar:

以下是一个省略包含对象的示例,该对象具有作为注册器的嵌入实体:

   {
     ...
     "entities":[
       {
         "objectClassName" : "entity",
         "handle":"XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe's Fish, Chips, and Domains"],
             ["kind", {}, "text", "org"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
        
   {
     ...
     "entities":[
       {
         "objectClassName" : "entity",
         "handle":"XXXX",
         "vcardArray":[
           "vcard",
           [
             ["version", {}, "text", "4.0"],
             ["fn", {}, "text", "Joe's Fish, Chips, and Domains"],
             ["kind", {}, "text", "org"],
             ["lang", {
               "pref":"1"
             }, "language-tag", "fr"],
             ["lang", {
               "pref":"2"
             }, "language-tag", "en"],
        
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               {
                 "type":["work", "voice"],
                 "pref":"1"
               },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joes_fish_chips_and_domains@example.com"
             ]
           ]
         ],
         "roles":[ "registrar" ],
         "publicIds":[
           {
             "type":"IANA Registrar ID",
             "identifier":"1"
           }
         ],
         "remarks":[
           {
             "description":[
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links":[
           {
             "value":"http://example.net/entity/XXXX",
             "rel":"alternate",
        
             ["org", {
               "type":"work"
             }, "text", "Example"],
             ["adr",
               { "type":"work" },
               "text",
               [
                 "",
                 "Suite 1234",
                 "4321 Rue Somewhere",
                 "Quebec",
                 "QC",
                 "G1V 2M2",
                 "Canada"
               ]
             ],
             ["tel",
               {
                 "type":["work", "voice"],
                 "pref":"1"
               },
               "uri", "tel:+1-555-555-1234;ext=102"
             ],
             ["email",
               { "type":"work" },
               "text", "joes_fish_chips_and_domains@example.com"
             ]
           ]
         ],
         "roles":[ "registrar" ],
         "publicIds":[
           {
             "type":"IANA Registrar ID",
             "identifier":"1"
           }
         ],
         "remarks":[
           {
             "description":[
               "She sells sea shells down by the sea shore.",
               "Originally written by Terry Sullivan."
             ]
           }
         ],
         "links":[
           {
             "value":"http://example.net/entity/XXXX",
             "rel":"alternate",
        
             "type":"text/html",
             "href":"http://www.example.com"
           }
         ]
       }
     ]
   }
        
             "type":"text/html",
             "href":"http://www.example.com"
           }
         ]
       }
     ]
   }
        

Figure 36

图36

Appendix B. Modeling Events
附录B.建模事件

Events represent actions that have taken place against a registered object at a certain date and time. Events have three properties: the action, the actor, and the date and time of the event (which is sometimes in the future). In some cases, the identity of the actor is not captured.

事件表示在特定日期和时间对注册对象执行的操作。事件有三个属性:动作、参与者以及事件的日期和时间(有时是在将来)。在某些情况下,不会捕获参与者的身份。

Events can be modeled in three ways:

事件可以通过三种方式建模:

1. events with no designated actor

1. 没有指定参与者的事件

2. events where the actor is only designated by an identifier

2. 参与者仅由标识符指定的事件

3. events where the actor can be modeled as an entity

3. 参与者可以建模为实体的事件

For the first use case, the events data structure (Section 4.5) is used without the "eventActor" object member.

对于第一个用例,使用事件数据结构(第4.5节),不使用“eventActor”对象成员。

This is an example of an "events" array without the "eventActor".

这是一个没有“eventActor”的“events”数组示例。

   "events" :
   [
     {
       "eventAction" : "registration",
       "eventDate" : "1990-12-31T23:59:59Z"
     }
   ]
        
   "events" :
   [
     {
       "eventAction" : "registration",
       "eventDate" : "1990-12-31T23:59:59Z"
     }
   ]
        

Figure 37

图37

For the second use case, the events data structure (Section 4.5) is used with the "eventActor" object member.

对于第二个用例,事件数据结构(第4.5节)与“eventActor”对象成员一起使用。

This is an example of an "events" array with the "eventActor".

这是带有“eventActor”的“events”数组的示例。

   "events" :
   [
     {
       "eventAction" : "registration",
       "eventActor" : "XYZ-NIC",
       "eventDate" : "1990-12-31T23:59:59Z"
     }
   ]
        
   "events" :
   [
     {
       "eventAction" : "registration",
       "eventActor" : "XYZ-NIC",
       "eventDate" : "1990-12-31T23:59:59Z"
     }
   ]
        

Figure 38

图38

For the third use case, the "asEventActor" array is used when an entity (Section 5.1) is embedded into another object class. The "asEventActor" array follows the same structure as the "events" array but does not have "eventActor" attributes.

对于第三个用例,当一个实体(第5.1节)嵌入到另一个对象类中时,使用“asEventActor”数组。“asEventActor”数组遵循与“events”数组相同的结构,但没有“eventActor”属性。

The following is an elided example of a domain object with an entity as an event actor.

下面是一个省略的域对象示例,其中实体作为事件参与者。

   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "foo.example",
     "status" : [ "locked", "transfer prohibited" ],
     ...
     "entities" :
     [
       {
         "handle" : "XXXX",
         ...
         "asEventActor" :
         [
           {
             "eventAction" : "last changed",
             "eventDate" : "1990-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        
   {
     "objectClassName" : "domain",
     "handle" : "XXXX",
     "ldhName" : "foo.example",
     "status" : [ "locked", "transfer prohibited" ],
     ...
     "entities" :
     [
       {
         "handle" : "XXXX",
         ...
         "asEventActor" :
         [
           {
             "eventAction" : "last changed",
             "eventDate" : "1990-12-31T23:59:59Z"
           }
         ]
       }
     ]
   }
        

Figure 39

图39

Appendix C. Structured vs. Unstructured Addresses
附录C.结构化与非结构化地址

The entity (Section 5.1) object class uses jCard [RFC7095] to represent contact information, including postal addresses. jCard has the ability to represent multiple language preferences, multiple email address and phone numbers, and multiple postal addresses in both a structured and unstructured format. This section describes the use of jCard for representing structured and unstructured addresses.

实体(第5.1节)对象类使用jCard[RFC7095]表示联系人信息,包括邮政地址。jCard能够以结构化和非结构化格式表示多个语言首选项、多个电子邮件地址和电话号码以及多个邮政地址。本节介绍如何使用jCard表示结构化和非结构化地址。

The following is an example of a jCard.

下面是jCard的一个示例。

   {
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["n", {}, "text",
           ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]
         ],
         ["kind", {}, "text", "individual"],
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["adr",
           {
        
   {
     "vcardArray":[
       "vcard",
       [
         ["version", {}, "text", "4.0"],
         ["fn", {}, "text", "Joe User"],
         ["n", {}, "text",
           ["User", "Joe", "", "", ["ing. jr", "M.Sc."]]
         ],
         ["kind", {}, "text", "individual"],
         ["lang", {
           "pref":"1"
         }, "language-tag", "fr"],
         ["lang", {
           "pref":"2"
         }, "language-tag", "en"],
         ["org", {
           "type":"work"
         }, "text", "Example"],
         ["title", {}, "text", "Research Scientist"],
         ["role", {}, "text", "Project Lead"],
         ["adr",
           { "type":"work" },
           "text",
           [
             "",
             "Suite 1234",
             "4321 Rue Somewhere",
             "Quebec",
             "QC",
             "G1V 2M2",
             "Canada"
           ]
         ],
         ["adr",
           {
        
             "type":"home",
             "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"
           },
           "text",
           [
             "", "", "", "", "", "", ""
           ]
         ],
         ["tel",
           { "type":["work", "voice"], "pref":"1" },
           "uri", "tel:+1-555-555-1234;ext=102"
         ],
         ["tel",
           {
             "type":["work", "cell", "voice", "video", "text"]
           },
           "uri",
           "tel:+1-555-555-1234"
         ],
         ["email",
           { "type":"work" },
           "text", "joe.user@example.com"
         ],
         ["geo", {
           "type":"work"
         }, "uri", "geo:46.772673,-71.282945"],
         ["key",
           { "type":"work" },
           "uri", "http://www.example.com/joe.user/joe.asc"
         ],
         ["tz", {},
           "utc-offset", "-05:00"],
         ["url", { "type":"home" },
           "uri", "http://example.org"]
       ]
     ]
   }
        
             "type":"home",
             "label":"123 Maple Ave\nSuite 90001\nVancouver\nBC\n1239\n"
           },
           "text",
           [
             "", "", "", "", "", "", ""
           ]
         ],
         ["tel",
           { "type":["work", "voice"], "pref":"1" },
           "uri", "tel:+1-555-555-1234;ext=102"
         ],
         ["tel",
           {
             "type":["work", "cell", "voice", "video", "text"]
           },
           "uri",
           "tel:+1-555-555-1234"
         ],
         ["email",
           { "type":"work" },
           "text", "joe.user@example.com"
         ],
         ["geo", {
           "type":"work"
         }, "uri", "geo:46.772673,-71.282945"],
         ["key",
           { "type":"work" },
           "uri", "http://www.example.com/joe.user/joe.asc"
         ],
         ["tz", {},
           "utc-offset", "-05:00"],
         ["url", { "type":"home" },
           "uri", "http://example.org"]
       ]
     ]
   }
        

Figure 40

图40

The arrays in Figure 40 with the first member of "adr" represent postal addresses. In the first example, the postal address is given as an array of strings and constitutes a structured address. For components of the structured address that are not applicable, an empty string is given. Each member of that array aligns with the positions of a vCard as given in [RFC6350]. In this example, the following data corresponds to the following positional meanings:

图40中第一个成员为“adr”的数组表示邮政地址。在第一个示例中,邮政地址作为字符串数组给出,并构成结构化地址。对于不适用的结构化地址组件,将给出一个空字符串。该阵列的每个成员都与[RFC6350]中给出的vCard位置对齐。在本例中,以下数据对应于以下位置含义:

1. post office box -- not applicable; empty string

1. 邮政信箱——不适用;空字符串

2. extended address (e.g., apartment or suite number) -- Suite 1234

2. 扩展地址(如公寓或套房号)——1234套房

3. street address -- 4321 Rue Somewhere

3. 街道地址——某处街4321号

4. locality (e.g., city) -- Quebec

4. 地点(如城市)——魁北克

5. region (e.g., state or province) -- QC

5. 地区(如州或省)——QC

6. postal code -- G1V 2M2

6. 邮政编码——G1V 2M2

7. country name (full name) -- Canada

7. 国家名称(全称)——加拿大

The second example is an unstructured address. It uses the label attribute, which is a string containing a newline (\n) character to separate address components in an unordered, unspecified manner. Note that in this example, the structured address array is still given but that each string is an empty string.

第二个示例是非结构化地址。它使用label属性(包含换行符(\n)的字符串)以无序、未指定的方式分隔地址组件。请注意,在本例中,仍然给出了结构化地址数组,但每个字符串都是空字符串。

Appendix D. Secure DNS
附录D.安全DNS

Section 5.3 defines the "secureDNS" member to represent secure DNS information about domain names.

第5.3节定义了“secureDNS”成员,以表示有关域名的安全DNS信息。

DNSSEC provides data integrity for DNS through the digital signing of resource records. To enable DNSSEC, the zone is signed by one or more private keys and the signatures are stored as RRSIG records. To complete the chain of trust in the DNS zone hierarchy, a digest of each DNSKEY record (which contains the public key) must be loaded into the parent zone, stored as DS records, and signed by the parent's private key (RRSIG DS record), as indicated in "Resource Records for the DNS Security Extensions" [RFC4034]. Creating the DS records in the parent zone can be done by the registration authority "Domain Name System (DNS) Security Extensions Mapping for the Extensible Provisioning Protocol (EPP)" [RFC5910].

DNSSEC通过对资源记录进行数字签名,为DNS提供数据完整性。要启用DNSSEC,区域由一个或多个私钥签名,签名存储为RRSIG记录。要完成DNS区域层次结构中的信任链,必须将每个DNSKEY记录(包含公钥)的摘要加载到父区域中,存储为DS记录,并由父区域的私钥(RRSIG DS记录)签名,如“DNS安全扩展的资源记录”[RFC4034]所示。在父区域中创建DS记录可以由注册机构“可扩展配置协议(EPP)的域名系统(DNS)安全扩展映射”[RFC5910]完成。

Only DS-related information is provided by RDAP, since other information is not generally stored in the registration database. Other DNSSEC-related information can be retrieved with other DNS tools such as dig.

RDAP仅提供DS相关信息,因为其他信息通常不存储在注册数据库中。其他DNSSEC相关信息可通过其他DNS工具(如dig)检索。

The domain object class (Section 5.3) can represent this information using either the "dsData" or "keyData" object arrays. Client implementers should be aware that some registries do not collect or do not publish all of the secure DNS meta-information.

域对象类(第5.3节)可以使用“dsData”或“keyData”对象数组表示此信息。客户端实现者应该知道,有些注册中心不收集或不发布所有安全DNS元信息。

Appendix E. Motivations for Using JSON
附录E.使用JSON的动机

This section addresses a common question regarding the use of JSON over other data formats, most notably XML.

本节讨论了一个常见的问题,即JSON在其他数据格式(尤其是XML)上的使用。

It is often pointed out that many DNRs and one RIR support the EPP [RFC5730] standard, which is an XML serialized protocol. The logic is that since EPP is a common protocol in the industry, it follows that XML would be a more natural choice. While EPP does influence this specification quite a bit, EPP serves a different purpose, which is the provisioning of Internet resources between registries and accredited registrars and serving a much narrower audience than that envisioned for RDAP.

人们经常指出,许多DNR和一个RIR支持EPP[RFC5730]标准,这是一种XML序列化协议。逻辑是,由于EPP是业界常见的协议,因此XML将是更自然的选择。虽然EPP对该规范的影响很大,但EPP的用途不同,即在注册中心和经认证的注册中心之间提供互联网资源,并为比RDAP所设想的更为狭窄的受众提供服务。

By contrast, RDAP has a broader audience and is designed for public consumption of data. Experience from RIRs with first generation RESTful web services for WHOIS indicate that a large percentage of clients operate within browsers and other platforms where full-blown XML stacks are not readily available and where JSON is a better fit.

相比之下,RDAP拥有更广泛的受众,是为公众消费数据而设计的。RIRs为WHOIS提供第一代RESTful web服务的经验表明,大部分客户机在浏览器和其他平台上运行,这些平台上没有完整的XML堆栈,JSON更适合使用。

Additionally, while EPP is used in much of the DNR community it is not a universal constant in that industry. And finally, EPP's use of XML predates the specification of JSON. If EPP had been defined today, it may very well have used JSON instead of XML.

此外,虽然EPP在DNR社区的许多地方都有使用,但它在该行业中并不是一个通用的常数。最后,EPP对XML的使用早于JSON规范。如果EPP是在今天定义的,它很可能使用JSON而不是XML。

Beyond the specific DNR and RIR communities, the trend in the broader Internet industry is also switching to JSON over XML, especially in the area of RESTful web services (see [JSON_ascendancy]). Studies have also found that JSON is generally less bulky and consequently faster to parse (see [JSON_performance_study]).

除了特定的DNR和RIR社区之外,更广泛的互联网行业的趋势也在转向JSON而不是XML,特别是在RESTful web服务领域(参见[JSON_Aspendency])。研究还发现,JSON通常体积较小,因此解析速度更快(参见[JSON_performance_study])。

Acknowledgements

致谢

This document is derived from original work on RIR responses in JSON by Byron J. Ellacott, Arturo L. Servin, Kaveh Ranjbar, and Andrew L. Newton. Additionally, this document incorporates work on DNR responses in JSON by Ning Kong, Linlin Zhou, Jiagui Xie, and Sean Shen.

本文档源自Byron J.Ellacott、Arturo L.Servin、Kaveh Ranjbar和Andrew L.Newton关于JSON中RIR响应的原始工作。此外,本文档还包含了Ning Kong、Linlin Zhou、Jiagui Xie和Sean Shen关于JSON中DNR响应的工作。

The components of the DNR object classes are derived from a categorization of WHOIS response formats created by Ning Kong, Linlin Zhou, Guangqing Deng, Steve Sheng, Francisco Arias, Ray Bellis, and Frederico Neves.

DNR对象类的组件来自于对WHOIS响应格式的分类,WHOIS响应格式是由孔宁、周林林、邓广庆、盛文杰、弗朗西斯科·阿里亚斯、雷·贝利斯和弗雷德里科·内维斯创建的。

Tom Harrison, Murray Kucherawy, Ed Lewis, Audric Schiltknecht, Naoki Kambe, and Maarten Bosteels contributed significant review comments and provided clarifying text. James Mitchell provided text regarding the processing of unknown JSON attributes and identified issues

汤姆·哈里森、默里·库奇拉维、埃德·刘易斯、奥德里克·希特克内赫特、内奥基·坎贝和马丁·博斯蒂尔对评论发表了重要评论,并提供了清晰的文本。James Mitchell提供了关于未知JSON属性处理和识别问题的文本

leading to the remodeling of events. Ernie Dainow and Francisco Obispo provided concrete suggestions that led to a better variant model for domain names.

导致事件的重塑。Ernie Dainow和Francisco Obispo提供了具体建议,为域名提供了更好的变体模型。

Ernie Dainow provided the background information on the secure DNS attributes and objects for domains, informative text on DNSSEC, and many other attributes that appear throughout the object classes of this document.

Ernie Dainow提供了域的安全DNS属性和对象的背景信息、DNSSEC上的信息文本以及本文档对象类中出现的许多其他属性。

The switch to and incorporation of jCard was performed by Simon Perreault.

jCard的转换和合并由Simon Perreault执行。

Olaf Kolkman and Murray Kucherawy chaired the IETF's WEIRDS working group from which this document has been created.

Olaf Kolkman和Murray Kucherawy主持了IETF的WEIRDS工作组,本文件就是从该工作组创建的。

Authors' Addresses

作者地址

Andrew Lee Newton American Registry for Internet Numbers 3635 Concorde Parkway Chantilly, VA 20151 United States

Andrew Lee Newton美国互联网注册处,美国弗吉尼亚州尚蒂利协和公园路3635号,邮编:20151

   EMail: andy@arin.net
   URI:   http://www.arin.net
        
   EMail: andy@arin.net
   URI:   http://www.arin.net
        

Scott Hollenbeck Verisign Labs 12061 Bluemont Way Reston, VA 20190 United States

Scott Hollenbeck Verisign实验室12061美国弗吉尼亚州布鲁蒙特路莱斯顿20190

   EMail: shollenbeck@verisign.com
   URI:   http://www.verisignlabs.com/
        
   EMail: shollenbeck@verisign.com
   URI:   http://www.verisignlabs.com/