为什么我们在 websocket 握手响应中使用 \n\r?
why we use the \n\r in the websocket handshake response?
为什么我们在HTTP headers
中使用\r\n
进行JS WebSocket
握手response
和两次\r\n\r\n
最后握手request
。这是否可以在不添加 \r\n
的情况下进行握手响应?
\r\n
是否也用于 TCP socket
还是仅用于 JS WebSocket
?
例如:
"Upgrade: something\r\n".
"Connection: something\r\n".
// ...
"Sec-WebSocket-Accept: something\r\n\r\n";
Why we use the \n\r in HTTP headers for JS WebSocket handshake response ...
最初的 Websocket 握手是 HTTP。所以使用的消息格式在 HTTP 规范中定义。 HTTP 本身从早期的标准(如 RFC 821(邮件格式))中获得了这个想法,它再次从旧的东西中得到了这个——我们只是说它的演变方式与语言的演变方式相似。人们可能会以不同的方式做到这一点,但现在就像这样。
重要的是所有人都以相同的方式使用它并以相同的方式理解它,包括理解它既不是您所说的\n\r
,也不是通常使用的\n
,而是\r\n
.
Are the \n\r is also used in TCP socket or no it is only used for JS WebSocket?
TCP 是一个八位字节流,只有在不同的传输字节在 TCP 级别没有特定含义的情况下。 HTTP 或 WebSockets 等应用层协议为字节添加了含义,从而定义了传输数据的结构。最终,WebSockets 使用 TCP 套接字来传输消息,即 WebSockets 本质上定义了结构化消息以及它们如何序列化为字节以便在 TCP 提供的数据流中传输。
最初的 WebSocket 握手请求是一个标准的 HTTP 升级请求。 HTTP 使用 CRLF(在许多语言中可以使用 \r\n
转义序列来表示,包括 C 和 C++)来终止消息的 header 中的每一行,并使用 2 个 CRLF 来分隔消息的 headers 来自其 body。格式化初始握手时必须遵循 HTTP 规范。
阅读 RFC 6455 了解 WebSocket 协议规范,其中包含所有内容。
为什么我们在HTTP headers
中使用\r\n
进行JS WebSocket
握手response
和两次\r\n\r\n
最后握手request
。这是否可以在不添加 \r\n
的情况下进行握手响应?
\r\n
是否也用于 TCP socket
还是仅用于 JS WebSocket
?
例如:
"Upgrade: something\r\n".
"Connection: something\r\n".
// ...
"Sec-WebSocket-Accept: something\r\n\r\n";
Why we use the \n\r in HTTP headers for JS WebSocket handshake response ...
最初的 Websocket 握手是 HTTP。所以使用的消息格式在 HTTP 规范中定义。 HTTP 本身从早期的标准(如 RFC 821(邮件格式))中获得了这个想法,它再次从旧的东西中得到了这个——我们只是说它的演变方式与语言的演变方式相似。人们可能会以不同的方式做到这一点,但现在就像这样。
重要的是所有人都以相同的方式使用它并以相同的方式理解它,包括理解它既不是您所说的\n\r
,也不是通常使用的\n
,而是\r\n
.
Are the \n\r is also used in TCP socket or no it is only used for JS WebSocket?
TCP 是一个八位字节流,只有在不同的传输字节在 TCP 级别没有特定含义的情况下。 HTTP 或 WebSockets 等应用层协议为字节添加了含义,从而定义了传输数据的结构。最终,WebSockets 使用 TCP 套接字来传输消息,即 WebSockets 本质上定义了结构化消息以及它们如何序列化为字节以便在 TCP 提供的数据流中传输。
最初的 WebSocket 握手请求是一个标准的 HTTP 升级请求。 HTTP 使用 CRLF(在许多语言中可以使用 \r\n
转义序列来表示,包括 C 和 C++)来终止消息的 header 中的每一行,并使用 2 个 CRLF 来分隔消息的 headers 来自其 body。格式化初始握手时必须遵循 HTTP 规范。
阅读 RFC 6455 了解 WebSocket 协议规范,其中包含所有内容。