Протокол удаленного взаимодействия
От: Shmj Ниоткуда  
Дата: 16.11.17 13:30
Оценка:
Вот есть SOAP, есть REST. Почему то везде сделан акцент на человекочитаемость. Но зачем? Ведь без утилит ни XML ни JSON все равно читать не удобно. А с утилитами можно читать все что угодно.

Какой есть бинарный протокол, где бы байты кодировались без использования Base64 и пр. костылей? Почему они не популярны?
Re: Протокол удаленного взаимодействия
От: Слава  
Дата: 16.11.17 13:49
Оценка: 1 (1)
Здравствуйте, Shmj, Вы писали:

S>Какой есть бинарный протокол, где бы байты кодировались без использования Base64 и пр. костылей? Почему они не популярны?


Есть ASN.1
Непопулярен потому что как и со всеми сложными сущностями в IT, его реализации либо кривые, либо платные.
Re: Протокол удаленного взаимодействия
От: sergeya Ниоткуда http://blogtani.ru
Дата: 16.11.17 14:19
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Какой есть бинарный протокол, где бы байты кодировались без использования Base64 и пр. костылей?


protobuf?

Apache Thrift?
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[2]: Протокол удаленного взаимодействия
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.11.17 14:36
Оценка: +2
Здравствуйте, Слава, Вы писали:

С>Есть ASN.1

С>Непопулярен потому что как и со всеми сложными сущностями в IT, его реализации либо кривые, либо платные.

В стандартной библиотеке языка Go есть реализация разумного подмножества ASN.1. Достаточного для реализации TLS (SSL). С очень простым и удобным в использовании интерфейсом.

Но вообще, ASN.1 — это язык, на котором разговаривают черти в аду. Нормальный человек с ним по своей воле не свяжется.
Re: Протокол удаленного взаимодействия
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.11.17 14:36
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Какой есть бинарный протокол, где бы байты кодировались без использования Base64 и пр. костылей? Почему они не популярны?


Ну, BSON, например. Но вообще, их таких тьма.

Вообще, если транспортом выступает HTTP, то на издержки формата сериализации данных можно несколько и наплевать, если данных немного. Все равно, сделай там идеальный во всех отношениях протокол, издержки HTTP всю выгоду сожрут. А если транспорт какой-то другой, то там обычно и кодирование данных какое-то другое.
Отредактировано 16.11.2017 14:40 Pzz . Предыдущая версия .
Re: Протокол удаленного взаимодействия
От: Muxa  
Дата: 16.11.17 14:46
Оценка: +1
S>Вот есть SOAP, есть REST. Почему то везде сделан акцент на человекочитаемость. Но зачем? Ведь без утилит ни XML ни JSON все равно читать не удобно.
Неудобно тебе или неудобно всем?
И что насчет удобства редактирования json/xml данных и бинарных форматов?
Отредактировано 16.11.2017 15:15 Muxa . Предыдущая версия . Еще …
Отредактировано 16.11.2017 15:12 Muxa . Предыдущая версия .
Re[3]: Протокол удаленного взаимодействия
От: Слава  
Дата: 16.11.17 15:02
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>В стандартной библиотеке языка Go есть реализация разумного подмножества ASN.1. Достаточного для реализации TLS (SSL). С очень простым и удобным в использовании интерфейсом.

Pzz>реализация разумного подмножества

Для Си вроде бы существует (не столь давно) полная реализация ASN.1, написанная Лео Валкиным. Почему её не запихнули в Golang — загадка.
Re[4]: Протокол удаленного взаимодействия
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.11.17 15:11
Оценка:
Здравствуйте, Слава, Вы писали:

С>Для Си вроде бы существует (не столь давно) полная реализация ASN.1, написанная Лео Валкиным. Почему её не запихнули в Golang — загадка.


Валкин написал компилятор ASN.1 в Си. А в Go — библиотека, основанная на рефлексии. На языке ASN.1 там писать не приходится, описываешь структуру на Go, и ее можно сразу в DER сериализовать, и наоборот.
Re[2]: Протокол удаленного взаимодействия
От: Mr.Delphist  
Дата: 16.11.17 18:05
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Вообще, если транспортом выступает HTTP, то на издержки формата сериализации данных можно несколько и наплевать, если данных немного. Все равно, сделай там идеальный во всех отношениях протокол, издержки HTTP всю выгоду сожрут. А если транспорт какой-то другой, то там обычно и кодирование данных какое-то другое.


А как же gzip?

Accept-Encoding: gzip, deflate
Re[2]: Протокол удаленного взаимодействия
От: GarryIV  
Дата: 16.11.17 18:28
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Вообще, если транспортом выступает HTTP, то на издержки формата сериализации данных можно несколько и наплевать, если данных немного. Все равно, сделай там идеальный во всех отношениях протокол, издержки HTTP всю выгоду сожрут. А если транспорт какой-то другой, то там обычно и кодирование данных какое-то другое.


Вообще если данный много (в мегабайтах) то на издержки HTTP (а это заголовки по сути) можно наплевать.
WBR, Igor Evgrafov
Re[3]: Протокол удаленного взаимодействия
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.11.17 20:18
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Вообще если данный много (в мегабайтах) то на издержки HTTP (а это заголовки по сути) можно наплевать.


Издержки HTTP — это не только байты в проводе, но и латентность, вычислительные издержки, память и т.п.
Re: Протокол удаленного взаимодействия
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.17 20:38
Оценка:
Здравствуйте, Shmj, Вы писали:

MsgPack еще забыли упомянуть.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: Протокол удаленного взаимодействия
От: Kolesiki  
Дата: 17.11.17 09:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот есть SOAP, есть REST. Почему то везде сделан акцент на человекочитаемость. Но зачем? Ведь без утилит ни XML ни JSON все равно читать не удобно.



Есть "неудобно", а есть "принципиально невозможно". Думай.
Re[2]: Протокол удаленного взаимодействия
От: Shmj Ниоткуда  
Дата: 17.11.17 23:49
Оценка:
Здравствуйте, Kolesiki, Вы писали:

K>Есть "неудобно", а есть "принципиально невозможно". Думай.


Это в каком случае принципиально не возможно? Во всех анализаторах трафика есть HEX-режим. Скопировал в утилиту и она все превратила в читаемый формат.

Все равно Xml/JSON вы копируете в редактор -- какая разница?
Re: Протокол удаленного взаимодействия
От: BigBoss  
Дата: 19.11.17 02:56
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот есть SOAP, есть REST. Почему то везде сделан акцент на человекочитаемость. Но зачем? Ведь без утилит ни XML ни JSON все равно читать не удобно. А с утилитами можно читать все что угодно.


S>Какой есть бинарный протокол, где бы байты кодировались без использования Base64 и пр. костылей? Почему они не популярны?


protobuf, flatbuffers
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.