WebSocket Subprotocols: Clarifying Registry Procedures for the WebSocket Subprotocol Name Registry
Clarifying rules for registering WebSocket subprotocol names.
Hardie, T., "Clarifying Registry Procedures for the WebSocket Subprotocol Name Registry", RFC 7936, DOI 10.17487/RFC7936, July 2016, <https://www.rfc-editor.org/info/rfc7936>.
@misc{rfc7936,
series = {Request for Comments},
number = 7936,
howpublished = {RFC 7936},
publisher = {RFC Editor},
doi = {10.17487/RFC7936},
url = {https://www.rfc-editor.org/info/rfc7936},
author = {T. Hardie},
title = {{Clarifying Registry Procedures for the WebSocket Subprotocol Name Registry}},
pagetotal = 3,
year = 2016,
month = jul,
} RFC text
Contents
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
§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.