Internet-Draft Efficient RDAP Referrals May 2024
Brown & Newton Expires 24 November 2024 [Page]
Workgroup:
Registration Protocols Extensions (regext)
Internet-Draft:
draft-brown-rdap-referrals-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
G. Brown
ICANN
A. Newton
ICANN

Efficient RDAP Referrals

Abstract

This document describes how RDAP servers can provide HTTP "Link" header fields in RDAP responses to allow RDAP clients to efficiently determine the URL of related RDAP records for a resource.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 24 November 2024.

Table of Contents

1. Introduction

Many Registration Data Access Protocol (RDAP, described in [RFC7480], [RFC7481], [RFC9082], [RFC9083] and others) resources contain referrals to related RDAP resources.

For example, in the domain space, an RDAP record for a domain name received from the registry operator may include a referral to the RDAP record for the same object provided by the sponsoring registrar, while in the IP address space, an RDAP record for an address allocation may include referrals to enclosing or sibling prefixes.

In both cases, RDAP service users are often equally if not more interested in these related RDAP resources than the resource provided by the TLD registry or RIR.

While RDAP supports redirection of RDAP requests using HTTP redirections (which use a 3xx HTTP status and the "Location" header field, see Section 15.4 of [RFC9110]), it is not possible for RDAP servers to know a priori whether a client requesting an RDAP record is doing so because it wants to retrieve a related RDAP record, or its own, so it can only respond by providing the full RDAP response. The client must then parse that response in order to extract the relevant URL from the "links" property of the object.

This results in the wasteful expenditure of time, compute resources and bandwidth on the part of both the client and server.

This document describes how an RDAP server can use "Link" HTTP header fields in responses to HEAD and GET requests to provide RDAP clients with the URL of related RDAP records, without the need for a signalling mechanism for the client to tell the server that it is only interested in retrieving those URLs.

4. RDAP Responses

In response to GET and HEAD RDAP requests, RDAP servers which implement this specification MUST include a "Link" header field for each link object which refers to an RDAP resource that is present in the "links" array of the object in question. The server MAY also include "Link" headers for link objects which refer to other types of resource. In all cases, the link attributes MUST be the same in both places.

4.1. RDAP HEAD requests

The HTTP HEAD method can be used for obtaining metadata about a resource without transferring that resource (see Section 4.3.2 of [RFC7231]).

An RDAP client which only wishes to obtain the URLs of related RDAP resources can issue a HEAD request for an RDAP resource and check the response for the presence of an appropriate "Link" header field. If the link is absent, it may then fall back to performing a GET request.

An RDAP client interested in both the server's record and related records can use the traditional method of performing a GET request and extracting the link objects from the response. To improve performance, RDAP clients MAY inspect the header of a response, extract the link headers, and issue requests for the related record in parallel while the request to the server is still in flight. As an example, the cURL library provides the CURLOPT_HEADERFUNCTION configuration option to provide a callback that is invoked as soon as it has received header data.

5. RDAP Conformance

Servers which implement this specification MUST include the string "link_headers" in the "rdapConformance" array in all RDAP responses.

6. IANA Considerations

IANA is requested to register the following value in the RDAP Extensions Registry:

Extension identifier:
registrar_link_header
Registry operator:
any
Published specification:
this document
Contact:
IETF <iesg@ietf.org>
Intended usage:
this extension indicates that the server provides the URL of the registrar's RDAP record in a "Link" header in responses to RDAP queries.

7. Normative References

[RFC7231]
Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, DOI 10.17487/RFC7231, , <https://www.rfc-editor.org/info/rfc7231>.
[RFC7480]
Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the Registration Data Access Protocol (RDAP)", STD 95, RFC 7480, DOI 10.17487/RFC7480, , <https://www.rfc-editor.org/info/rfc7480>.
[RFC7481]
Hollenbeck, S. and N. Kong, "Security Services for the Registration Data Access Protocol (RDAP)", STD 95, RFC 7481, DOI 10.17487/RFC7481, , <https://www.rfc-editor.org/info/rfc7481>.
[RFC8288]
Nottingham, M., "Web Linking", RFC 8288, DOI 10.17487/RFC8288, , <https://www.rfc-editor.org/info/rfc8288>.
[RFC9082]
Hollenbeck, S. and A. Newton, "Registration Data Access Protocol (RDAP) Query Format", STD 95, RFC 9082, DOI 10.17487/RFC9082, , <https://www.rfc-editor.org/info/rfc9082>.
[RFC9083]
Hollenbeck, S. and A. Newton, "JSON Responses for the Registration Data Access Protocol (RDAP)", STD 95, RFC 9083, DOI 10.17487/RFC9083, , <https://www.rfc-editor.org/info/rfc9083>.
[RFC9110]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, DOI 10.17487/RFC9110, , <https://www.rfc-editor.org/info/rfc9110>.

Authors' Addresses

Gavin Brown
ICANN
12025 Waterfront Drive, Suite 300
Los Angeles, CA 90292
United States of America
Andy Newton
ICANN
12025 Waterfront Drive, Suite 300
Los Angeles, CA 90292
United States of America