Кажется, что двоичный файл был бы более компактным и может быть десериализован стандартным способом, почему текст используется вместо этого? Это кажется неэффективным, и веб-платформы вынуждены сделать не что иное как валяющий дурака со строками. Почему не там двоичный стандарт? Сеть была бы путем быстрее, и браузеры будут в состоянии загрузить двоичные страницы очень быстро.
Если бы я должен был запустить протокол двоичной синхронной передачи данных (HBP hyper протокол двоичной синхронной передачи данных), какие стандарты я определил бы?
Сам протокол HTTP читается как текст. Это полезно, потому что вы можете подключиться к любому серверу через Telnet и общаться с ним.
Текст также позволяет легко наблюдать за HTTP-коммуникацией с помощью такой программы, как wirehark. Затем вы можете легко диагностировать источник проблем.
HTTP определяет способ работы с ресурсами
. Эти ресурсы не обязательно должны быть текстом, они могут быть изображениями или чем-то еще. Текстовый ресурс можно отправить как двоичный, указав заголовок Content-Encoding
. Тип вашего ресурса указывается в заголовке Content-Type
.
Таким образом, ваш вопрос действительно относится только к самому протоколу HTTP, а не к полезной нагрузке, которая является ресурсами.
В Интернете можно было бы быстрее, и браузеры смогут загружать двоичные страницы очень быстро.
Я не делаю ' Не думаю, что это правда. Самой медленной частью, вероятно, является установление соединения и медленный запуск TCP .
Вот пример того, как ответ HTTP отправляет текстовый ресурс в двоичном представлении:
HTTP / 1.1 200 OK
Сервер: Apache / 2.0
Кодирование содержимого: gzip
Длина содержимого: 1533 Тип содержимого: текст / html; charset = ISO-8859-1
Там есть стандарты двоичной связи, многие из которых предшествуют http. Я построил / работал над протоколом базы данных клиент / сервер, который был двоичным, и он действительно работал и был эффективным в побайтовом отношении. Итак, вопрос в том, почему текстовый формат выиграл на рынке?
Я думаю, что, вероятно, есть много факторов, но я считаю, что это самые важные:
Текстовые протоколы имеют много важных преимуществ:
Это уже было предложено: http://en.wikipedia.org/wiki/Binary_XML
В прежние времена это считалось пустой тратой (пропускная способность) ресурсы для кодирования двоичного файла как текста. Вы должны не только кодировать и декодировать, но и четко понимать тип двоичного объекта и, возможно, структуру объекта, который вы хотите отправить. XML иногда создает иллюзию, что это происходит автоматически. Но это не так.
Текстовые кодировки, как упомянул Брайан, имеют большое преимущество, заключающееся в том, что вы, как человек, можете легко их генерировать и отлаживать.
Интересным нетекстовым форматом является ASN.1 (Абстрактная синтаксическая нотация № 1). ). Вместе с правилами кодирования (BER - Basic Encoding Rules, DER - Distinguished Encoding Rules, и т. Д.) Вы получаете очень и очень компактное кодирование двоичных структур, который оптимизирован для передачи по сети. Здесь определяется даже обработка разных байтовых полов. ASN.1 использовался и распространялся в семействе протоколов X. (X.25, X.400, X.500 и т. Д.). Он все еще используется в LDAP. Также существуют правила кодирования, определенные для кодирования данных в XML (XER - XML Encoding Rules). См. http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One .