Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Modbus TCP удволетворяет всем критериям, старый как говно мамонта и не имеет никакого отношения к JavaScript.
WBR, Igor Evgrafov
Re: Альтернатива HTTP для передачи данных между программами
Ну очевидная альтернатива это любой свой протокол поверх TCP или UDP. Далее SCTP (over UDP). Ещё вроде кто-то использовал Apache ZeroMQ. Преимущество HTTP(S) в том, что он проходит через мифические корпоративные фаерволы, блокирующие остальной трафик. Других особых преимуществ у HTTP ИМХО нет, а те, что есть, компенсируются недостатками.
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
А в какой среде и какие данные надо передавать? Это довольно критичный момент, т.к. HTTP это еще и проксирование и шифрование и т.д. Я так понимаю, что речь не про данные реального времени, тогда б потенциально поносили RTP... Ну а если речь про тот трафик, что принято гонять по HTTP, то можно же гонять не текст, а бинарные данные при помощи того-же Protobuf. Если речь про потоковые данные, то еще есть WebSockets, по которым так же можно гонять бинарные данные.
Re[2]: Альтернатива HTTP для передачи данных между программами
Здравствуйте, vsb, Вы писали:
vsb>Ну очевидная альтернатива это любой свой протокол поверх TCP или UDP. Далее SCTP (over UDP). Ещё вроде кто-то использовал Apache ZeroMQ. Преимущество HTTP(S) в том, что он проходит через мифические корпоративные фаерволы, блокирующие остальной трафик. Других особых преимуществ у HTTP ИМХО нет, а те, что есть, компенсируются недостатками.
бог с ними с "мифическими корпоративными фаерволами" но поддержка http в k8s, nginx, haproxy и еще 100500 библиотек и утилит совсем не мифическая.
если бы топик-стартер хоть какие то требования к протоколу описал кроме того что у него попоболь от жабаскрипта такая что он http кушать не может...
WBR, Igor Evgrafov
Re[2]: Альтернатива HTTP для передачи данных между программами
С Android на VPS с Linux. Каталог товаров на продажу с регистрацией. Было бы идеально слать просто данные и функции к ним как есть. Просто пулять экзэмлярами классов и всё. Искал альтернативы HTTP и набрёл на
RDP provides packet-based applications like remote loading and debugging with an effective, trusted data-transport service. The main objective of RDP is to remain effective in environments where there could be non-sequential message-segment delivery or prolonged transmission delays and loss.
Но пишут что есть только какой–то прототип реализации.
Здравствуйте, romakoma, Вы писали:
R>С Android на VPS с Linux. Каталог товаров на продажу с регистрацией. Было бы идеально слать просто данные и функции к ним как есть. Просто пулять экзэмлярами классов и всё. Искал альтернативы HTTP и набрёл на R>
R>RDP provides packet-based applications like remote loading and debugging with an effective, trusted data-transport service. The main objective of RDP is to remain effective in environments where there could be non-sequential message-segment delivery or prolonged transmission delays and loss.
R>
R>Но пишут что есть только какой–то прототип реализации.
Помотри Google protobuf
Re: Альтернатива HTTP для передачи данных между программами
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Жаль тебя разочаровывать, но настолько широко поддерживаемой альтернативы нет. Есть protobuf, cap'n'proto, FlatBuffers (еще убогий message pack), но это только способ сериализации данных с поддержкой версионирования (первые три). Но, таки, чтобы их передавать, потребуется городить свой протокол (перед передачей сообщения protobuf как минимум придется передать его тип и длину). Есть, конечно, grpc, но там тоже HTTP. Он встроен внутрь, ты его не видишь, а он есть!!!
Самая большая печаль, что щас стали модны разные микросервисы и облака для них (раньше облаками называли VPS). Так вот, там запросы нужно как-то прокидывать снаружи на микросервисные контейнеры. И там на ingress работает http прокси (nginx и другие), которые умеют...
Тадам... HTTP и, иногда, grpc (который тоже по сути http). Голый tcp (тем более udp) тебе никто прокидывать не будет (ну, или глядя на ценник, ты за 10% ценника наймешь фрилансера, который создаст тебе облако и будет доступен в телеграмме 24x7 со временем реакции 5 минут).
Так что между двумя своими хобби-проектами ты можешь использовать классику и гонять protobuf + префикс с типом и длинной (который, кстати, тоже обычно реализуют на protobuf, чтобы не возиться с остро/тупоконечностью чисел в сети). Захочешь чего-то более эффективного — cap'n'proto или FlatBuffers + префикс. Ну а если ты работаешь в госконторе — твой выбор ZeroMQ + message pack.
Однако, как только потребуется подключить что-то не свое или что-то снаружи — привет http или grpc (и если у тебя внутри реализован свой протокол на основе protobuf — выкручивайся проксями и другими костылями, скорее всего сам, если не найдешь студента-задрота, который поведется на обещание морковки в виде "интересного" проекта, и который за тебя будет заниматься занудством в виде написания/поддержки примитивной прокси, потому что какому-то герою-креативщику захотелось поиграться со своим протоколом без задней мысли о его развитии и поддержки).
Ну, все, я тебя предупредил.
Re[2]: Альтернатива HTTP для передачи данных между программами
Здравствуйте, romakoma, Вы писали:
R>С Android на VPS с Linux. Каталог товаров на продажу с регистрацией. Было бы идеально слать просто данные и функции к ним как есть.
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
ProtoBuf.
Sic luceat lux!
Re[4]: Альтернатива HTTP для передачи данных между программами
Здравствуйте, vsb, Вы писали:
vsb>Потому, что на практике он далеко не уйдёт без инкапсуляции. И это уже не теория.
Как раз похоже на теорию. SCTP это честный протокол транспортного уровня как и TCP/UDP. Если вы его в UDP заворачиваете, то это исключительно ваша шиза.
Sic luceat lux!
Re: Альтернатива HTTP для передачи данных между программами
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Это не совсем ответ ваш вопрос, но я надеюсь, что вы это прочитаете. Юзера Sinclair стоит слушать:
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Здравствуйте, romakoma, Вы писали:
R>Пришёл к неутешительному выводу что HTTP является стандартом для обмена данными через Internet в независимости от того WWW или не WWW, гипертекст или не гипертекст. Интересует есть ли альтернатива и как было в старые добрые времена в мире без JavaScript и прочей мерзости.
Я один задаюсь вопросом "при чём тут JavaScript"? HTTP — это просто протокол верхнего уровня. Он не привязан в языку, можно спокойно пользоваться им в C#, Python, да хоть в Коболе, если соответствующие вспомогательные либы есть (или напедалить свой велосипед)
Главное достоинство HTTP — он узнаётся многими маршрутизаторами, проксями и прочими участниками сетевой инфраструктуры, что позволяет оптимизировать трафик оператору, и описывает правила игры программисту. Если делать свой протокол — всего этого лишаешься.
Re[3]: Альтернатива HTTP для передачи данных между программами
Здравствуйте, romakoma, Вы писали:
R>С Android на VPS с Linux. Каталог товаров на продажу с регистрацией. Было бы идеально слать просто данные и функции к ним как есть. Просто пулять экзэмлярами классов и всё.
HTTP — то, что доктор прописал. Джаваскрипт — не нужен. Не очень понятно, зачем вам там функции, но тем не менее.
HTTP сделает всё, что вам надо, и ещё тележку того, о чём вы сейчас забыли подумать. И всё это можно будет делать обратно совместимым образом.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Альтернатива HTTP для передачи данных между программами