Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.24 18:27
Оценка:
Здравствуйте!

Есть необходимость встроить в приложуху поддержку HTTP(S). Как клиентскую часть, чтобы пользователь мог заскриптовать обращения к серверу, так и серверную часть, чтобы можно было на коленке забацать сервер.

Что посоветуете для этого использовать?

Какой-нибудь CURL? Там можно сервер сделать?

boost::asio? Там есть поддержка HTTP?

Когда-то использовал cpp_netlib, сейчас оно вроде стало частью буста. Что мне там не понравилось, так это то, что там куча всего определяется на этапе компиляции, а мне нужно, чтобы всё можно было настроить в рантайме.

Что посоветуете, может ещё что-то есть хорошее?
Маньяк Робокряк колесит по городу
Re: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.24 18:46
Оценка:
Здравствуйте, Marty, Вы писали:

M>Что посоветуете для этого использовать?


Все, что есть для C/C++ — плохое, к сожалению.

M>Какой-нибудь CURL? Там можно сервер сделать?


В CURL-е хороший клиент. Сервера нет. И CURL, у него есть неочевидное ограничение. Его явно инициализируют и явно де-инициализируют. Поэтому в программу его вставить можно, а в плагин — нет (если в одной программе встретятся два плагина с CURL-ем внутри, они подерутся).

M>Когда-то использовал cpp_netlib, сейчас оно вроде стало частью буста. Что мне там не понравилось, так это то, что там куча всего определяется на этапе компиляции, а мне нужно, чтобы всё можно было настроить в рантайме.


M>Что посоветуете, может ещё что-то есть хорошее?


Тебе прям приперло именно на C++ это писать?
Re: Встроенный HTTP, клиент и сервер
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 31.01.24 18:51
Оценка:
Здравствуйте, Marty, Вы писали:

M>boost::asio? Там есть поддержка HTTP?


Есть в виде boost::beast
Re: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 31.01.24 18:51
Оценка: +1 :)
сам напиши
там суммарно клиент+сервер 100 кил за пару дней в перерыве на ночные посиделки на форуме

а вообще нахрен надо это все в дрон который пои тогу все равно собьют?
Re[2]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.24 20:05
Оценка: +2
Здравствуйте, reversecode, Вы писали:

R>сам напиши

R>там суммарно клиент+сервер 100 кил за пару дней в перерыве на ночные посиделки на форуме

Угу. А потом добавь туда connection keep-alive, chunked encoding, правильную поддержку IPv6 и т.п. И окажется, что не на пару дней. Я сам этих ХТТП клиентов и серверов с пяток написал, черт их дери.

R>а вообще нахрен надо это все в дрон который пои тогу все равно собьют?


Чтобы пока он летит, с него можно было пиратский контент качать, нанося ущерб вражескому копирайту.
Re[3]: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 31.01.24 20:08
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, reversecode, Вы писали:


R>>сам напиши

R>>там суммарно клиент+сервер 100 кил за пару дней в перерыве на ночные посиделки на форуме

Pzz>Угу. А потом добавь туда connection keep-alive, chunked encoding, правильную поддержку IPv6 и т.п. И окажется, что не на пару дней. Я сам этих ХТТП клиентов и серверов с пяток написал, черт их дери.


только что нажал в фаре F3 на папку с сервером+клиентом и всего выше перечисленного
95 кил С++

R>>а вообще нахрен надо это все в дрон который пои тогу все равно собьют?


Pzz>Чтобы пока он летит, с него можно было пиратский контент качать, нанося ущерб вражескому копирайту.


да да и порнушки посмотреть
а boost asio для высокой производительности что бы +10500 стримов выдержал
Re[4]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.24 20:11
Оценка:
Здравствуйте, reversecode, Вы писали:

R>только что нажал в фаре F3 на папку с сервером+клиентом и всего выше перечисленного

R>95 кил С++

Я не понимаю в байтах. В строках-то сколько?

R>да да и порнушки посмотреть

R>а boost asio для высокой производительности что бы +10500 стримов выдержал

Но вообще, это немного обидно как-то, в 21-м веке писать очередную реализацию HTTP голыми руками.
Re[2]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.24 20:22
Оценка:
Здравствуйте, Pzz, Вы писали:

