c++ http client
От: Аноним  
Дата: 21.03.14 12:28
Оценка:
Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать
Re: c++ http client
От: smeeld  
Дата: 21.03.14 13:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать

Самому написать делов на пару часов.
Re[2]: c++ http client
От: Abyx Россия  
Дата: 21.03.14 13:26
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, Аноним, Вы писали:


А>>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать

S>Самому написать делов на пару часов.
-1, полноценный клиент писать очень сложно, RFC большой
+1, для очень небольшого подмножества HTTP — всё просто
In Zen We Trust
Re: c++ http client
От: Abyx Россия  
Дата: 21.03.14 13:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


В POCO вроде вполне сносный клиент.
In Zen We Trust
Re: c++ http client
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 21.03.14 13:27
Оценка: :)
Здравствуйте, <Аноним>, Вы писали:

А>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


http://cpp-netlib.org/
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[3]: c++ http client
От: smeeld  
Дата: 21.03.14 13:34
Оценка:
Здравствуйте, Abyx, Вы писали:

S>>Самому написать делов на пару часов.

A>-1, полноценный клиент писать очень сложно, RFC большой

Что там сложного? Начинать с основных компонентов, и с течением времени
добавлять поддержку всех остальных составляющих компонентов протокола из rfc.
Не криптография жеж.
Re: c++ http client
От: PM  
Дата: 21.03.14 17:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


Зависит от требований к полноте реализации HTTP — своё, Urdl (от автора Boost.Asio), Pion, POCO

Еще можно почитать про проект HTTP сервера для Google Summer of Code 2014
Re[2]: c++ http client
От: Abyx Россия  
Дата: 21.03.14 20:05
Оценка: +1
Здравствуйте, Sanik, Вы писали:

А>>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


S>http://cpp-netlib.org/


это сырое говно.
In Zen We Trust
Re[4]: c++ http client
От: Хреннос  
Дата: 22.03.14 07:47
Оценка: 1 (1)
Здравствуйте, smeeld, Вы писали:

S>Не криптография жеж.


А вы почитайте, к примеру, как реализована авторизация NTLM (через которую многие корпоративные прокси работают). Там и криптография, и connection: keepalive обязательно к реализации. А ежели еще, не приведи аллах, захочется HTTPS, так гораздо проще будет все-таки взять libcurl.
Re[5]: c++ http client
От: Abyx Россия  
Дата: 22.03.14 07:58
Оценка:
Здравствуйте, Хреннос, Вы писали:

S>>Не криптография жеж.


Х>А вы почитайте, к примеру, как реализована авторизация NTLM (через которую многие корпоративные прокси работают). Там и криптография, и connection: keepalive обязательно к реализации. А ежели еще, не приведи аллах, захочется HTTPS, так гораздо проще будет все-таки взять libcurl.


эм... а что такого в https? просто меняешь везде socket на ssl_socket, и добавляешь handshake.
по крайней мере в ASIO так
In Zen We Trust
Re[5]: c++ http client
От: smeeld  
Дата: 22.03.14 08:03
Оценка:
Здравствуйте, Хреннос, Вы писали:

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


Х>А вы почитайте, к примеру, как реализована авторизация NTLM (через которую многие корпоративные прокси работают.


Класс connection, по одному на каждое соединение, реализующий конечный автомат. И поток реактор, асинхроный, занимающийся отправками/приёмами и
ведающий очередью.

> Там и криптография, и connection: keepalive обязательно к реализации. А ежели еще, не приведи аллах, захочется HTTPS


Говоря про криптографию, имелось ввиду разработку иных алгоритмов, а не использование существующих.
Re[4]: c++ http client
От: Cyberax Марс  
Дата: 22.03.14 08:15
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Что там сложного? Начинать с основных компонентов, и с течением времени

S>добавлять поддержку всех остальных составляющих компонентов протокола из rfc.
А ты почитай сам RFC.

Нужно в реальности сразу же иметь:
1) Редиректы.
2) Keepalive.
3) Multipart. К примеру, тот же банальный Гугл работает только через них.

S>Не криптография жеж.

Криптография существенно проще.
Sapienti sat!
Re: c++ http client
От: Cyberax Марс  
Дата: 22.03.14 08:17
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать

А таки лучше libcurl найти что-то сложно. У неё, конечно, интерфейс не самый приятный, но зато она работает.
Sapienti sat!
Re[5]: c++ http client
От: smeeld  
Дата: 22.03.14 08:50
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нужно в реальности сразу же иметь:

C>1) Редиректы.
Выкусываешь из заголовков директиву: есть
переводишь коннектион в соответствующее состояние,
нет-и не надо.
C>2) Keepalive.

