На нижнем уровне они все биты ... правда. Однако некоторые каналы передачи имеют семь битов на байт, а другие каналы передачи имеют восемь битов на байт. Если вы передаете текст ASCII по семибитному каналу, то все в порядке. Двоичные данные искажены.
Кроме того, разные системы используют разные соглашения для окончаний строк: LF и CRLF являются общими, но некоторые системы используют CR или NEL. Режим передачи текста автоматически преобразует окончания строк, что приведет к повреждению двоичных файлов.
Однако все это в основном представляет исторический интерес в наши дни. Большинство каналов передачи являются восьмибитными (например, HTTP), и большинству пользователей подходит любой конец строки, который они получают.
Некоторые примеры 7-битных каналов: SMTP (номинально, без расширений), SMS, Telnet, некоторые последовательные соединения. Интернет не всегда был построен на TCP / IP, и это показывает.
Кроме того, в спецификации HTTP указано, что
В канонической форме медиа-подтипы типа «текст» используют CRLF в качестве разрыва текстовой строки. HTTP ослабляет это требование и позволяет транспортировать текстовые носители с одним простым CR или LF, представляющим разрыв строки, когда это делается последовательно для всего тела объекта.