M>>Какой-нибудь CURL? Там можно сервер сделать?


Pzz>В CURL-е хороший клиент. Сервера нет.


Ок, тоже пойдёт, можно для клиента и для сервера использовать разные либы


Pzz>И CURL, у него есть неочевидное ограничение. Его явно инициализируют и явно де-инициализируют. Поэтому в программу его вставить можно, а в плагин — нет (если в одной программе встретятся два плагина с CURL-ем внутри, они подерутся).


Это не проблема, это в ядро планируется


M>>Когда-то использовал cpp_netlib, сейчас оно вроде стало частью буста. Что мне там не понравилось, так это то, что там куча всего определяется на этапе компиляции, а мне нужно, чтобы всё можно было настроить в рантайме.


M>>Что посоветуете, может ещё что-то есть хорошее?


Pzz>Тебе прям приперло именно на C++ это писать?


Потому, что у меня плюсовый комбайн со скриптованием, в который я хочу присунуть HTTP возможности
Маньяк Робокряк колесит по городу
Re[2]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.24 20:23
Оценка:
Здравствуйте, Nuzhny, Вы писали:

M>>boost::asio? Там есть поддержка HTTP?


N>Есть в виде boost::beast


Там всё в рантайме можно настроить, или как в cpp_netlib — все фичи задаются в плюсах как параметры шаблонов?
Маньяк Робокряк колесит по городу
Re[2]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.24 20:24
Оценка:
Здравствуйте, reversecode, Вы писали:

R>сам напиши

R>там суммарно клиент+сервер 100 кил за пару дней в перерыве на ночные посиделки на форуме

А ты оптимист


R>а вообще нахрен надо это все в дрон который пои тогу все равно собьют?


Ну вот надо
Маньяк Робокряк колесит по городу
Re[5]: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 31.01.24 21:36
Оценка: +1 :)
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, reversecode, Вы писали:


R>>только что нажал в фаре F3 на папку с сервером+клиентом и всего выше перечисленного

R>>95 кил С++

Pzz>Я не понимаю в байтах. В строках-то сколько?


любите вы дедушек помучить
ладно выбросил всякий доп функционалы для всяких xml и прочего
чистый клиент и сервер http/https keep-alive/chunked-transfer/auth basic/digest
66 кил

tokei-i686-pc-windows-msvc.exe httplib\


===============================================================================
 Language            Files        Lines         Code     Comments       Blanks
===============================================================================
 C Header                8          578          465            7          106
 C++                     8         2230         1776           86          368
===============================================================================
 Total                  16         2808         2241           93          474
===============================================================================

там нет файла для сокетов и ивент лупа и парсинга url схемы
они отдельно около 100 кил

tokei-i686-pc-windows-msvc.exe netlib\

===============================================================================
 Language            Files        Lines         Code     Comments       Blanks
===============================================================================
 C Header                7          623          489           11          123
 C++                     8         3286         2654          182          450
===============================================================================
 Total                  15         3909         3143          193          573
===============================================================================


при этом надо учесть что там win/linux поддержка
из за всяких ifdef

за то точно можно сразу марти компилить и хоть в пляс

R>>да да и порнушки посмотреть

R>>а boost asio для высокой производительности что бы +10500 стримов выдержал

Pzz>Но вообще, это немного обидно как-то, в 21-м веке писать очередную реализацию HTTP голыми руками.


странно в 21 веке юзать всякое г которые тянет еще +10500 всякого г
где по итогу как я люблю шутить

исходники такой утилиты "копирования файлов" занимает почти гиг
сборка пол дня
а полезность такой утилиты равна нулю

Re[6]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.24 22:15
Оценка:
Здравствуйте, reversecode, Вы писали:

R>ладно выбросил всякий доп функционалы для всяких xml и прочего

R>чистый клиент и сервер http/https keep-alive/chunked-transfer/auth basic/digest
R>66 кил

Че-то ты не договариваешь. А URL кто за тебя парсит? А IPv4/IPv6 literal addresses? А IPv6 zones?
Re[6]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.24 23:07
Оценка:
Здравствуйте, reversecode, Вы писали:

