字节顺序和网络服务器
Endianness and web server
我正在学习套接字编程,我不明白字节序原则适用于何处。
我正在制作一个通过 HTTP/1.1 进行通信的简单 Web 服务器。我发现通常不需要担心 HTTP/1.1 中的字节序问题。但是在 HTTP/2 中我必须担心,因为它使用二进制元素。
如果是 HTTP2,我应该检查我正在与之通信的客户端类型吗?为了发送具有良好字节序类型的数据?
如果问题不清楚,请告诉我。
非常感谢。
服务器不需要知道客户端使用的字节序。使用二进制数据的网络协议总是指定通过网络传输的字节序。例如 HTTP/2 RFC-7540 说
All numeric values are in network byte order.
TCP/IP 标准网络字节顺序是 big-endian。所以所有数字都应该是 big-endian 并且服务器必须将它们转换为 big-endian。客户端必须假定收到的所有内容都是 big-endian 并将其转换为本地表示。
我正在学习套接字编程,我不明白字节序原则适用于何处。 我正在制作一个通过 HTTP/1.1 进行通信的简单 Web 服务器。我发现通常不需要担心 HTTP/1.1 中的字节序问题。但是在 HTTP/2 中我必须担心,因为它使用二进制元素。
如果是 HTTP2,我应该检查我正在与之通信的客户端类型吗?为了发送具有良好字节序类型的数据?
如果问题不清楚,请告诉我。
非常感谢。
服务器不需要知道客户端使用的字节序。使用二进制数据的网络协议总是指定通过网络传输的字节序。例如 HTTP/2 RFC-7540 说
All numeric values are in network byte order.
TCP/IP 标准网络字节顺序是 big-endian。所以所有数字都应该是 big-endian 并且服务器必须将它们转换为 big-endian。客户端必须假定收到的所有内容都是 big-endian 并将其转换为本地表示。