RFC Errata
RFC 7692, "Compression Extensions for WebSocket", December 2015
Source of RFC: hybi (art)
Errata ID: 4982
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Mark Straver
Date Reported: 2017-03-28
Section 7.1.1.1 says:
A server MAY include the "server_no_context_takeover" extension parameter in an extension negotiation response even if the extension negotiation offer being accepted by the extension negotiation response didn't include the "server_no_context_takeover" extension parameter.
It should say:
A server MAY include the "server_no_context_takeover" extension parameter in an extension negotiation response even if the extension negotiation offer being accepted by the extension negotiation response didn't include the "server_no_context_takeover" extension parameter. A client SHOULD treat the "server_no_context_takeover" extension parameter in an extension negotiation response as a hint with no requirement to provide an implementation, and MUST NOT treat this parameter, if included in the response, as an invalid configuration.
Notes:
It is currently possible for a client and a server to implement per spec and fail to make a connection.
There is no requirement for a client to implement this purely optional parameter, nor to understand this parameter if not implemented. If not supported, this would result in an invalid configuration. As a result, point 7 mandates that the socket connection MUST be closed.
This will only occur if a client has no implementation for this parameter and does not understand/accept the parameter, and the server sends an unsolicited "server_no_context_takeover" parameter in its response, which is allowed.