R>любите вы дедушек помучить


Мы реалисты
Написать можно за неделю.
Отлаживать можно годами.
Нахер
Маньяк Робокряк колесит по городу
Re[3]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 31.01.24 23:08
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А потом добавь туда connection keep-alive, chunked encoding

Это как раз несложно.

Pzz> правильную поддержку IPv6

А при чём тут HTTP?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.24 23:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

Pzz>> правильную поддержку IPv6

CC>А при чём тут HTTP?

Там свои нюансы.
Re: Встроенный HTTP, клиент и сервер
От: so5team https://stiffstream.com
Дата: 01.02.24 04:31
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Что посоветуете для этого использовать?


Для клиента:

— либо libcurl напрямую, либо через какую-то из C++ных оберток;
Boost.Beast;
cpp-netlib;
POCO.

Для сервера:

Boost.Beast;
cpp-netlib;
CROW (реанимированный);
Drogon;
lithium (бывший silicon framework);
oat++;
Pistache;
POCO;
proxygen;
restbed;
RESTinio;
Simple-Web-Server;
userver.

Возможно, в userver есть и клиент, не в курсе.
Re[2]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 04:34
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>Для клиента:


S>- либо libcurl напрямую, либо через какую-то из C++ных оберток;

S>- Boost.Beast;
S>- cpp-netlib;
S>- POCO.

cpp-netlib — вообще ни разу не была обёрткой над курлом. Либо я очень, очень отстал от жизни, либо качество твоих советов так себе
Маньяк Робокряк колесит по городу
Re[3]: Встроенный HTTP, клиент и сервер
От: so5team https://stiffstream.com
Дата: 01.02.24 05:00
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, so5team, Вы писали:


S>>- либо libcurl напрямую, либо через какую-то из C++ных оберток;

S>>- Boost.Beast;
S>>- cpp-netlib;
S>>- POCO.

M>cpp-netlib — вообще ни разу не была обёрткой над курлом. Либо я очень, очень отстал от жизни, либо качество твоих советов так себе


Либо вы видите что-то не то, что было написано. А написан перечень вариантов, каждый из которых идет отдельно, не будучи связанным с предыдущим. Т.е. libcurl с его обертками отдельно, Boost.Beast, cpp-netlib и POCO отдельно.
Re[4]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 05:17
Оценка:
Здравствуйте, so5team, Вы писали:

S>>>- либо libcurl напрямую, либо через какую-то из C++ных оберток;


S>Либо вы видите что-то не то, что было написано. А написан перечень вариантов, каждый из которых идет отдельно, не будучи связанным с предыдущим. Т.е. libcurl с его обертками отдельно, Boost.Beast, cpp-netlib и POCO отдельно.


Либо написано так, что всё перечисленное — только обёртки
Маньяк Робокряк колесит по городу
Re[5]: Встроенный HTTP, клиент и сервер
От: so5team https://stiffstream.com
Дата: 01.02.24 05:28
Оценка:
Здравствуйте, Marty, Вы писали:

S>>>>- либо libcurl напрямую, либо через какую-то из C++ных оберток;


S>>Либо вы видите что-то не то, что было написано. А написан перечень вариантов, каждый из которых идет отдельно, не будучи связанным с предыдущим. Т.е. libcurl с его обертками отдельно, Boost.Beast, cpp-netlib и POCO отдельно.


M>Либо написано так, что всё перечисленное — только обёртки


Если бы все перечисленное было обертками, то оформлено это было бы так:

— либо libcurl напрямую, либо через какую-то из C++ных оберток:
a) Boost.Beast;
b) cpp-netlib;
c) POCO.

Обратите внимание на наличие двоеточие и изменение типа списка.

ЗЫ. Помогай после этого людям
Re[3]: Встроенный HTTP, клиент и сервер
От: vsb Казахстан  
Дата: 01.02.24 05:47
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Угу. А потом добавь туда connection keep-alive, chunked encoding, правильную поддержку IPv6 и т.п. И окажется, что не на пару дней. Я сам этих ХТТП клиентов и серверов с пяток написал, черт их дери.


