draft-ietf-weirds-rdap-query-14.txt   draft-ietf-weirds-rdap-query-15.txt 
Network Working Group A. Newton Network Working Group A. Newton
Internet-Draft ARIN Internet-Draft ARIN
Intended status: Standards Track S. Hollenbeck Intended status: Standards Track S. Hollenbeck
Expires: March 26, 2015 Verisign Labs Expires: April 10, 2015 Verisign Labs
September 22, 2014 October 7, 2014
Registration Data Access Protocol Query Format Registration Data Access Protocol Query Format
draft-ietf-weirds-rdap-query-14 draft-ietf-weirds-rdap-query-15
Abstract Abstract
This document describes uniform patterns to construct HTTP URLs that This document describes uniform patterns to construct HTTP URLs that
may be used to retrieve registration information from registries may be used to retrieve registration information from registries
(including both Regional Internet Registries (RIRs) and Domain Name (including both Regional Internet Registries (RIRs) and Domain Name
Registries (DNRs)) using "RESTful" web access patterns. These Registries (DNRs)) using "RESTful" web access patterns. These
uniform patterns define the query syntax for the Registration Data uniform patterns define the query syntax for the Registration Data
Access Protocol (RDAP). Access Protocol (RDAP).
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 26, 2015. This Internet-Draft will expire on April 10, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 20 skipping to change at page 2, line 20
1.1. Acronyms and Abbreviations . . . . . . . . . . . . . . . 2 1.1. Acronyms and Abbreviations . . . . . . . . . . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Path Segment Specification . . . . . . . . . . . . . . . . . 4 3. Path Segment Specification . . . . . . . . . . . . . . . . . 4
3.1. Lookup Path Segment Specification . . . . . . . . . . . . 5 3.1. Lookup Path Segment Specification . . . . . . . . . . . . 5
3.1.1. IP Network Path Segment Specification . . . . . . . . 5 3.1.1. IP Network Path Segment Specification . . . . . . . . 5
3.1.2. Autonomous System Path Segment Specification . . . . 6 3.1.2. Autonomous System Path Segment Specification . . . . 6
3.1.3. Domain Path Segment Specification . . . . . . . . . . 6 3.1.3. Domain Path Segment Specification . . . . . . . . . . 6
3.1.4. Name Server Path Segment Specification . . . . . . . 7 3.1.4. Name Server Path Segment Specification . . . . . . . 7
3.1.5. Entity Path Segment Specification . . . . . . . . . . 8 3.1.5. Entity Path Segment Specification . . . . . . . . . . 8
3.1.6. Help Path Segment Specification . . . . . . . . . . . 8 3.1.6. Help Path Segment Specification . . . . . . . . . . . 8
3.2. Search Path Segment Specification . . . . . . . . . . . . 8 3.2. Search Path Segment Specification . . . . . . . . . . . . 9
3.2.1. Domain Search . . . . . . . . . . . . . . . . . . . . 9 3.2.1. Domain Search . . . . . . . . . . . . . . . . . . . . 9
3.2.2. Name Server Search . . . . . . . . . . . . . . . . . 10 3.2.2. Name Server Search . . . . . . . . . . . . . . . . . 10
3.2.3. Entity Search . . . . . . . . . . . . . . . . . . . . 11 3.2.3. Entity Search . . . . . . . . . . . . . . . . . . . . 11
4. Query Processing . . . . . . . . . . . . . . . . . . . . . . 12 4. Query Processing . . . . . . . . . . . . . . . . . . . . . . 12
4.1. Partial String Searching . . . . . . . . . . . . . . . . 12 4.1. Partial String Searching . . . . . . . . . . . . . . . . 12
4.2. Character Encoding Considerations . . . . . . . . . . . . 13 4.2. Associated Records . . . . . . . . . . . . . . . . . . . 13
4.3. Associated Records . . . . . . . . . . . . . . . . . . . 14 5. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . 14 6. Internationalization Considerations . . . . . . . . . . . . . 13
6. Internationalization Considerations . . . . . . . . . . . . . 14 6.1. Character Encoding Considerations . . . . . . . . . . . . 14
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.1. Normative References . . . . . . . . . . . . . . . . . . 16 10.1. Normative References . . . . . . . . . . . . . . . . . . 16
10.2. Informative References . . . . . . . . . . . . . . . . . 18 10.2. Informative References . . . . . . . . . . . . . . . . . 17
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 18 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19
1. Conventions Used in This Document 1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
1.1. Acronyms and Abbreviations 1.1. Acronyms and Abbreviations
skipping to change at page 3, line 16 skipping to change at page 3, line 16
was first described in a doctoral dissertation [REST]. was first described in a doctoral dissertation [REST].
RESTful: An adjective that describes a service using HTTP and the RESTful: An adjective that describes a service using HTTP and the
principles of REST. principles of REST.
RIR: Regional Internet Registry RIR: Regional Internet Registry
2. Introduction 2. Introduction
This document describes a specification for querying registration This document describes a specification for querying registration
data using a RESTful web service and uniform query patterns. The data using a RESTful web service and uniform query patterns. The
service is implemented using the Hypertext Transfer Protocol (HTTP) service is implemented using the Hypertext Transfer Protocol (HTTP)
[RFC7230]. These uniform patterns define the query syntax for the [RFC7230] and the conventions described in
Registration Data Access Protocol (RDAP). [I-D.ietf-weirds-using-http]. These uniform patterns define the
query syntax for the Registration Data Access Protocol (RDAP).
The protocol described in this specification is intended to address The protocol described in this specification is intended to address
deficiencies with the WHOIS protocol [RFC3912] that have been deficiencies with the WHOIS protocol [RFC3912] that have been
identified over time, including: identified over time, including:
o Lack of standardized command structures, o Lack of standardized command structures,
o lack of standardized output and error structures, o lack of standardized output and error structures,
o lack of support for internationalization and localization, and o lack of support for internationalization and localization, and
o lack of support for user identification, authentication, and o lack of support for user identification, authentication, and
access control. access control.
The patterns described in this document purposefully do not encompass The patterns described in this document purposefully do not encompass
all of the methods employed in the WHOIS and RESTful web services of all of the methods employed in the WHOIS and other RESTful web
all of the RIRs and DNRs. The intent of the patterns described here services of all of the RIRs and DNRs. The intent of the patterns
are to enable queries of: described here are to enable queries of:
o networks by IP address, o networks by IP address,
o autonomous system numbers by number, o autonomous system numbers by number,
o reverse DNS meta-data by domain, o reverse DNS meta-data by domain,
o name servers by name, o name servers by name,
o registrars by name, and o registrars by name, and
o entities (such as contacts) by identifier. o entities (such as contacts) by identifier.
Server implementations are free to support only a subset of these Server implementations are free to support only a subset of these
features depending on local requirements. If a server receives a features depending on local requirements. If a server receives a
query that it cannot process because it is not implemented it SHOULD query that it cannot process because it is not implemented it SHOULD
return an HTTP 501 [RFC7231] error. It is also envisioned that each return an HTTP 501 [RFC7231] error. It is also envisioned that each
registry will continue to maintain WHOIS and/or RESTful web services registry will continue to maintain WHOIS and/or other RESTful web
specific to their needs and those of their constituencies, and the services specific to their needs and those of their constituencies,
information retrieved through the patterns described here may and the information retrieved through the patterns described here may
reference such services. reference such services.
Likewise, future IETF standards may add additional patterns for Likewise, future IETF standards may add additional patterns for
additional query types. A simple pattern namespacing scheme is additional query types. A simple pattern namespacing scheme is
described in Section 5 to accommodate custom extensions that will not described in Section 5 to accommodate custom extensions that will not
interfere with the patterns defined in this document or patterns interfere with the patterns defined in this document or patterns
defined in future IETF standards. defined in future IETF standards.
WHOIS services, in general, are read-only services. Therefore URL WHOIS services, in general, are read-only services. Therefore URL
[RFC3986] patterns specified in this document are only applicable to [RFC3986] patterns specified in this document are only applicable to
the HTTP [RFC7231] GET and HEAD methods. the HTTP [RFC7231] GET and HEAD methods.
This document does not describe the results or entities returned from This document does not describe the results or entities returned from
issuing the described URLs with an HTTP GET. JSON [RFC7159] result issuing the described URLs with an HTTP GET. The specification of
formatting and processing is described in these entities is described in [I-D.ietf-weirds-json-response].
[I-D.ietf-weirds-json-response].
Additionally, resource management, provisioning and update functions Additionally, resource management, provisioning and update functions
are out of scope for this document. Registries have various and are out of scope for this document. Registries have various and
divergent methods covering these functions, and it is unlikely a divergent methods covering these functions, and it is unlikely a
uniform approach for these functions will ever be possible. uniform approach for these functions will ever be possible.
HTTP contains mechanisms for servers to authenticate clients and for HTTP contains mechanisms for servers to authenticate clients and for
clients to authenticate servers (from which authorization schemes may clients to authenticate servers (from which authorization schemes may
be built) so such mechanisms are not described in this document. be built) so such mechanisms are not described in this document.
Policy, provisioning, and processing of authentication and Policy, provisioning, and processing of authentication and
skipping to change at page 4, line 49 skipping to change at page 4, line 51
this will be used as a base URL that the complete URL is resolved this will be used as a base URL that the complete URL is resolved
against, as per Section 5 of RFC 3986 [RFC3986]. For example, if the against, as per Section 5 of RFC 3986 [RFC3986]. For example, if the
base URL is "http://example.com/rdap/", all RDAP query URLs will base URL is "http://example.com/rdap/", all RDAP query URLs will
begin with "http://example.com/rdap/". begin with "http://example.com/rdap/".
The bootstrap registry does not contain information for query objects The bootstrap registry does not contain information for query objects
that are not part of a global namespace, including entities and help. that are not part of a global namespace, including entities and help.
A base URL for an associated object is required to construct a A base URL for an associated object is required to construct a
complete query. complete query.
For entities: Retrieve a base URL for the service (domain, address, For entities, a base URL is retrieved for the service (domain,
etc.) associated with a given entity. The query URL is constructed address, etc.) associated with a given entity. The query URL is
by concatenating the base URL to the entity path segment specified in constructed by concatenating the base URL to the entity path segment
either Section 3.1.5 or Section 3.2.3. specified in either Section 3.1.5 or Section 3.2.3.
For help: Retrieve a base URL for any service (domain, address, etc.) For help, a base URL is retrieved for any service (domain, address,
for which additional information is required. The query URL is etc.) for which additional information is required. The query URL is
constructed by concatenating the base URL to the help path segment constructed by concatenating the base URL to the help path segment
specified in either Section 3.1.6. specified in either Section 3.1.6.
3.1. Lookup Path Segment Specification 3.1. Lookup Path Segment Specification
The resource type path segments for exact match lookup are: The resource type path segments for exact match lookup are:
o 'ip': Used to identify IP networks and associated data referenced o 'ip': Used to identify IP networks and associated data referenced
using either an IPv4 or IPv6 address. using either an IPv4 or IPv6 address.
o 'autnum': Used to identify autonomous system registrations and o 'autnum': Used to identify autonomous system registrations and
skipping to change at page 5, line 35 skipping to change at page 5, line 35
using a host name. using a host name.
o 'entity': Used to identify an entity information query using a o 'entity': Used to identify an entity information query using a
string identifier. string identifier.
3.1.1. IP Network Path Segment Specification 3.1.1. IP Network Path Segment Specification
Syntax: ip/<IP address> or ip/<CIDR prefix>/<CIDR length> Syntax: ip/<IP address> or ip/<CIDR prefix>/<CIDR length>
Queries for information about IP networks are of the form /ip/XXX/... Queries for information about IP networks are of the form /ip/XXX/...
or /ip/XXX/YY/... where the path segment following 'ip' is either an or /ip/XXX/YY/... where the path segment following 'ip' is either an
IPv4 [RFC1166] or IPv6 [RFC5952] address (i.e. XXX) or an IPv4 or IPv4 dotted-decimal or IPv6 [RFC5952] address (i.e. XXX) or an IPv4
IPv6 CIDR [RFC4632] notation address block (i.e. XXX/YY). or IPv6 CIDR [RFC4632] notation address block (i.e. XXX/YY).
Semantically, the simpler form using the address can be thought of as Semantically, the simpler form using the address can be thought of as
a CIDR block with a bitmask length of 32 for IPv4 and a bitmask a CIDR block with a bitmask length of 32 for IPv4 and a bitmask
length of 128 for IPv6. A given specific address or CIDR may fall length of 128 for IPv6. A given specific address or CIDR may fall
within multiple IP networks in a hierarchy of networks, therefore within multiple IP networks in a hierarchy of networks, therefore
this query targets the "most-specific" or smallest IP network which this query targets the "most-specific" or smallest IP network which
completely encompasses it in a hierarchy of IP networks. completely encompasses it in a hierarchy of IP networks.
The IPv4 and IPv6 address formats supported in this query are The IPv4 and IPv6 address formats supported in this query are
described in section 3.2.2 of [RFC3986], as IPv4address and described in section 3.2.2 of [RFC3986], as IPv4address and
IPv6address ABNF definitions. Any valid IPv6 text address format IPv6address ABNF definitions. Any valid IPv6 text address format
skipping to change at page 7, line 6 skipping to change at page 7, line 6
3.1.3. Domain Path Segment Specification 3.1.3. Domain Path Segment Specification
Syntax: domain/<domain name> Syntax: domain/<domain name>
Queries for domain information are of the form /domain/XXXX/..., Queries for domain information are of the form /domain/XXXX/...,
where XXXX is a fully-qualified (relative to the root) domain name where XXXX is a fully-qualified (relative to the root) domain name
[RFC1594] in either the in-addr.arpa or ip6.arpa zones (for RIRs) or [RFC1594] in either the in-addr.arpa or ip6.arpa zones (for RIRs) or
a fully-qualified domain name in a zone administered by the server a fully-qualified domain name in a zone administered by the server
operator (for DNRs). Internationalized domain names represented in operator (for DNRs). Internationalized domain names represented in
either A-label or U-label format [RFC5890] are also valid domain either A-label or U-label format [RFC5890] are also valid domain
names. names. See Section 6.1 for information on character encoding for the
U-label format.
IDNs SHOULD NOT be represented as a mixture of A-labels and U-labels; IDNs SHOULD NOT be represented as a mixture of A-labels and U-labels;
that is, all internationalized labels in an IDN SHOULD be either that is, all internationalized labels in an IDN SHOULD be either
A-labels or U-labels. It is possible for an RDAP client to assemble A-labels or U-labels. It is possible for an RDAP client to assemble
a query string from multiple independent data sources. Such a client a query string from multiple independent data sources. Such a client
might not be able to perform conversions between A-labels and might not be able to perform conversions between A-labels and
U-labels. An RDAP server that receives a query string with a mixture U-labels. An RDAP server that receives a query string with a mixture
of A-labels and U-labels MAY convert all the U-labels to A-labels, of A-labels and U-labels MAY convert all the U-labels to A-labels,
perform IDNA processing, and proceed with exact-match lookup. In perform IDNA processing, and proceed with exact-match lookup. In
such cases, the response to be returned to the query source may not such cases, the response to be returned to the query source may not
skipping to change at page 8, line 5 skipping to change at page 8, line 6
3.1.4. Name Server Path Segment Specification 3.1.4. Name Server Path Segment Specification
Syntax: nameserver/<name server name> Syntax: nameserver/<name server name>
The <name server name> parameter represents a fully qualified name as The <name server name> parameter represents a fully qualified name as
specified in RFC 952 [RFC0952] and RFC 1123 [RFC1123]. specified in RFC 952 [RFC0952] and RFC 1123 [RFC1123].
Internationalized names represented in either A-label or U-label Internationalized names represented in either A-label or U-label
format [RFC5890] are also valid name server names. IDN processing format [RFC5890] are also valid name server names. IDN processing
for name server names uses the domain name processing instructions for name server names uses the domain name processing instructions
specified in Section 3.1.3. specified in Section 3.1.3. See Section 6.1 for information on
character encoding for the U-label format.
The following URL would be used to find information for the The following URL would be used to find information for the
ns1.example.com name server: ns1.example.com name server:
http://example.com/rdap/nameserver/ns1.example.com http://example.com/rdap/nameserver/ns1.example.com
The following URL would be used to find information for the The following URL would be used to find information for the
ns1.xn--fo-5ja.example name server: ns1.xn--fo-5ja.example name server:
http://example.com/rdap/nameserver/ns1.xn--fo-5ja.example http://example.com/rdap/nameserver/ns1.xn--fo-5ja.example
skipping to change at page 9, line 46 skipping to change at page 10, line 4
form: form:
/domains?name=XXXX /domains?name=XXXX
XXXX is a search pattern representing a domain name in "letters, XXXX is a search pattern representing a domain name in "letters,
digits, hyphen" format [RFC5890] in a zone administered by the server digits, hyphen" format [RFC5890] in a zone administered by the server
operator of a DNR. The following URL would be used to find DNR operator of a DNR. The following URL would be used to find DNR
information for domain names matching the "example*.com" pattern: information for domain names matching the "example*.com" pattern:
http://example.com/rdap/domains?name=example*.com http://example.com/rdap/domains?name=example*.com
Internationalized Domain Names (IDNs) in U-label format [RFC5890] can Internationalized Domain Names (IDNs) in U-label format [RFC5890] can
also be used as search patterns (see Section 4). Searches for these also be used as search patterns (see Section 4). Searches for these
names are of the form /domains?name=XXXX, where XXXX is a search names are of the form /domains?name=XXXX, where XXXX is a search
pattern representing a domain name in U-label format [RFC5890]. pattern representing a domain name in U-label format [RFC5890]. See
Section 6.1 for information on character encoding for the U-label
format.
Searches for domain information by name server name are specified Searches for domain information by name server name are specified
using this form: using this form:
/domains?nsLdhName=YYYY /domains?nsLdhName=YYYY
YYYY is a search pattern representing a host name in "letters, YYYY is a search pattern representing a host name in "letters,
digits, hyphen" format [RFC5890] in a zone administered by the server digits, hyphen" format [RFC5890] in a zone administered by the server
operator of a DNR. The following URL would be used to search for operator of a DNR. The following URL would be used to search for
domains delegated to name servers matching the "ns1.example*.com" domains delegated to name servers matching the "ns1.example*.com"
skipping to change at page 11, line 4 skipping to change at page 11, line 11
operator of a DNR. The following URL would be used to find DNR operator of a DNR. The following URL would be used to find DNR
information for name server names matching the "ns1.example*.com" information for name server names matching the "ns1.example*.com"
pattern: pattern:
http://example.com/rdap/nameservers?name=ns1.example*.com http://example.com/rdap/nameservers?name=ns1.example*.com
Internationalized name server names in U-label format [RFC5890] can Internationalized name server names in U-label format [RFC5890] can
also be used as search patterns (see Section 4). Searches for these also be used as search patterns (see Section 4). Searches for these
names are of the form /nameservers?name=XXXX, where XXXX is a search names are of the form /nameservers?name=XXXX, where XXXX is a search
pattern representing a name server name in U-label format [RFC5890]. pattern representing a name server name in U-label format [RFC5890].
See Section 6.1 for information on character encoding for the U-label
format.
Searches for name server information by name server IP address are Searches for name server information by name server IP address are
specified using this form: specified using this form:
/nameservers?ip=YYYY /nameservers?ip=YYYY
YYYY is a search pattern representing an IPv4 [RFC1166] or IPv6 YYYY is a search pattern representing an IPv4 [RFC1166] or IPv6
[RFC5952] address. The following URL would be used to search for [RFC5952] address. The following URL would be used to search for
name server names that resolve to the "192.0.2.0" address: name server names that resolve to the "192.0.2.0" address:
skipping to change at page 13, line 7 skipping to change at page 13, line 12
another Unicode character or characters. Partial match searches with another Unicode character or characters. Partial match searches with
incomplete combinations of characters where a character must be incomplete combinations of characters where a character must be
combined with another character or characters are invalid. Partial combined with another character or characters are invalid. Partial
match searches with characters that may be combined with another match searches with characters that may be combined with another
character or characters are to be considered non-combined characters character or characters are to be considered non-combined characters
(that is, if character x may be combined with character y but (that is, if character x may be combined with character y but
character y is not submitted in the search string then character x is character y is not submitted in the search string then character x is
a complete character and no combinations of character x are to be a complete character and no combinations of character x are to be
searched). searched).
4.2. Character Encoding Considerations 4.2. Associated Records
Servers can expect to receive search patterns from clients that
contain character strings encoded in different forms supported by
HTTP. It is entirely possible to apply filters and normalization
rules to search patterns prior to making character comparisons, but
this type of processing is more typically needed to determine the
validity of registered strings than to match patterns.
An RDAP client submitting a query string containing non-US-ASCII
characters converts such strings into Unicode in UTF-8 encoding. It
then performs any local case mapping deemed necessary. Strings are
normalized using Normalization Form C (NFC, [Unicode-UAX15]); note
that clients might not be able to do this reliably.
An RDAP server treats each query string as Unicode in UTF-8 encoding.
If a string is not valid UTF-8, the server can immediately stop
processing the query and return an HTTP 400 error response code.
When processing queries, there is a difference in handling DNS names,
including those including putative U-labels, and everything else.
DNS names are treated according to the DNS matching rules as
described in Section 3.1 of RFC 1035 [RFC1035] for NR-LDH labels and
the matching rules described in Section 5.4 of RFC 5891 [RFC5891] for
U-labels. Matching of DNS names proceeds one label at a time,
because it is possible for a combination of U-labels and NR-LDH
labels to be found in a single domain or host name. The
determination of whether a label is a U-label or an NR-LDH label is
based on whether the label contains any characters outside of the US-
ASCII letters, digits, or hyphen (the so-called LDH rule).
For everything else, servers map fullwidth and halfwidth characters
to their decomposition equivalents. Servers convert strings to the
same coded character set of the target data that is to be looked up
or searched and each string is normalized using the same
normalization that was used on the target data. In general, storage
of strings as Unicode is RECOMMENDED. For the purposes of
comparison, Normalization Form KC (NFKC, [Unicode-UAX15]) with case
folding is used to maximize predictability and the number of matches.
Note the use of case-folded NFKC as opposed to NFC in this case.
4.3. Associated Records
Conceptually, a name-record in a database may include a link to an Conceptually, a name-record in a database may include a link to an
associated name-record, which may include a link to another such associated name-record, which may include a link to another such
record, and so on. If an implementation is to return more than one record, and so on. If an implementation is to return more than one
name-record in response to a query, information from the records name-record in response to a query, information from the records
thereby identified is returned. thereby identified is returned.
Note that this model includes arrangements for associated names, Note that this model includes arrangements for associated names,
including those that are linked by policy mechanisms and names bound including those that are linked by policy mechanisms and names bound
together for some other purposes. Note also that returning together for some other purposes. Note also that returning
skipping to change at page 15, line 7 skipping to change at page 14, line 15
and display A-labels if they are unable to input U-labels with their and display A-labels if they are unable to input U-labels with their
keyboard configuration. Both query forms are acceptable. keyboard configuration. Both query forms are acceptable.
Internationalized domain and name server names can contain character Internationalized domain and name server names can contain character
variants and variant labels as described in RFC 4290 [RFC4290]. variants and variant labels as described in RFC 4290 [RFC4290].
Clients that support queries for internationalized domain and name Clients that support queries for internationalized domain and name
server names MUST accept service provider responses that describe server names MUST accept service provider responses that describe
variants as specified in "JSON Responses for the Registration Data variants as specified in "JSON Responses for the Registration Data
Access Protocol" [I-D.ietf-weirds-json-response]. Access Protocol" [I-D.ietf-weirds-json-response].
6.1. Character Encoding Considerations
Servers can expect to receive search patterns from clients that
contain character strings encoded in different forms supported by
HTTP. It is entirely possible to apply filters and normalization
rules to search patterns prior to making character comparisons, but
this type of processing is more typically needed to determine the
validity of registered strings than to match patterns.
An RDAP client submitting a query string containing non-US-ASCII
characters converts such strings into Unicode in UTF-8 encoding. It
then performs any local case mapping deemed necessary. Strings are
normalized using Normalization Form C (NFC, [Unicode-UAX15]); note
that clients might not be able to do this reliably. UTF-8 encoded
strings are then appropriately percent-encoded [RFC3986] in the query
URL.
After parsing any percent-encoding, an RDAP server treats each query
string as Unicode in UTF-8 encoding. If a string is not valid UTF-8,
the server can immediately stop processing the query and return an
HTTP 400 error response code.
When processing queries, there is a difference in handling DNS names,
including those including putative U-labels, and everything else.
DNS names are treated according to the DNS matching rules as
described in Section 3.1 of RFC 1035 [RFC1035] for NR-LDH labels and
the matching rules described in Section 5.4 of RFC 5891 [RFC5891] for
U-labels. Matching of DNS names proceeds one label at a time,
because it is possible for a combination of U-labels and NR-LDH
labels to be found in a single domain or host name. The
determination of whether a label is a U-label or an NR-LDH label is
based on whether the label contains any characters outside of the US-
ASCII letters, digits, or hyphen (the so-called LDH rule).
For everything else, servers map fullwidth and halfwidth characters
to their decomposition equivalents. Servers convert strings to the
same coded character set of the target data that is to be looked up
or searched and each string is normalized using the same
normalization that was used on the target data. In general, storage
of strings as Unicode is RECOMMENDED. For the purposes of
comparison, Normalization Form KC (NFKC, [Unicode-UAX15]) with case
folding is used to maximize predictability and the number of matches.
Note the use of case-folded NFKC as opposed to NFC in this case.
7. IANA Considerations 7. IANA Considerations
This document does not specify any IANA actions. This document does not specify any IANA actions.
8. Security Considerations 8. Security Considerations
Security services for the operations specified in this document are Security services for the operations specified in this document are
described in "Security Services for the Registration Data Access described in "Security Services for the Registration Data Access
Protocol" [I-D.ietf-weirds-rdap-sec]. Protocol" [I-D.ietf-weirds-rdap-sec].
skipping to change at page 16, line 14 skipping to change at page 16, line 17
Ernie Dainow, Jean-Philippe Dionne, Behnam Esfahbod, John Klensin, Ernie Dainow, Jean-Philippe Dionne, Behnam Esfahbod, John Klensin,
Edward Lewis, John Levine, Mark Nottingham, and Andrew Sullivan. Edward Lewis, John Levine, Mark Nottingham, and Andrew Sullivan.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-weirds-bootstrap] [I-D.ietf-weirds-bootstrap]
Blanchet, M. and G. Leclanche, "Finding the Authoritative Blanchet, M. and G. Leclanche, "Finding the Authoritative
Registration Data (RDAP) Service", draft-ietf-weirds- Registration Data (RDAP) Service", draft-ietf-weirds-
bootstrap-06 (work in progress), September 2014. bootstrap-07 (work in progress), September 2014.
[I-D.ietf-weirds-json-response] [I-D.ietf-weirds-json-response]
Newton, A. and S. Hollenbeck, "JSON Responses for the Newton, A. and S. Hollenbeck, "JSON Responses for the
Registration Data Access Protocol (RDAP)", draft-ietf- Registration Data Access Protocol (RDAP)", draft-ietf-
weirds-json-response-08 (work in progress), August 2014. weirds-json-response-09 (work in progress), September
2014.
[I-D.ietf-weirds-rdap-sec] [I-D.ietf-weirds-rdap-sec]
Hollenbeck, S. and N. Kong, "Security Services for the Hollenbeck, S. and N. Kong, "Security Services for the
Registration Data Access Protocol", draft-ietf-weirds- Registration Data Access Protocol", draft-ietf-weirds-
rdap-sec-08 (work in progress), August 2014. rdap-sec-09 (work in progress), September 2014.
[I-D.ietf-weirds-using-http] [I-D.ietf-weirds-using-http]
Newton, A., Ellacott, B., and N. Kong, "HTTP usage in the Newton, A., Ellacott, B., and N. Kong, "HTTP usage in the
Registration Data Access Protocol (RDAP)", draft-ietf- Registration Data Access Protocol (RDAP)", draft-ietf-
weirds-using-http-11 (work in progress), September 2014. weirds-using-http-12 (work in progress), September 2014.
[RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet [RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet
host table specification", RFC 952, October 1985. host table specification", RFC 952, October 1985.
[RFC1035] Mockapetris, P., "Domain names - implementation and [RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987. specification", STD 13, RFC 1035, November 1987.
[RFC1123] Braden, R., "Requirements for Internet Hosts - Application [RFC1123] Braden, R., "Requirements for Internet Hosts - Application
and Support", STD 3, RFC 1123, October 1989. and Support", STD 3, RFC 1123, October 1989.
[RFC1166] Kirkpatrick, S., Stahl, M., and M. Recker, "Internet [RFC1166] Kirkpatrick, S., Stahl, M., and M. Recker, "Internet
numbers", RFC 1166, July 1990. numbers", RFC 1166, July 1990.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC Resource Identifier (URI): Generic Syntax", STD 66, RFC
3986, January 2005. 3986, January 2005.
[RFC4290] Klensin, J., "Suggested Practices for Registration of
Internationalized Domain Names (IDN)", RFC 4290, December
2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006. Architecture", RFC 4291, February 2006.
[RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing
(CIDR): The Internet Address Assignment and Aggregation (CIDR): The Internet Address Assignment and Aggregation
Plan", BCP 122, RFC 4632, August 2006. Plan", BCP 122, RFC 4632, August 2006.
[RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed [RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed
Authoring and Versioning (WebDAV)", RFC 4918, June 2007. Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
skipping to change at page 18, line 22 skipping to change at page 18, line 16
and Answers - Answers to Commonly asked "New Internet and Answers - Answers to Commonly asked "New Internet
User" Questions", RFC 1594, March 1994. User" Questions", RFC 1594, March 1994.
[RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912,
September 2004. September 2004.
[RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and [RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and
B. Zill, "IPv6 Scoped Address Architecture", RFC 4007, B. Zill, "IPv6 Scoped Address Architecture", RFC 4007,
March 2005. March 2005.
[RFC4290] Klensin, J., "Suggested Practices for Registration of
Internationalized Domain Names (IDN)", RFC 4290, December
2005.
[RFC6927] Levine, J. and P. Hoffman, "Variants in Second-Level Names [RFC6927] Levine, J. and P. Hoffman, "Variants in Second-Level Names
Registered in Top-Level Domains", RFC 6927, May 2013. Registered in Top-Level Domains", RFC 6927, May 2013.
[RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, March 2014. Interchange Format", RFC 7159, March 2014.
Appendix A. Change Log Appendix A. Change Log
Initial -00: Adopted as working group document. Initial -00: Adopted as working group document.
-01: Added "Conventions Used in This Document" section. Added -01: Added "Conventions Used in This Document" section. Added
skipping to change at page 19, line 32 skipping to change at page 19, line 28
references to RFC 2616 with references to RFC 7231 and draft-ietf- references to RFC 2616 with references to RFC 7231 and draft-ietf-
httpbis-http2, adding a note to make it clear that 2616 is an httpbis-http2, adding a note to make it clear that 2616 is an
acceptable reference if http2 isn't ready when needed. acceptable reference if http2 isn't ready when needed.
-12: IDN label processing clarification. Added domain search by -12: IDN label processing clarification. Added domain search by
name server name and name server IP address. Minor text editing name server name and name server IP address. Minor text editing
for consistency in the search sections. Replaced reference to for consistency in the search sections. Replaced reference to
draft-ietf-httpbis-http2 with a reference to RFC 7230 and removed draft-ietf-httpbis-http2 with a reference to RFC 7230 and removed
reference note. reference note.
-13: Added HTTP HEAD reference in Section 3.2. -13: Added HTTP HEAD reference in Section 3.2.
-14: Address WG last call comments. -14: Address WG last call comments.
-15: Address AD review comments.
Authors' Addresses Authors' Addresses
Andrew Lee Newton Andrew Lee Newton
American Registry for Internet Numbers American Registry for Internet Numbers
3635 Concorde Parkway 3635 Concorde Parkway
Chantilly, VA 20151 Chantilly, VA 20151
US US
Email: andy@arin.net Email: andy@arin.net
 End of changes. 27 change blocks. 
83 lines changed or deleted 93 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/