Proxy365

Главная › Блог › Основы

HTTP или SOCKS5: в чём разница и какой протокол выбрать

Основы6 минут чтения

Короткий ответ: для браузеров, парсеров и большинства программ подходит HTTP — его понимают почти везде, в том числе с логином и паролем. SOCKS5 нужен там, где программа работает не только с сайтами: в Telegram, в части приложений и скриптов. Для обычной работы с сайтами разница почти незаметна: IP, скорость и надёжность зависят от самого прокси, а не от протокола.

Главное различие

HTTP-прокси «понимает» веб: он работает на уровне протокола, на котором браузер общается с сайтами. SOCKS5 работает уровнем ниже и в содержимое не вникает — он просто передаёт соединение от программы к серверу и обратно.

Поэтому HTTP-прокси создан для веб-трафика, а SOCKS5 подходит почти для любого. Для сайта результат одинаковый: он видит IP прокси, а не ваш. Что такое прокси в целом, — в статье что такое прокси.

Как работает HTTP-прокси

Изначально HTTP-прокси придумали для веб-страниц. Браузер отправляет прокси запрос «открой такую-то страницу», прокси сам обращается к сайту и возвращает ответ.

С HTTPS, а сейчас так работают почти все сайты, схема другая. Браузер просит прокси открыть туннель до нужного сайта — для этого в протоколе есть команда CONNECT. Дальше внутри туннеля идёт зашифрованный трафик, и прокси не видит ни страниц, ни паролей, ни данных форм — только адрес сайта и объём переданного.

Что важно знать:

  • Рассчитан на веб-трафик — HTTP и HTTPS. Через туннель CONNECT можно передавать и другие соединения, но это зависит и от программы, и от настроек прокси.
  • Поддерживается почти везде: браузеры, расширения, парсеры, SEO-программы, библиотеки для программирования.
  • Логин и пароль передаются стандартным способом. Браузер сам покажет окно, где их нужно ввести.
  • Незашифрованные HTTP-запросы прокси видит целиком и технически может их изменить, например дописать заголовки. С HTTPS-сайтами так сделать нельзя.

Как работает SOCKS5

SOCKS5 — универсальный посредник. Программа говорит прокси: «соедини меня с таким-то адресом и портом», и дальше прокси просто передаёт данные в обе стороны, не разбирая, что внутри. Это могут быть веб-страницы, трафик мессенджера, почты или любого другого приложения.

Что важно знать:

  • Передаёт любые TCP-соединения, а не только веб.
  • Поддерживает UDP. Он нужен для звонков, видеосвязи, онлайн-игр и других приложений, где важна скорость доставки. Но UDP через SOCKS5 должны поддерживать и сервер, и программа, а это реализовано не везде. Если UDP для вас критичен, проверьте его до того, как строить на этом работу.
  • Не вмешивается в данные: не дописывает заголовки и не меняет содержимое.
  • Может отправлять DNS-запросы через прокси. Программа передаёт прокси не IP сайта, а его имя, и адрес ищет уже прокси. Включено ли это, зависит от настроек программы — подробнее ниже.
  • Логин и пароль протокол поддерживает, но не каждая программа умеет их передавать. Классический пример — браузеры: Chrome не поддерживает SOCKS5 с авторизацией.

Шифрования нет ни у того, ни у другого

Частое заблуждение — что SOCKS5 «безопаснее». Ни HTTP-прокси, ни SOCKS5 сами по себе трафик не шифруют. Данные защищает HTTPS самого сайта: если адрес начинается с https, содержимое зашифровано независимо от протокола прокси.

Задача прокси — показать сайту другой IP. От выбора протокола это не зависит.

Сравнение по пунктам

HTTPSOCKS5
Что передаётВеб-трафик: HTTP и HTTPSЛюбые TCP-соединения, UDP — если его поддерживает сервер
БраузерыВезде, с логином и паролемЕсть, но с авторизацией встроенные настройки обычно не работают
TelegramТолько Telegram DesktopВсе официальные приложения
Парсеры и SEO-программыПочти всегдаЧасто, но не всегда
Антидетект-браузерыДаДа
Видит содержимое HTTPSНетНет
Шифрует трафикНетНет

Что выбрать под задачу

  • Обычный браузер (Chrome, Edge, Firefox, Яндекс Браузер) — HTTP. Логин и пароль браузер спросит сам. Пошагово — в статье как настроить прокси в браузере.
  • Антидетект-браузер — подойдут оба: антидетекты, как правило, поддерживают и HTTP, и SOCKS5 с логином и паролем. Главное — чтобы тип в профиле совпадал с портом.
  • Парсеры и SEO-программы — HTTP: его поддерживают практически все. SOCKS5 — если он прямо указан в настройках программы.
  • Telegram — SOCKS5.
  • Свои скрипты — зависит от библиотеки. Например, в Python библиотека requests работает с HTTP-прокси сразу, а для SOCKS5 ей нужен дополнительный пакет (requests[socks]). Утилита curl умеет оба протокола.
  • Программы, которые работают не с сайтами — почтовые клиенты, мессенджеры, некоторые настольные приложения, — SOCKS5, если программа вообще поддерживает прокси.