Не всем это всё надо. Далеко не всем. По-мне вся прелесть HTTP/1.1 или даже 1.0 в том, что можно очень многие сложности проигнорировать и оно будет работать, пусть и не так быстро, да и пофиг.
Отредактировано 01.02.2024 5:49 vsb . Предыдущая версия .
Re[4]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 06:02
Оценка:
Здравствуйте, vsb, Вы писали:

Pzz>>Угу. А потом добавь туда connection keep-alive, chunked encoding, правильную поддержку IPv6 и т.п. И окажется, что не на пару дней. Я сам этих ХТТП клиентов и серверов с пяток написал, черт их дери.


vsb>Не всем это всё надо. Далеко не всем. По-мне вся прелесть HTTP/1.1 или даже 1.0 в том, что можно очень многие сложности проигнорировать и оно будет работать, пусть и не так быстро, да и пофиг.


Или не будет. Ну, если какую-то из половин писали на коленке руками, например
Маньяк Робокряк колесит по городу
Re: Встроенный HTTP, клиент и сервер
От: Pavel Dvorkin Россия  
Дата: 01.02.24 06:15
Оценка:
Здравствуйте, Marty, Вы писали:

M>Что посоветуете, может ещё что-то есть хорошее?


Вот этот сервер вроде хвалят.

https://github.com/cesanta/mongoose
With best regards
Pavel Dvorkin
Re[6]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 06:34
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>ЗЫ. Помогай после этого людям


Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю
Маньяк Робокряк колесит по городу
Re[4]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.02.24 08:22
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Не всем это всё надо. Далеко не всем. По-мне вся прелесть HTTP/1.1 или даже 1.0 в том, что можно очень многие сложности проигнорировать и оно будет работать, пусть и не так быстро, да и пофиг.


Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения. Хорошо при этом, если ты какой-нибудь принтер, тогда это становится проблемой драйвера. А если просто сайт, то бровсер под тебя подстраиваться не будет.
Re[7]: Встроенный HTTP, клиент и сервер
От: qaz77  
Дата: 01.02.24 08:49
Оценка:
Здравствуйте, Marty, Вы писали:
M>Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю

Седые мухи.
Спасибо, рассмешил.
Re: Встроенный HTTP, клиент и сервер
От: AleksandrN Россия  
Дата: 01.02.24 08:56
Оценка:
Здравствуйте, Marty, Вы писали:

M>Что посоветуете, может ещё что-то есть хорошее?


В libevent есть http-сервер.
Re[8]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 09:02
Оценка:
Здравствуйте, qaz77, Вы писали:

M>>Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю


Q>Седые мухи.

Q>Спасибо, рассмешил.

Я пять сик думал, как написать, чтобы было забавно. Но я не думал, что найдётся кэп, который догадается ответить. Сорян, мой косяк
Маньяк Робокряк колесит по городу
Re[9]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 09:05
Оценка:
Здравствуйте, Marty, Вы писали:

M>>>Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю


Q>>Седые мухи.

Q>>Спасибо, рассмешил.

M>Я пять сик думал, как написать, чтобы было забавно. Но я не думал, что найдётся кэп, который догадается ответить. Сорян, мой косяк


Но седые мухи — это и правда смешно
Маньяк Робокряк колесит по городу
Re[10]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 09:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>>Я пять сик думал, как написать, чтобы было забавно. Но я не думал, что найдётся кэп, который догадается ответить. Сорян, мой косяк


M>Но седые мухи — это и правда смешно


И чем дальше — тем больше.

Как представлю мух, седеющих у меня на мониторе, как они, седые, седыми лапками ходят по нему — чот ржать тянет. Не могу асталависта, не могу
Маньяк Робокряк колесит по городу
Re[5]: Встроенный HTTP, клиент и сервер
От: vsb Казахстан  
Дата: 01.02.24 09:32
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения. Хорошо при этом, если ты какой-нибудь принтер, тогда это становится проблемой драйвера. А если просто сайт, то бровсер под тебя подстраиваться не будет.


Браузер не использует chunked encoding (в запросах). По крайней мере мне неизвестен способ заставить его это делать. Может быть очень хитрым жаваскриптом, да и то сомневаюсь.
Re[6]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.02.24 09:37
Оценка:
Здравствуйте, vsb, Вы писали:

