Почему мы используем \ n \ r в заголовках HTTP для ответа на рукопожатие JS WebSocket ...
Начальное рукопожатие Websocket - HTTP. Таким образом, используемый формат сообщения определен в спецификации HTTP. Сам HTTP имеет эту идею из более ранних стандартов, таких как RFC 821 (формат почты), который снова получил это из более старых вещей - скажем так, он развивался таким же образом, как развивались языки. Можно было бы сделать это по-другому, но теперь это так.
Важная часть заключается в том, что все используют его одинаково и понимают его одинаково, в том числе понимают, что он не \n\r
, как вы сказали, не \n
, как обычно используется, но \r\n
.
\ n \ r также используется в сокете TCP или нет, он используется только для JS WebSocket?
TCP - это поток октетов только в том случае, если разные переданные байты не имеют конкретного значения на уровне TCP. Протоколы прикладного уровня, такие как HTTP или WebSockets, добавляют смысл в байты и таким образом определяют структуру передаваемых данных. В конечном итоге WebSockets использует TCP-сокеты для транспортировки сообщений, то есть WebSockets, по существу, определяет структурированные сообщения и способ их сериализации в виде байтов для передачи в потоке данных, который обеспечивает TCP.