|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Пытаюсь сделать простенький HTTP сервер с использованием библиотеки httplib . Смущает скорость обмена: если "всё по умолчанию", то примерно один запрос GET в одну-две секунды. Если клиент включает keep-alive, то скорость возрастает до 2 запросов в секунду. Что также удручает. Опыта написания http клиентов и серверов нет, может, это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 19:13 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Клиент посылает GET - запросы вида /id=число, например: Код: plaintext 1.
Сервер возвращает ответы вида Код: plaintext 1.
. Код сервера: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 19:16 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Извинения, код сервера чуть подправлен: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код клиента: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 19:35 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
может там еще какие таймауты влияют c set_keep_alive(true) конечно будет быстрее, сейчас в броузерах это по дефолту имхо set_keep_alive_max_count выставь (черт знает сколько, 5-10 допустим) надо все Сеттеры смотреть, что они делают ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 19:52 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Alex_Ustinov, да. Увеличение set_keep_alive_max_count увеличивает скорость. Запросто можно и 500 (и выше) сообщений в секунду получить. Но - вот беда: первое сообщение хоть убей 2 секунды. Т.е., время коннекта. Т.обр., нужно учесть характер данных и алгоритм обмена. Огромное спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 20:34 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ Т.е., время коннекта. Радует, что "тормоза" - на стороне клиента. Т.е., праллельные коннекты сервер почти не замедляют. Спасибо ещё раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 20:38 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъСмущает скорость обмена: если "всё по умолчанию", то примерно один запрос GET в одну-две секунды. Кто клиент и какой протокол? Если браузер без явного указания префикса протокола, то он пробует щемиться по https сначала и только если не вышло - переключается на http. А если у тебя https, то там безумный handshake с проверкой сертификатов и обращением к 100500 центрам сертификации перед началом собственно обмена. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:06 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, клиент - тоже я (см. код 22306718 ). :) Протокол HTTP 1.1, не использую никаких SSL/TLS. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:21 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, используй пул из нескольких соединений. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:25 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton ъъъъъ, используй пул из нескольких соединений. Э... клиент должен быть с сервером постоянно на связи? Если да, то, наверное, никак. Да и не особо нужно. Задержка при коннекте на стороне клиента не особо важна. Я сперва подумал, что это сервер тормозит, сие было бы грустно: например, с утра десятки тысяч клиентов лезут к серверу, это скорее сдохнешь, чем результат получишь... А так - нормально, торможение в момент коннекта фактически только на клиенте. Результаты удовлетворительны, если что - буду копать глубже. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:34 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
А в чем проблема? Пул объектов - нормальный порождающий шаблон проектирования. Он тут как раз подходит. Можно его наделить логикой idle_timeout когда созданные соединения после часа простоя - отключаются. Тогда не нужна постоянная связь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 23:14 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton А в чем проблема? Да по логике не нужно. Предполагается, что при старте любого "бизнес-приложения" нашего программного комплекса будет стартовать крошечное приложение - этот самый http-клиент, проверяющий наличие обновлений. Приложение будет работать параллельно (проверка наличия обновлений и, если нужно, загрузка), даже когда "бизнес-приложение" завершит работу. То есть, если потратится лишние 2 сек на первоначальный коннект - это вовсе не беда. И даже если связи не будет совсем - тоже не беда, потом скачают, или курьера (как сейчас) пошлют. Я боялся, что затык сервера будет, так как таких клиентов довольно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 23:24 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъклиент - тоже я (см. код 22306718 Протокол HTTP 1.1, не использую никаких SSL/TLS. Тогда хрень какая-то. Ответ должен приходить со скоростью пинга. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 00:20 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ъъъъъклиент - тоже я (см. код 22306718 Протокол HTTP 1.1, не использую никаких SSL/TLS. Тогда хрень какая-то. Ответ должен приходить со скоростью пинга. Да. Если на сервере вместо Код: plaintext 1.
задать Код: plaintext 1.
или сетевое имя компьютера - то всё очень-очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 02:39 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
В общем, это я тормоз. Клиент должен коннектиться не localhost, а к 127.0.0.1, тогда не будет задержки при коннекте. Или серверу следует указывать привязку не к "0.0.0.0", а к "::". Тогда пофиг, что клиент будет указывать при коннекте - localhost, 127.0.0.1 или сетевое имя компьютера. Что-то связано с ipv4/ipv6, завтра разберусь. Спать пошел. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 04:06 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
это виноват "местный" dns, разрешение имен, частая сетевая проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 09:10 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Не DNS, а hosts в данном случае. Он ресольвит localhost в два адреса - IPv6 и IРv4. По умолчанию IPv6 имеет приоритет и клиент пытается использовать его. Кривая библиотека: достаточно умная чтобы использовать IPv6, но недостаточно умная для коннекта сразу на все полученные адреса. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 12:32 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
hosts и есть "местный" локальный ДНС ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 13:07 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Сокет (клиентский и серверный) создается в https://github.com/yhirose/cpp-httplib/blob/master/httplib.h#L2061 В клиенте функция getaddrinfo() (коннект к "localhost") возвращает список addrinfo структур, в которых addrinfo с протоколом ipv6 идут первыми, а затем иду ipv4. А в сервере (бинд к "0.0.0.0") формируется список только из addrinfo с ipv4. Таким образом, клиент создает сокет ipv6, который лезет к серверу ipv4, обламывается через 2 секунды, берет следующий addrinfo с ipv4, получает правильный коннект. Если сервер биндится в "::", то в итоге он будет "висеть" на сокете ipv6 (все та же getaddrinfo()). ... Если в https://github.com/yhirose/cpp-httplib/blob/master/httplib.h#L2069 задать хинт, вместо Код: plaintext 1.
задать, например, Код: plaintext 1.
то и клиент и сервер будет работать по ipv4. Или в настройках ОС клиента изменить порядок приоритета, задав ipv4 более приоритетным: В HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters создать/задать переменную DisabledComponents со значением 20 (hex). Подробности: https://docs.microsoft.com/en-US/troubleshoot/windows-server/networking/configure-ipv6-in-windows. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 14:59 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, Угу. Большинство ПО прописывают что вырубать ipv6 и не парятся по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:13 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, MSDNInternet Protocol version 6 (IPv6) is a mandatory part of Windows Vista and Windows Server 2008 and newer versions. We do not recommend that you disable IPv6 or its components. If you do, some Windows components may not function. We recommend using Prefer IPv4 over IPv6 in prefix policies instead of disabling IPV6. Кто я такой, чтобы идти против MS-Soft. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:17 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъклиент создает сокет ipv6, который лезет к серверу ipv4, обламывается через 2 секунды, берет следующий addrinfo с ipv4, получает правильный коннект. Вот именно поэтому правильные клиенты создают сокеты сразу для всех полученных addrinfo, коннектятся в неблокирующем режиме и используют тот сокет, который сумел успешно подключиться раньше остальных. Остальные можно либо пристрелить, либо отправить в пул для последующего повторного использования. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:21 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ъъъъъклиент создает сокет ipv6, который лезет к серверу ipv4, обламывается через 2 секунды, берет следующий addrinfo с ipv4, получает правильный коннект. Вот именно поэтому правильные клиенты создают сокеты сразу для всех полученных addrinfo, коннектятся в неблокирующем режиме и используют тот сокет, который сумел успешно подключиться раньше остальных. Остальные можно либо пристрелить, либо отправить в пул для последующего повторного использования. Да, библиотека https://github.com/yhirose/cpp-httplib - "блокирующая". Ну, в плане создания клиентского сокета, думаю, можно чуток и подшаманить. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:28 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъДа, библиотека https://github.com/yhirose/cpp-httplib - "блокирующая". Это сугубо всё равно. Блокирующей библиотеке никто не запрещает использовать неблокирующие сокеты с select/poll/и т.п. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:33 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:49 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ PetroNotC Sharp, MSDNInternet Protocol version 6 (IPv6) is a mandatory part of Windows Vista and Windows Server 2008 and newer versions. We do not recommend that you disable IPv6 or its components. If you do, some Windows components may not function. We recommend using Prefer IPv4 over IPv6 in prefix policies instead of disabling IPV6. Кто я такой, чтобы идти против MS-Soft.ты счас на работе? Зайди в свойства сети и проверь галку на ver 6 Стоит? У меня нет в достаточо крупной конторе))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 15:49 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp ты счас на работе? Зайди в свойства сети и проверь галку на ver 6 Стоит? У меня нет в достаточо крупной конторе))) У нас десятки тысяч клиентов. Если у 1% клиентов возникнут вопросы - мы потонем. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 16:46 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, Не знаю что вы готовый апач не возьмете на стока народу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 18:26 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp ъъъъъ, Не знаю что вы готовый апач не возьмете на стока народу. Расскажи, чем апач лучше этого кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 18:37 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Если речь о скорости пошла - то зачем вы с Апачем сравниваете? Берите NGinx. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 18:48 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Если речь о скорости пошла - то зачем вы с Апачем сравниваете? Берите NGinx. Я вообще не понимаю, откуда вопросы о скорости. Тормоза - только при коннекте, только на клиенте, и то лишь при определенных условиях, которые уже понятно как обойти. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 19:05 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, "Расскажи, чем кресло лучше табуретки?)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 20:06 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Тема топика - встраиваемый http-сервер. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 20:28 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Тема топика - встраиваемый http-сервер. Верно? Э... по итогам: "Пауза при коннекте клиента к кастомному http-серверу на базе библиотеки httplib". Наверное. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 20:48 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Запускай клиент + сервер + tcpdump и по паузе между пакетами разберемся что чего ждет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 21:10 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, прикалываешься. Я в отладчике посмотрел, "чего ждёт". И рассказал: 22308270 . Ещё раз. Вот код: https://github.com/yhirose/cpp-httplib/blob/master/httplib.h#L2063 Клиент, вызывая функция getaddrinfo(), по символическому имени хост-сервера получает одну или несколько структур addrinfo; каждая из структур содержит физический адрес, который можно указать в вызове bind () или connect (2). Особенность Windows такова, что если в системе разрешены ipv4 и ipv6, и символическое имя хост-сервера может быть разрешено в обоих протоколах, то список структур addinfo возвращается отсортированным с приоритетом "ipv6 раньше". Библиотека реализована так, что клиент по очереди "щупает" интерфейсы, создавая сокет и пытаясь связаться с указанным физическим адресом по конкретному протоколу. Первым "щупается" ipv6. Если сервер "сидит" на ipv4, то попытка коннект обламывается через таймаут ~2 сек. Вторая попытка выполняется уже по другому addrinfo, где протокол - ipv4, коннект выполняется успешно. Вот и всё. И про способы решения я тоже расписал, по той же ссылке. Плюс Д.Сибиряков предложил выполнять коннект сразу по всем протоколам, в неблокирующем режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 21:53 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
А ну сорян. Тогда дерзай. Кодь дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 21:57 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, А зачем в приложение на С++ встраивать вебсервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 07:48 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
petrav, Он внешним консольным сделает ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 07:53 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
petrav ъъъъъ, А зачем в приложение на С++ встраивать вебсервер? IPC. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:07 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ petrav ъъъъъ, А зачем в приложение на С++ встраивать вебсервер? IPC. Inter-process communication? Неужели для этого нужен веб-сервер? Ох ёп. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:13 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
petrav ъъъъъ пропущено... IPC. Inter-process communication? Неужели для этого нужен веб-сервер? Ох ёп. :) Расскажи, что лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:23 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ petrav пропущено... Inter-process communication? Неужели для этого нужен веб-сервер? Ох ёп. :) Расскажи, что лучше. ZeroMQ посмотри ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:28 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ petrav пропущено... Inter-process communication? Неужели для этого нужен веб-сервер? Ох ёп. :) Расскажи, что лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:38 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dima T А что даст использование ZMQ? HTTP протокол в данной задаче тем и хорош, что не требует постоянного соединения. Послал запрос, получил ответ или отлуп. А в ZMQ даже нет возможности со стороны сервера отказать в коннекте. И инициировать дисконнект с конкретным корреспондентом нельзя, только полное уничтожение сокета, с полным отваливанием всех. Да и вообще, не рекомендуется через ZMQ в Интернет выходить, хотя, да, появились поточные сокеты, и средства аутентификации, но с ними всеми пока больше хлопот, чем пользы. ZMQ - шикарен для локальных сетей и inproc коммуникации. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:44 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ, У вас межпроцессное или сетевое? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:53 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Это только у сишников наверно что межпроцессное, что сетевое что веб все одно и тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 09:56 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Тема "разгона веба" обсуждалась давно. И следствием ее возник протокол http/2. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 11:48 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Тема "разгона веба" обсуждалась давно. И следствием ее возник протокол http/2. В java она в сервлетах. В шарпе модули на IIS. А тут вероятно в виде синшных функций рядом с main() {сервер.старт} ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 11:53 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Я думаю что с точки зрения сервлетов - ничего не поменяется. Давай пятничным топиком обсудим. Трассировка сети в браузерах Chrome показывает что по факту http2 уже используется во многих медийных порталах. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 11:58 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Упс. Фигню написал. У него простой апдейт приложения. 22306819 Обычно просто на фтп сервере проверяют. Есть ли обновления. Ну или в бд. Тут целый веб сервер. Оверхед. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:02 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, >http2 У нет проблем со скоростью. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:03 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Я помню лет сто назад. Были такие жлобские протоколы типа TFPT (Trivial FTP). Без автентификации. Использовался для обновления прошивок железа. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:05 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Занафига текстовый веб протокол чтобы обновить программа.exe при запуске? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:05 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Счас на марсе вертолет обновляют BIOS. Наверняка по текстовому))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:06 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Занафига текстовый веб протокол чтобы обновить программа.exe при запуске? Технически, классический ftp создает несколько сокетов. А http - это просто сокет-сервер. Как telnet. Поэтому для качания 1-го файла http проще IMHO. Для листинга файлов - ну да. Можно что-то прикрутить сбоку типа IndexMod (Apache). Но я думаю что автор обойдется просто публикацией текстового файлика с листингом и с MD5 суммами. Я так делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:07 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, То есть у тебя критерий только число сокетов? Нельзя по одному критерию решать ФТП или HTTP ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:11 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Занафига текстовый веб протокол чтобы обновить программа.exe при запуске? Я не очень понимаю зачем акцентировать внимание на текстовом и не-текстовом. Туловище response (если оно бинарное) - так и есть - бинарное. Просто в заголовке ответа мы пишем что декскыть app/octet-stream и лупим сырой поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:14 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, То есть у тебя критерий только число сокетов? Нельзя по одному критерию решать ФТП или HTTP Ну ты подумай сам. Если-б ты кодил свой FTP-сервер - то тебе сессию контролировать всяко проще по 1 сокету. А по 2-м надо 2 потока и координацию между ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:15 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Я предлагаю судить не по текст или нет, и не по сокетам а по КОМПЛЕКСНЫМ критериям. Что лучше для обновления экзешника. Я не говорю только про текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:31 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp mayton, То есть у тебя критерий только число сокетов? Нельзя по одному критерию решать ФТП или HTTP Ну ты подумай сам. Если-б ты кодил свой FTP-сервер - то тебе сессию контролировать всяко проще по 1 сокету. А по 2-м надо 2 потока и координацию между ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:33 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
maytonТема "разгона веба" обсуждалась давно. И следствием ее возник протокол http/2. Не так уж и давно. Она начала обсуждаться только после того как гугль эту самую "скорость веба" загнал под плинтус принудительным внедрением HTTPS. Скорость HTTP/1.1 всех устраивала. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:34 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, По принудиловке они сволочи конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 12:35 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Я предлагаю судить не по текст или нет, и не по сокетам а по КОМПЛЕКСНЫМ критериям. Что лучше для обновления экзешника. Я не говорю только про текст. А какая проблема обновлений экзешника? Поднимай самый древний Апач. И все будет чики-пики. Подкладывай новые -xx.yy.zip и контрольные суммы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:27 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, В архитектуре есть слово оверхед.. Для обновления экзешника веб сервер это именно это слово. А работать будет и Ока и мерс и жигули. Перевозить бинарник из точки А в точку Б. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:33 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
maytonПодкладывай новые -xx.yy.zip и контрольные суммы. Зачем? В зипе уже есть контрольные суммы, а апач нормально отдаёт LastModified. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:34 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC SharpВ архитектуре есть слово оверхед.. Для обновления экзешника веб сервер это именно это слово. Оверхэдом уже является само автоматическое обновление экзешника, на его фоне всё остальное - мелочи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:38 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, А какие есть методы обновления без переделки оного в веб приложение? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:44 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, В архитектуре есть слово оверхед.. Для обновления экзешника веб сервер это именно это слово. А работать будет и Ока и мерс и жигули. Перевозить бинарник из точки А в точку Б. Есть много схем обновления. Если софт пишется под Linux (Debian) - там есть своё коробочное решение. Надо зарегать свой репо. Ключи. Подписи и т.п. И дальше клиент обновляется автоматом по apt-get update/upgrade. Под Windows - наверняка тоже есть что-то. MSI собрал. Обновился. Мы когда - то использовали svn. Клиент у себя запускал svn update и все обновлялось. Оверхед - здесь не самое главное. Встраиваемых http-серверов - миллионы + тележка. Гораздо важнее ИМХО не соблюсти оверхед а найти "инженерное" решение. Инженер - приспосабливает то что есть. А в перфекционизме - можно потерять и другое более ценное. Время на разработку например. Зачем в миллионный раз разрабатывать http-сервер на С++ ? Ради амбиций? Ну да. Одобряю. Ради бизнеса? Нет. Лучше приспособить то что уже проверено. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:48 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Ты про винду ничего не сказал. Как обновить программа.exe? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:51 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, >Зачем в миллионный раз разрабатывать http-сервер на С++ ? = это согласен. Каждый прогер должен построить дом, написать логгер и свой сервер) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:53 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Ты про винду ничего не сказал. Как обновить программа.exe? Мои знания про Windows устарели. Я работал в доменах Windows 2003 последний раз до 2010 года. Что толку если я щас буду гуглить? Давай зададим этот вопрос в форуме Windows. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:05 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Да нету ничего. Ничего не изменилось с прошлого тысячилетия. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:19 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Ну там же есть этот. Windows-Market. Значит есть единая точка откуда можно взять сведенья по софту. Может и обновления оттуда тоже потянуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:22 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Первый раз слышу чтобы его заюзал бизнес. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:31 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
PetroNotC SharpКак обновить программа.exe? Если софт корпоративный - MSI+доменная политика обновления. Если для личного использования - вообще обновлять не надо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:33 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:35 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Комп в домене думаю оффтоп. Это в корне меняет тему. Зачем вообще тогда веб сервер))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:39 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Все хрень кроме первых двух ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:50 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:56 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 16:14 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Мне - не проще. Я Excel запускаю десктопный. Мне он - приятнее. Вот как-то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 16:18 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Я проще сказал не по отношеню эксель веб или десктоп. А проще в веб уйти чем с msix разбираться. Ну или по ФТП скачать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 16:25 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, Сильверлайт, корба, com - все сложное и умерло нафиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 16:26 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Нормальное развитие по спирали. Все последние 25 лет развития интернета - это попытки прощупаь что из контента можно исполнять на сервере а что можно переложить на клиента. И где найти ту грань сложности веб-кодинга чтобы послендний верстальщик-рукожоп смог сверстать формочку. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 17:07 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
ъъъъъ PetroNotC Sharp ъъъъъ, Не знаю что вы готовый апач не возьмете на стока народу. Расскажи, чем апач лучше этого кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Еще вариант на Node.JS написать. Если не просто хостинг а какие-то простые действия сделать надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 19:01 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton, А меня мутит с Node). Как с 1С. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 19:37 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Google Chrome как-то же обновляется... Интересно как? А у World Of Warcraft вообще потрясающая система обновления. Какой-то супер протокол, который определяет какие файлы нужно обновить и даже какие части этих файлов нужно обновить. Плюс сама система обновления построена на технологии торрентов. Когда миллионы геймеров примерно в одно и тоже время садятся поиграть, они достаточно быстро обновляют свою инсталляцию игры в десятки гигабайт. Это не обновление столько весит, а вся инсталляция. Плюс возможность начать играть когда ещё не всё обновление скачано. Плюс обновление самого "обновлятора". Шедевр. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 19:52 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
petrav А у World Of Warcraft вообще потрясающая система обновления. Какой-то супер протокол, который определяет какие файлы нужно обновить и даже какие части этих файлов нужно обновить. Плюс сама система обновления построена на технологии торрентов. Когда миллионы геймеров примерно в одно и тоже время садятся поиграть, они достаточно быстро обновляют свою инсталляцию игры в десятки гигабайт. Это не обновление столько весит, а вся инсталляция. Плюс возможность начать играть когда ещё не всё обновление скачано. Плюс обновление самого "обновлятора". Шедевр. Дерево Меркла. Позволяет очень быстро определить какие части файла рассинхронизованы с эталоном. У меня есть предположение что утилита rsync так и работает. И я когда-то предлагал такой обновлятор только не для файлов а для холодных бекапов баз данных сделать. https://www.sql.ru/forum/1331028/sredovyy-rsync-cherez-http ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 20:23 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Как можно играть когда обновление еще не скачано? ХЗ. Это наверное просто особенность игрового софта. Он - толерантный например в части качества визуального материала. Еще Джон Кармак предлагал различную поэтапную загрузку деталей текстур. MipMap. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 20:40 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
mayton Как можно играть когда обновление еще не скачано? ХЗ. Это наверное просто особенность игрового софта. Он - толерантный например в части качества визуального материала. Еще Джон Кармак предлагал различную поэтапную загрузку деталей текстур. MipMap. Игровой мир разбит на локации. Не всем можно/нужно в новую локацию. Но она скачается прямо в процессе игры. Но если она ещё не скачена, а пользователь туда уже ломится, ну снова в ожидание с приоритетом на скачивание именно этой локации. Главное преимущество — торренты встроенные прямо в updater игры. Пользователь даже не знает, что он торренты юзает и сам же отдаёт обновление игры. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 21:54 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
petrav, торренты - это не магия, есть бесплатные библиотеки с простым интерфейсом, как раз для создания серверов мини- торрент-трекеров в целях реализации онлайн-дистрибуции. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 23:34 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Более того, одна из этих библиотек - WinAPI с недавнего времени. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 00:31 |
|
httplib: скорость клиент-серверного обмена (HTTP 1.1)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ъъъъъклиент создает сокет ipv6, который лезет к серверу ipv4, обламывается через 2 секунды, берет следующий addrinfo с ipv4, получает правильный коннект. Вот именно поэтому правильные клиенты создают сокеты сразу для всех полученных addrinfo, коннектятся в неблокирующем режиме и используют тот сокет, который сумел успешно подключиться раньше остальных. Остальные можно либо пристрелить, либо отправить в пул для последующего повторного использования. И итоге, автор просто добавил метод Код: plaintext 1.
Теперь перед коннектом можно принудительно задать, например, AF_INET или AF_INET6. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 04:14 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017229]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 433ms |
0 / 0 |