Pzz>>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения. Хорошо при этом, если ты какой-нибудь принтер, тогда это становится проблемой драйвера. А если просто сайт, то бровсер под тебя подстраиваться не будет.


vsb>Браузер не использует chunked encoding (в запросах). По крайней мере мне неизвестен способ заставить его это делать. Может быть очень хитрым жаваскриптом, да и то сомневаюсь.


Там же можно послать POST-ом что-то, размер чего заранее не известен, да? В таком случае, ему выбора не останется, кроме как сделать chunked.
Re[7]: Встроенный HTTP, клиент и сервер
От: vsb Казахстан  
Дата: 01.02.24 09:49
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Там же можно послать POST-ом что-то, размер чего заранее не известен, да?


Ну вот я сходу не скажу — можно или нет. Несколько лет назад было нельзя. В последние годы вроде что-то в JS на тему стримов добавляли. Но это надо пробовать — можно ли такое засунуть в тело запроса и не пошлёт ли браузер лесом (или не начнёт ли считывать этот стрим в буфер).

В любом случае это надо очень постараться, чтобы такое найти.

Не, если ты делаешь универсальный веб-сервер — без вопросов, там такое желательно поддержать. Когда ты юзаешь http client из разных ЯП, там chunked запрос даже случайно получить несложно (хотя всё же нормальные либы стараются начать буферизовать тело запроса и только если оно действительно большое — уже отсылать чанки). А если ты делаешь веб-сервер для какой-нибудь админки, которую тут же рядом и отдаёшь, то всё куда проще, имхо.
Отредактировано 01.02.2024 9:51 vsb . Предыдущая версия . Еще …
Отредактировано 01.02.2024 9:50 vsb . Предыдущая версия .
Re[7]: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 01.02.24 09:58
Оценка: :)
ниже написал что

там нет файла для сокетов и ивент лупа и парсинга url схемы
они отдельно около 100 кил

tokei-i686-pc-windows-msvc.exe netlib\

в ipv6 нету надобности пока
не имплементировано
Re[7]: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 01.02.24 10:01
Оценка:
ты количества флуда за неделю написал больше чем сервер или клинет отдельно взятые

ну а про поиски багов в простой математике 2+2 это ты фантазер, да
умей правильно декомпозицию делать
тогда не будет херни с багами

а когда всю математику разворачивать в отдельное действие
то да, за лесом елей не видать
Re[8]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:06
Оценка: :)
Здравствуйте, reversecode, Вы писали:

R>ты количества флуда за неделю написал больше чем сервер или клинет отдельно взятые


R>ну а про поиски багов в простой математике 2+2 это ты фантазер, да

R>умей правильно декомпозицию делать
R>тогда не будет херни с багами

R>а когда всю математику разворачивать в отдельное действие

R>то да, за лесом елей не видать

Я, в отличие от балаболов типа тебя, написал не один HTTP сервер для встраивания в любые утюги, и именно имея опыт я не хочу делать это снова, и даже все наработки с удовольствием выкину
Маньяк Робокряк колесит по городу
Re[5]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 10:09
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения.

А в чём проблема его реализовать? Даже я в своём наколенном клиенте сделал, исключительно чтоб большие куски данных сливать/заливать на GDrive
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 10:09
Оценка:
Здравствуйте, qaz77, Вы писали:

M>>Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю

Q>Седые мухи.

Чота мне кажется что там должно было быть "посИдели", ака "засиженый мухами моник"
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[9]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 10:12
Оценка:
Здравствуйте, Marty, Вы писали:

M>Я, в отличие от балаболов типа тебя, написал не один HTTP сервер для встраивания в любые утюги

В таком случае, ты ещё один напишешь не приходя в сознание.

M> и именно имея опыт я не хочу делать это снова

"Вытащи из болота хоть один из тех тракторов, что ты там утопил, и езжай на нём к едрени матери!" (С)
Заюзай один из тех, что тобой уже написаны.

M> и даже все наработки с удовольствием выкину

