Что лучше: CURL или сокеты (мнение)

Предыдущие сообщения
2 мая 2011
#1 kanaris uid#1 О том, что лучше выбрать при создании скриптов для работы с веб-формами и http-протоколом. Прошел и через то и через то. Вывод такой:

Хоть и сокеты более низкоуровневые и от того гибче, лучше использовать CURL. Может быть программно его использовать и не удобнее, зато он решает кучу приятных мелочей, которые бы пришлось в сокетах отдельно предусматривать. А конкретнее:
  • Если страница передается кусками (Transfer-encoding: chunked), CURL ее автоматически собирает в целостный вид. В сокетах нужно было бы разрабатывать функцию склейки страницы из обрезков.
  • При запросе нескольких страниц с одного сервера в CURL это делается за одно соединение. А при сокетах надо дополнительно указывать Keep-alive, плюс еще запросить правильную длину контента, чтобы сокет не подвис. Справитесь ли сами? Я кодил целый месяц эту функцию.
  • CURL поддерживает запрос нескольких страниц параллельно. Сокеты тоже (если использовать неблокирующие), но с ними гемороя много, опять же.
  • CURL поддерживает соединения через прокси, как HTTP, так и SOCKS. В сокетах придется кодить отдельный класс, позволяющий взаимодействовать по протоколу SOCKS4/5. Сколько я ни находил готовых решений, не все пашут как следует или не очень хорошо реализованы.
  • CURL поддерживает SSL-сертификаты.
  • Если CURL автоматически считает время соединения, скорость передачи данных (нужно например для отбора прокси), то в сокетах это нужно делать вручную.
  • Сокеты могут подвисать, и с этим ничего вы не сделаете, даже если поставите таймаут. В курле, я надеюсь, это решаемо (еще не проверял, как проверю отпишу).
  • И самое главное: надежность. Лучше использовать готовое решение, которое разрабатывалось и отлаживалось профессионалами, чем изобретать велосипед заново, и потом при каждом глюке в скрипте искать, где же ты допустил ошибку.
16:06:15 0
#2 varkon uid#16 На самом деле - все зависит от задач.
Правильный ответ - в случае если задача - быстро и стандартно получить данные - CURL самое верное решение и практически единственное.
Если задача выходит за рамки стандартных - вероятно стоит рассмотреть использование сокетов.
Кстати, все то, что указано в качестве преимуществ CURL - относится и к сокетам, с одной оговоркой - CURL делать это легче и не нужно погружаться в дебри стандартов и протоколов.
22:22:30 0
#3 kanaris uid#1 Этим вопросом задавался, когда нужно было спамилку для вконтактика написать. А там сугубо по веб-формам. Там курл практически идеально. А вот сокеты в таком случае юзать - это всеравно что кодить Microsoft Word на ассемблере. 22:26:18 0
15 января 2012
#4 Flash_X uid#496 Geniusнедавно наткнулся на дискуссию "что лучше JS или JQuery?"(я прекрасно понимаю, что сама по себе дискуссия -- бред, но всё же). Так вот, суть та же: юзать нативный JS муторнее document.getElementById( "id" ), чем JQuery $( "id" ), но более производительно.
С CURL та же фишка.
01:34:04 0
Следующие сообщения
*Ник: Проверка уникальности... Если вы уже зарегистрированы, авторизуйтесь.
*Сообщение:
  Загрузка...