Очередь запросов. С этим keep-alive не всё так просто только для серверов,
потому что клиенты ведут себя не добросовестно.
Например, игрался с своим http серваком, и смотрел по отчётам как ведут себя клиенты.
Например, при отдаче html, в котором есть 20 картинок, firefox сначала честно
первые две/три запрашивает в рамках одного соединения, потом вдруг начинает плодить
ещё с десяток соединений и остальные картинки запрашивает через них. Но
самое плохое то, что fiefox сам эти соединения не закрывал, ждал каких-то ещё
данных с сервера, хотя весь прописанный в Content-Length объём был передан.
Настройки keep-alive уровня ОС с setsockopt и через sysctl почему-то не работали, приходилось прокручивать
очередь кондидатов на отсоединение, и, по истечению счётчика, закрывать сокет.
И вобще существующие клиенты, походу, все реализованы криво, всё бремя следования
протоколу ложиться на сервер.

C>3) Multipart. К примеру, тот же банальный Гугл работает только через них.


Пара дополнительных заголовков с небольшим усложнением логики передачи на сервер.

C>Криптография существенно проще.


Как одна из сложнейших разделов математики может быть проще http?
Re[6]: c++ http client
От: Cyberax Марс  
Дата: 22.03.14 22:53
Оценка:
Здравствуйте, smeeld, Вы писали:

C>>1) Редиректы.

S>Выкусываешь из заголовков директиву: есть
S>переводишь коннектион в соответствующее состояние,
S>нет-и не надо.
Ну-ну.

C>>2) Keepalive.

S>Очередь запросов. С этим keep-alive не всё так просто только для серверов,
S>потому что клиенты ведут себя не добросовестно.
И?

C>>3) Multipart. К примеру, тот же банальный Гугл работает только через них.

S>Пара дополнительных заголовков с небольшим усложнением логики передачи на сервер.
Ну-ну.

В общем, если правильно реализовать всё — получится не сильно меньше кода, чем в libcurl. И это точно будет не занятие на 15 минут.

C>>Криптография существенно проще.

S>Как одна из сложнейших разделов математики может быть проще http?
А вот так. В криптографии нет ничего сложного для понимания.
Sapienti sat!
Re[7]: c++ http client
От: smeeld  
Дата: 23.03.14 07:22
Оценка:
http?
C>А вот так. В криптографии нет ничего сложного для понимания.

Для понимания вообще ничего сложного нет. Если один чел что-то
сумел придумать, то другой среднестатистический чел понять это точно сможет.
Но говорил про именно изобретение чего нового. А то вон опенбсдишники
зазывают криптографистов, для изобретения новых алгоритмов, кому такое слабо?
Re[3]: c++ http client
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 24.03.14 07:21
Оценка:
Здравствуйте, Abyx, Вы писали:

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


А>>>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


S>>http://cpp-netlib.org/


A>это сырое говно.


Бывает. Моргу предположить, что и libcurl не сразу стал стабильным.
А так под требования вопроса вроде подходит
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[2]: c++ http client
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 24.03.14 08:20
Оценка:
Здравствуйте, PM, Вы писали:

PM>Здравствуйте, Аноним, Вы писали:


А>>Посоветуйте, пожалуйста, http клиент для c++, libcurl не предлагать


PM>Зависит от требований к полноте реализации HTTP — своё, Urdl (от автора Boost.Asio), Pion, POCO


PM>Еще можно почитать про проект HTTP сервера для Google Summer of Code 2014


Pion трудно назвать клиентом.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[4]: c++ http client
От: PM  
Дата: 24.03.14 08:36
Оценка:
Здравствуйте, Sanik, Вы писали:

S>>>http://cpp-netlib.org/


A>>это сырое говно.


S>Бывает. Моргу предположить, что и libcurl не сразу стал стабильным.

S>А так под требования вопроса вроде подходит

Емнип, cpp-netlib создана в 2009 или 2010 году. Когда-то я хотел использовать ее в одоном проекте, но вовремя передумал С тех пор за развитем cpp-netlib не сильно слежу, но не рекомендовал бы ее, хоть за эти несколько лет она пару раз и подвергалась кардинальной переработке. На мой взгляд, очень уж она переусложнена. Начальная версия вообще, классический образец стиля "укушен Александреску" С тех пор автор наступил на все возможные грабли шаблонов, набрался опыта, ушел работать в гугл и похоже подзабросил ее.
Re[3]: c++ http client
От: PM  
Дата: 24.03.14 08:46
Оценка:
Здравствуйте, Sanik, Вы писали:

S>Pion трудно назвать клиентом.


Да, но в ней есть почти всё, чтобы клиента таки создать — парсер HTTP, поддержка SSL. При необходимости можно добавить обработку редиректов, gzip deflate (например с помощью Boost.Iostreams) и отладить всё это

Автору темы libcurl чем-то не подходит, так что это всего лишь одна из альтернатив.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.