Что, такое лютое говно получилось?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[9]: Встроенный HTTP, клиент и сервер
От: reversecode google
Дата: 01.02.24 10:12
Оценка: +1 :)
куда ему, он всю ночь нацистов ловил и в штурмовые атаки ходил
понятно что уже к обеду выдохся вместе с мухами
Re[10]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:23
Оценка:
Здравствуйте, CreatorCray, Вы писали:

M>>Я, в отличие от балаболов типа тебя, написал не один HTTP сервер для встраивания в любые утюги

CC>В таком случае, ты ещё один напишешь не приходя в сознание.

нет, не напишу, я уже понимаю масштаб проблемы


M>> и именно имея опыт я не хочу делать это снова

CC>"Вытащи из болота хоть один из тех тракторов, что ты там утопил, и езжай на нём к едрени матери!" (С)
CC>Заюзай один из тех, что тобой уже написаны.

утюговый сервер не равен универсальному


M>> и даже все наработки с удовольствием выкину

CC>Что, такое лютое говно получилось?

Не совсем лютое говно. Заказ сделал, бабло получил. Там на чистой сишечке под совсем утюги, не хочу, во вторых, там оно могло отстать от актуальных RFC, у меняя нет цели сидеть следить как там RFC, обновились или нет, мне нужно что-то, что поддерживалось бы не мной. С возрастом это приходит, желание перестать ковыряться в говне, а оперировать более масштабными задачами
Маньяк Робокряк колесит по городу
Re[6]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:32
Оценка:
Здравствуйте, CreatorCray, Вы писали:

Pzz>>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения.

CC>А в чём проблема его реализовать? Даже я в своём наколенном клиенте сделал, исключительно чтоб большие куски данных сливать/заливать на GDrive

1) Можно, но зачем?
2) Оно только с конкретным серверным софтом взаимодействует, или готово для всего?
Маньяк Робокряк колесит по городу
Re[9]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:33
Оценка:
Здравствуйте, CreatorCray, Вы писали:

M>>>Извини, у меня на монике мухи поседели, не всегда colon и semicolon различаю

Q>>Седые мухи.

CC>Чота мне кажется что там должно было быть "посИдели", ака "засиженый мухами моник"


ещё один кэп, бля.


Можно ж было просто тихо про себя посмеяться?
Маньяк Робокряк колесит по городу
Re[10]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:34
Оценка:
Здравствуйте, reversecode, Вы писали:

R>куда ему, он всю ночь нацистов ловил и в штурмовые атаки ходил

R>понятно что уже к обеду выдохся вместе с мухами

Да, очередного реверскода душил, душил

UPD поправил, а то опять ведь докопаетесь
Маньяк Робокряк колесит по городу
Отредактировано 01.02.2024 10:37 Marty . Предыдущая версия .
Re[10]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 10:40
Оценка:
Здравствуйте, reversecode, Вы писали:

R>куда ему, он всю ночь нацистов ловил и в штурмовые атаки ходил

R>понятно что уже к обеду выдохся вместе с мухами

а с мухами я просто вместе посидел
Маньяк Робокряк колесит по городу
Re[6]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.02.24 11:10
Оценка:
Здравствуйте, CreatorCray, Вы писали:

Pzz>>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения.

CC>А в чём проблема его реализовать? Даже я в своём наколенном клиенте сделал, исключительно чтоб большие куски данных сливать/заливать на GDrive

Да ни в чём. Просто HTTP считается простым текстовым протоколом, который можно реализовать на коленке за вечер. Но со всеми этими "мелочами" уже нормально так набегает.
Re[7]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 12:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>Если ты сервер, тебе могут отлить этого chunked-encoding-а, не спрашивая твоего мнения.

CC>>А в чём проблема его реализовать? Даже я в своём наколенном клиенте сделал, исключительно чтоб большие куски данных сливать/заливать на GDrive

Pzz>Да ни в чём. Просто HTTP считается простым текстовым протоколом, который можно реализовать на коленке за вечер. Но со всеми этими "мелочами" уже нормально так набегает.