Где нужен именно SOCKS5

Telegram

Мобильные приложения Telegram поддерживают два типа прокси: SOCKS5 и MTProto — собственный протокол Telegram. HTTP-прокси в мобильной версии добавить нельзя. Telegram Desktop умеет работать и с HTTP, но, чтобы настройки были одинаковыми на всех устройствах, проще сразу взять SOCKS5. Пошаговая инструкция — в статье как подключить прокси в Telegram.

В Proxy365 под выданным прокси есть кнопка «Добавить в Telegram»: прокси подключается в один тап, вводить адрес, порт и пароль вручную не нужно.

Приложения, которым нужен UDP

Звонки, видеосвязь, некоторые игры и программы для трансляций передают данные по UDP. Обычный HTTP-прокси UDP не передаёт. SOCKS5 — может, если UDP поддерживают и сервер, и приложение.

Программы без поддержки HTTP-прокси

Некоторые приложения в сетевых настройках предлагают только SOCKS. Выбора тут нет.

DNS: где SOCKS5 требует внимания

Чтобы открыть сайт, программа сначала узнаёт его IP по имени — это DNS-запрос. Если такой запрос идёт не через прокси, а напрямую через DNS-сервер вашего провайдера, это называют DNS-утечкой. Сайт видит IP прокси, но провайдер знает, какие сайты вы открываете, а сервисы проверки показывают DNS-сервер не из страны прокси.

  • С HTTP-прокси браузер передаёт прокси имя сайта, и адрес ищет уже прокси. Для веб-трафика DNS-утечки здесь обычно нет.
  • С SOCKS5 всё зависит от настроек. Программа может сама узнать IP сайта и передать прокси готовый адрес — тогда DNS-запрос уходит мимо прокси. В хороших программах есть опция «DNS через прокси»: в Firefox это отдельная галочка в настройках прокси рядом с SOCKS, в curl — схема socks5h:// вместо socks5://.

Как проверить утечки на практике, — в статье как проверить, что прокси работает.

Порт и протокол должны совпадать

Самая частая ошибка: в программе выбран один протокол, а порт указан от другого. У одного прокси порты для HTTP и SOCKS5 могут отличаться. Если выбрать тип HTTP и указать порт для SOCKS5 или наоборот, соединения не будет, хотя IP, логин и пароль верные.

По номеру порта протокол не угадать: провайдеры назначают порты по-своему. Привычные 8080 или 1080 — распространённые значения, а не правило. Ориентируйтесь на то, что указано в ваших доступах.

А скорость?

В теории SOCKS5 чуть проще: он не разбирает трафик. На практике для работы с сайтами разница незаметна. Скорость определяют сервер прокси, его канал и расстояние до сайта. Выбирайте протокол по совместимости с программой, а не по скорости.

Коротко

  • HTTP — для браузеров, парсеров и большинства программ: поддерживается везде, логин и пароль работают без проблем.
  • SOCKS5 — для Telegram, программ, которые работают не только с сайтами, и задач с UDP.
  • Ни один из протоколов не шифрует трафик — данные защищает HTTPS сайта.
  • Порт должен соответствовать протоколу, выбранному в программе.
  • Прокси с HTTP и SOCKS5 и подбор за 4 вопроса — в @Proxy365Bot.

Частые вопросы

Что лучше для браузера — HTTP или SOCKS5?

HTTP. Браузеры поддерживают его с логином и паролем, а SOCKS5 с авторизацией встроенные настройки браузеров, как правило, не принимают. В Chrome она не поддерживается совсем.

SOCKS5 безопаснее HTTP?

Нет. Оба протокола сами по себе трафик не шифруют. Данные защищает HTTPS сайта, и он работает одинаково через любой из них.

Какой протокол нужен для Telegram?

SOCKS5: его поддерживают все официальные приложения Telegram. HTTP-прокси можно добавить только в Telegram Desktop.

Поддерживает ли SOCKS5 UDP?

Сам протокол SOCKS5 поддерживает UDP, но это должны уметь и конкретный прокси-сервер, и программа. Обычный HTTP-прокси UDP не передаёт.

Почему прокси не подключается, хотя логин и пароль верные?

Чаще всего перепутаны протокол и порт: в программе выбран HTTP, а указан порт для SOCKS5, или наоборот. Проверьте, что тип и порт совпадают.