RFC 7936 PROPOSED STANDARD HTTP · REGISTRY

WebSocket Subprotocols: Clarifying Registry Procedures for the WebSocket Subprotocol Name Registry

Clarifying rules for registering WebSocket subprotocol names.

On rfc-editor.org ↗
PUBLISHED
July 2016
AUTHORS
T. Hardie
STREAM
IETF
BUILDS ON
RFC 6455 — WebSocket
REGISTRATION POLICY
First Come First Serve
CASE HANDLING
Reject case-only differences
DOI
10.17487/RFC7936

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         T. Hardie
Request for Comments: 7936                                     July 2016
Updates: 6455
Category: Standards Track
ISSN: 2070-1721


                     Clarifying Registry Procedures
              for the WebSocket Subprotocol Name Registry

Abstract

   This document clarifies the instructions to IANA for the subprotocol
   registry set up for WebSockets in RFC 6455.

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
   http://www.rfc-editor.org/info/rfc7936.

Copyright Notice

   Copyright (c) 2016 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
   (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.

Table of Contents

   1. Introduction ................................................... 2
   2. Clarified Instructions ......................................... 2
   3. Security Considerations ........................................ 2
   4. IANA Considerations ............................................ 2
   5. Normative References ........................................... 3
   Acknowledgements .................................................. 3
   Author's Address .................................................. 3

1.  Introduction

   Section 11.5 of [RFC6455] sets up a WebSocket Subprotocol Name
   Registry at IANA and directs IANA to use First Come First Serve
   registration procedures as set out in [RFC5226].  The reuse of this
   registry by other protocols has indicated that some clarification of
   the instructions to IANA would be useful.

2.  Clarified Instructions

   The tokens registered in the WebSocket Subprotocol Name Registry
   created by Section 11.5 of RFC 6455 are matched using case-sensitive
   string match.  IANA is, however, instructed to decline registrations
   in the registry which differ only as to case, in order to minimize
   potential confusion among different registered versions.  For other
   useful advice on avoiding collision, registrants are encouraged to
   consult the non-normative Section 1.9 of RFC 6455.

3.  Security Considerations

   This document describes an update to registry policy, not a protocol.

4.  IANA Considerations

   This document is, in its entirety, a clarification of the registry
   policy for the WebSocket Subprotocol Name Registry.  As part of this
   clarification, IANA has listed both this document and RFC 6455 as
   references for the WebSocket Subprotocol Name Registry.  In addition,
   IANA has included the following note under the registry's
   Registration Procedures: "Please see Section 2 of RFC 7936, which
   clarifies that registrations which differ from existing registrations
   only by case will be refused."

5.  Normative References

   [RFC6455]  Fette, I. and A. Melnikov, "The WebSocket Protocol",
              RFC 6455, DOI 10.17487/RFC6455, December 2011,
              <http://www.rfc-editor.org/info/rfc6455>.

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

Acknowledgements

   Takeshi Yoshino, Anne Van Kesteren, Julian Reshke, Barry Leiba, and
   Alexey Melnikov reviewed this update.  Harald Alvestrand acted as
   document shepherd.

Author's Address

   Ted Hardie

   Email: ted.ietf@gmail.com

AI ELI5

On this page
PROBLEMRFC 6455 created a registry for WebSocket subprotocol names but the instructions for handling case-sensitive names were unclear, causing potential for confusion.
MECHANISMRFC 7936 clarifies that subprotocol tokens are matched case-sensitively, and IANA should refuse registrations that differ only by case from existing ones.
WHY IT MATTERSNew WebSocket subprotocol names can be registered with clear rules that prevent similar-looking names from causing confusion.

§1Introduction

RFC 6455 established a registry at IANA for WebSocket subprotocol names and said that IANA should use First Come First Serve registration procedures. However, as other protocols started reusing this registry, it became clear that the instructions about how to handle case sensitivity needed clarification. The subprotocol tokens are matched using case-sensitive string matching, but without clear guidance, registrants might try to register names that differed only in case.

WebSocket needed a way for different programs to agree on message formats. They set up a name list but forgot to explain how strictly they check the spelling.

§2Clarified Registry Rules

RFC 7936 makes the rules explicit: subprotocol tokens are matched case-sensitively, so xmpp and XMPP are technically different. However, IANA is instructed to decline any registration that differs from an existing one only in case, to minimize confusion. This means if myapp is already registered, IANA will reject MyApp or MYAPP.

The RFC also encourages registrants to consult section 1.9 of RFC 6455 for additional advice on avoiding collisions and choosing good subprotocol names.

Names are checked letter-by-letter including uppercase and lowercase, but IANA will stop you from registering a name that's just a different capitalization of one already registered.

§3Status

RFC 7936 is a Proposed Standard that updates RFC 6455. The WebSocket Subprotocol Name Registry now has clear case-sensitivity rules documented by both RFCs.

This is the official clarification about how WebSocket names are registered and checked.

§4References