Пара месяцев на отладку базы, и потом тащить и отлаживать свою реализацию годами. Это если RFC новые не будут выходить. Это реальный план. Оптимистичный — да, зафигачить все за два дня и жить не тужить
Маньяк Робокряк колесит по городу
Re: Встроенный HTTP, клиент и сервер
От: bnk СССР http://unmanagedvisio.com/
Дата: 01.02.24 12:48
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>Есть необходимость встроить в приложуху поддержку HTTP(S). Как клиентскую часть, чтобы пользователь мог заскриптовать обращения к серверу, так и серверную часть, чтобы можно было на коленке забацать сервер.


M>Что посоветуете для этого использовать?


Я использовал (давно) Microsoft C++ REST SDK.
https://github.com/microsoft/cpprestsdk

Хорошо то что без зависимостей
Не думаю что для боевых дронов подходит из-за лицензиии.
Отредактировано 01.02.2024 12:51 bnk . Предыдущая версия . Еще …
Отредактировано 01.02.2024 12:51 bnk . Предыдущая версия .
Re[2]: Встроенный HTTP, клиент и сервер
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.02.24 12:56
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Я использовал (давно) Microsoft C++ REST SDK.

bnk>https://github.com/microsoft/cpprestsdk

bnk>Хорошо то что без зависимостей


Только от винды )


bnk>Не думаю что для боевых дронов подходит из-за лицензиии.


Дронам пойух
Маньяк Робокряк колесит по городу
Re[3]: Встроенный HTTP, клиент и сервер
От: bnk СССР http://unmanagedvisio.com/
Дата: 01.02.24 12:59
Оценка: 4 (1)
Здравствуйте, Marty, Вы писали:

bnk>>Я использовал (давно) Microsoft C++ REST SDK.

bnk>>https://github.com/microsoft/cpprestsdk

bnk>>Хорошо то что без зависимостей


M>Только от винды )


Нет, он для любых систем (debian, unbuntu, android, osx, windows)
Re[2]: Встроенный HTTP, клиент и сервер
От: so5team https://stiffstream.com
Дата: 01.02.24 13:10
Оценка: 6 (1)
Здравствуйте, bnk, Вы писали:

bnk>Я использовал (давно) Microsoft C++ REST SDK.

bnk>https://github.com/microsoft/cpprestsdk

Он уже не развивается:

cpprestsdk is in maintenance mode and we do not recommend its use in new projects. We will continue to fix critical bugs and address security issues.


Ну и с производительностью там не ахти. На Linux-ах, говорят, еще хуже, чем под Windows.
Re[3]: Встроенный HTTP, клиент и сервер
От: bnk СССР http://unmanagedvisio.com/
Дата: 01.02.24 13:32
Оценка:
Здравствуйте, so5team, Вы писали:

bnk>>Я использовал (давно) Microsoft C++ REST SDK.

bnk>>https://github.com/microsoft/cpprestsdk

S>Он уже не развивается:

S>

cpprestsdk is in maintenance mode and we do not recommend its use in new projects. We will continue to fix critical bugs and address security issues.


S>Ну и с производительностью там не ахти. На Linux-ах, говорят, еще хуже, чем под Windows.


Понятно. Ну я давно использовал (когда еще на плюсах писал), больше 7 лет назад наверное.
Отредактировано 01.02.2024 13:35 bnk . Предыдущая версия .
Re[8]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>Пара месяцев на отладку базы

Ты что базой то считаешь что пару месяцев закладываешь?

M> и потом тащить и отлаживать свою реализацию годами.

Это как раз легко и приятно, в отличие от починки багов в чужой реализации.

M> Это если RFC новые не будут выходить.

На базовый HTTP?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>1) Можно, но зачем?


В моём случае я юзал WinHTTP но потом в Wine что то сломали и он стал падать где то в TLS коде, а на маке мне тоже надо было юзать, причём надо было чтоб работало уже сейчас, ждать пока починят времени просто не было.
Так что я плюнул, написал свой HTTP client + TLS обёртку и пользуюсь теперь этой конструкцией.
Получилось более гибко и более удобно, ну и работает

M>2) Оно только с конкретным серверным софтом взаимодействует, или готово для всего?


Я первый раз слышу про HTTP client чтоб работал только с конкретным сервером. Базовый набор HTTP работает со всеми промышленными серверами. Это надо что то на сервере сломать чтоб не работало.
Я им тягаю финансовые данные из разных источников, с разных сайтов + гоняю блобы на/с GDrive
За последние лет 5 ещё никаких проблем не было.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[11]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>UPD поправил, а то опять ведь докопаетесь

