Registration Data Access Protocol (RDAP) Query Parameters for Result Sorting and Paging
RFC 8977

Document Type RFC - Proposed Standard (January 2021; No errata)
Authors Mario Loffredo  , Maurizio Martinelli  , Scott Hollenbeck 
Last updated 2021-01-22
Replaces draft-loffredo-regext-rdap-sorting-and-paging
Stream IETF
Formats plain text html xml pdf htmlized bibtex
Reviews
Stream WG state Submitted to IESG for Publication
Document shepherd Tom Harrison
Shepherd write-up Show (last changed 2020-04-21)
IESG IESG state RFC 8977 (Proposed Standard)
Action Holders
(None)
Consensus Boilerplate Yes
Telechat date
Responsible AD Barry Leiba
Send notices to Tom Harrison <tomh@apnic.net>
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
IANA expert review state Expert Reviews OK


Internet Engineering Task Force (IETF)                       M. Loffredo
Request for Comments: 8977                                 M. Martinelli
Category: Standards Track                            IIT-CNR/Registro.it
ISSN: 2070-1721                                            S. Hollenbeck
                                                           Verisign Labs
                                                            January 2021

  Registration Data Access Protocol (RDAP) Query Parameters for Result
                           Sorting and Paging

Abstract

   The Registration Data Access Protocol (RDAP) does not include core
   functionality for clients to provide sorting and paging parameters
   for control of large result sets.  This omission can lead to
   unpredictable server processing of queries and client processing of
   responses.  This unpredictability can be greatly reduced if clients
   can provide servers with their preferences for managing large
   responses.  This document describes RDAP query extensions that allow
   clients to specify their preferences for sorting and paging result
   sets.

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 7841.

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

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://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.

Table of Contents

   1.  Introduction
     1.1.  Conventions Used in This Document
   2.  RDAP Query Parameter Specification
     2.1.  Sorting and Paging Metadata
       2.1.1.  RDAP Conformance
     2.2.  "count" Parameter
     2.3.  "sort" Parameter
       2.3.1.  Sorting Properties Declaration
       2.3.2.  Representing Sorting Links
     2.4.  "cursor" Parameter
       2.4.1.  Representing Paging Links
   3.  Negative Answers
   4.  Implementation Considerations
   5.  IANA Considerations
   6.  Security Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Appendix A.  JSONPath Operators
   Appendix B.  Approaches to Result Pagination
     B.1.  Specific Issues Raised by RDAP
   Appendix C.  Implementation Notes
     C.1.  Sorting
     C.2.  Counting
     C.3.  Paging
   Acknowledgements
   Authors' Addresses

1.  Introduction

   The availability of functionality for result sorting and paging
   provides benefits to both clients and servers in the implementation
   of RESTful services [REST].  These benefits include:

   *  reducing the server response bandwidth requirements

   *  improving server response time

   *  improving query precision and, consequently, obtaining more
      relevant results

   *  decreasing server query processing load

   *  reducing client response processing time

   Approaches to implementing features for result sorting and paging can
   be grouped into two main categories:

   1.  Sorting and paging are implemented through the introduction of
       additional parameters in the query string (e.g., the Open Data
       Protocol (ODATA) [ODATA-PART1]).

   2.  Information related to the number of results and the specific
       portion of the result set to be returned, in addition to a set of
       ready-made links for the result set scrolling, are inserted in
       the HTTP header of the request/response [RFC7231].

   However, there are some drawbacks associated with the use of the HTTP
   header.  First, the header properties cannot be set directly from a
   web browser.  Moreover, in an HTTP session, the information on the
   status (i.e., the session identifier) is usually inserted in the
   header or a cookie, while the information on the resource
   identification or the search type is included in the query string.
   Finally, providing custom information through HTTP headers assumes
   the client has prior knowledge of the server implementation, which is
   widely considered a Representational State Transfer (REST) design
   anti-pattern.  As a result, this document describes a specification
Show full document text