gpt4 book ai didi

http - 为什么我们在 websocket 握手响应中使用\n\r?

转载 作者:可可西里 更新时间:2023-11-01 02:44:46 25 4
gpt4 key购买 nike

为什么我们使用 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 等应用层协议(protocol)为字节添加了含义,从而定义了传输数据的结构。最终,WebSockets 使用 TCP 套接字来传输消息,即 WebSockets 本质上定义了结构化消息以及它们如何序列化为字节以便在 TCP 提供的数据流中传输。

关于http - 为什么我们在 websocket 握手响应中使用\n\r?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53166213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com