Мы ж по доброму...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[10]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>Можно ж было просто тихо про себя посмеяться?

На форуме то?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[11]: Встроенный HTTP, клиент и сервер
От: CreatorCray  
Дата: 01.02.24 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>утюговый сервер не равен универсальному

А тебе надо чтоб он все новомодные выкрутасы поддерживал или чтоб работал и выдавал что от него надо?

M>С возрастом это приходит, желание перестать ковыряться в говне, а оперировать более масштабными задачами

Только не говори что ты всё ещё достаточно юн чтоб у тебя не прошло желание ковыряться в чужом говне...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Встроенный HTTP, клиент и сервер
От: /aka/ СССР  
Дата: 01.02.24 22:28
Оценка:
Здравствуйте, Marty, Вы писали:

Pzz>>Да ни в чём. Просто HTTP считается простым текстовым протоколом, который можно реализовать на коленке за вечер. Но со всеми этими "мелочами" уже нормально так набегает.

M>Пара месяцев на отладку базы, и потом тащить и отлаживать свою реализацию годами. Это если RFC новые не будут выходить.

Задачу поставь внятнее.

Если нужен промышленный HTTPS сервер, который будет держать тысячи соединений с кривыми клиентами и новыми RFC (а что ещё можно отлаживать годами??), бери nginx и пиши к нему плагин. У нас так сервера активации работают: наружу смотрят nginx, обновляемые вместе с серверами, за ними наша логика на С++.

Если нужно отдать страничку диагностики по https, это пишется на коленке за вечер и написать своё простое в этом случае проще, чем копать чужое универсальное.
Re[2]: Встроенный HTTP, клиент и сервер
От: Nikolay__ Россия  
Дата: 02.02.24 04:33
Оценка:
Здравствуйте, so5team, Вы писали:

S>Для клиента:


S>- либо libcurl напрямую, либо через какую-то из C++ных оберток;

S>- Boost.Beast;
S>- cpp-netlib;
S>- POCO.

S>Для сервера:


S>- Boost.Beast;

S>- cpp-netlib;
S>- CROW (реанимированный);
S>- Drogon;
S>- lithium (бывший silicon framework);
S>- oat++;
S>- Pistache;
S>- POCO;
S>- proxygen;
S>- restbed;
S>- RESTinio;
S>- Simple-Web-Server;
S>- userver.

S>Возможно, в userver есть и клиент, не в курсе.


Можно Qt добавить в список с версии 6.5 https://doc.qt.io/qt-6.5/qthttpserver-index.html
https://pocoproject.org/ сам пробовал, довольно удобно
Re[3]: Встроенный HTTP, клиент и сервер
От: so5team https://stiffstream.com
Дата: 02.02.24 04:53
Оценка:
Здравствуйте, Nikolay__, Вы писали:

N__>Можно Qt добавить в список с версии 6.5 https://doc.qt.io/qt-6.5/qthttpserver-index.html


Qt имеет смысл брать, если Qt уже в проекте. Но, если Qt уже в проекте, то по сторонам, обычно, не смотрят. Или смотрят, когда тормоза Qt достают

N__>https://pocoproject.org/ сам пробовал, довольно удобно


POCO в списке есть.
Re[4]: Встроенный HTTP, клиент и сервер
От: Nikolay__ Россия  
Дата: 02.02.24 05:29
Оценка: +1
Здравствуйте, so5team, Вы писали:

N__>>https://pocoproject.org/ сам пробовал, довольно удобно

S>POCO в списке есть.
Да, я видел, я имел ввиду, что рекомендую его. Про нагрузку правда ничего не могу сказать, в моем случае она была незначительная.
Re[11]: Встроенный HTTP, клиент и сервер
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.02.24 16:48
Оценка:
Здравствуйте, Marty, Вы писали:

M>Как представлю мух, седеющих у меня на мониторе, как они, седые, седыми лапками ходят по нему — чот ржать тянет. Не могу асталависта, не могу


Ходят парами, держась за ручку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.