Прокси – это всегда некий узел в сети, который выступает посредником на пути проброса запросов. Но Интернет – это сеть сетей, которая может использовать для своей работы разные протоколы и технологии. Единственные важные стандарты, которые позволяют связывать узлы друг с другом – это стек TCP (транспортный протокол) и IP (адресное пространство, сетевой уровень).
Всё остальное работает поверх: HTTP/HTTPS, FTP, SFTP, L2TP, P2P, DNS, IMAP, SMTP, SSH и т.п.
Прокси – не исключение. Но у прокси нет своего собственного протокола или какой-то особенной технологии, поэтому для проброса данных логично использовать уже имеющиеся. Для нужд прокси лучше других подходят протоколы HTTP (HTTPS) и SOCKS (4 или 5 версии). О них, и об их различиях, а также о технических особенностях поговорим ниже.
Наиболее востребованный протокол прикладного уровня (это 7 уровень по модели OSI) – HTTP или HTTPS.
HTTP – от англ. HyperText Transfer Protocol, протокол, используемый для передачи по сети гипертекста, то есть информации о структуре и разметке web-страниц, HTML-документов. Сейчас HTTP используется для передачи любых данных: изображения, видео, текст и т.п.
HTML и DNS-система отвечают за работу сайтов и web-сервисов. Благодаря им мы может обмениваться сообщениями, хранить фото и документы в облаках, редактировать их онлайн, искать любую информацию, просматривать видеоролики (ТВ, стриминговые сервисы).
Так как данные в HTTP-протоколе передаются в открытом виде, то со временем назрела необходимость «апгрейда». Так, на смену простому HTTP-протоколу пришёл защищённый HTTPS.
Здесь данные между клиентом и сервером шифруются на основе SSL/TLS-сертификатов (ключи асимметричного шифрования), поэтому, даже если их перехватить где-то посередине, то прочитать не получится. Расшифровать информацию может только браузер, отправивший запрос серверу или, наоборот, сервер, взаимодействующий с конкретным экземпляром браузера.
В открытом виде передаются только HTTP-заголовки.
И HTTP, и HTTPS-протокол для обмена данными требуют установки так называемой сессии подключения. Чтобы не открывать каждый раз новую сессию, клиент может сохранить её параметры в cookies.
В качестве транспортного протокола для HTTP/HTTPS всегда используется только TCP.
Какая связь между HTTP-протоколом и прокси?
HTTP-, как и HTTPS-прокси используют для своей работы ту же самую систему заголовков и передачи данных, как и любые другие участники HTTP-обмена: серверы и клиенты (браузеры, мобильные приложения, десктопные программы).
Единственное отличие: вместо основного порта (для HTTP это 80 порт, а для HTTPS – 443) используются преимущественно альтернативные. Смена порта нужна, чтобы проще было выполнять посредничество:
Благодаря такой смене портов и посредничеству прокси стало возможно построение альтернативного маршрута. Как раз так и обходятся блокировки.
Для прикладного софта (особенно это важно для браузеров) всё работает, как и раньше.
Единственный важный нюанс – в тело запроса добавляются дополнительные данные.
Благодаря этому «нюансу» HTTP-прокси могут реализовывать кеширование данных, осуществлять фильтрацию и некоторые другие действия.
SOCKS – от англ. SOCKet Secure, «защищённый сокет», это протокол сеансового уровня (5 уровень по модели OSI), который выступает в роли своего рода туннеля для обхода межсетевых экранов (брандмауэров).
Что примечательно: итоговое слово «Socks» переводится как «носки». Получается «прокси-носки».
В отличие от HTTP-протокола SOCKS сам умеет управлять TCP и UDP-подключениями, поэтому он не зависит от протоколов высокого уровня – 6 и 7 по модели OSI. Это изначально специализированное решение для проксирования (можно сказать оригинальный протокол для прокси). Поэтому связь между SOCKS и proxy очевидна.
Благодаря тому, что SOCKS-сессия (туннель) организуется на низком уровне, для прикладных программ, в том числе для браузеров, обмен данными происходит незаметно: никакие дополнительные заголовки в тело HTTP(HTTPS)-запросов не добавляются.
Основной пакет данных может шифроваться, примерно так, как это происходит в VPN-сетях. И именно поэтому брандмауэры не могут отфильтровать/отсечь конкретные данные или подключения.
В настоящее время в обиходе остаются параллельно две версии протокола:
Давайте расскажем о каждом из них подробнее.
Протокол Proxy SOCKS изначально создавался для упрощения администрирования удалённых брандмауэров, как итог он мог обходить сетевой экран, чтобы передавать данные внутрь защищённого контура.
Проход за брандмауэр открывался за счёт связки программ сервера и клиента (как и в случае с HTTP-подключениями), но данные между ними защищались шифрованием.
Наиболее популярной в обиходе стала 4 версия протокола SOCKS, которую разработал инженер Инь-Да Ли из компании NEC (первая версия SOCKS была разработана Дэвидом Кобласом из компании MIPS, он сделал протокол общедоступным в 1992 году).
SOCKS 5 версии был представлен в 1996 году, над ним работало уже сразу 6 специалистов. SOCKS 5 оформлен в виде стандарта RFC 1928.
Чем отличаются SOCKS4 и SOCKS5?
Сначала о SOCKS4:
Теперь о прокси SOCKS5:
Обратите внимание: SOCKS4 и SOCKS5 несовместимы между собой. Это значит, что клиент, работающий по протоколу SOCKS 4 версии не сможет подключиться к серверу, использующему 5 версию протокола, и наоборот.
Сравним технические особенности каждого типа прокси ниже.
Безопасность, производительность и возможности HTTP (HTTPS) прокси:
Безопасность, производительность и возможности SOCKS4 прокси:
Безопасность, производительность и возможности SOCKS5 прокси:
У каждой технологии своя сфера применения. Так, SOCKS-прокси будут максимально интересны для работы с разными прикладными протоколами и задачами:
SOCKS-прокси могут быть максимально безопасными и прозрачными. Более того, доступ к UDP (для SOCKS5-прокси) может увеличить быстродействие и производительность, если качество сетевого канала позволяет работать без корректировки ошибок.
Но вместе с тем, SOCKS-прокси требуют установки и настройки специального софта на рабочем месте. Либо совместимость должна быть реализована на уровне конкретного прикладного приложения, например, так поступают многие торрент-клиенты.
Но вот найти встроенную поддержку SOCKS-прокси в программах-парсерах вам скорее всего не удастся (это большая редкость).
HTTP-прокси распространены намного шире. Причина – их простота и доступность. Да, они не такие быстрые, как SOCKS, но современные скорости подключений эффективно нивелируют проблему производительности.
HTTP-прокси имеют низкую безопасность, но они умеют модифицировать HTTP-заголовки, кешировать и фильтровать контент. Например, подмена заголовков будет эффективной на случай, если вам нужно скрыть своё реальное местоположение, сымитировать нужный тип юзер-агента (тип и версию браузера) и т.п.
По этим простым причинам HTTP-прокси лучше подходят для задач парсинга и анализа сайтов конкурентов. С их помощью можно решать многие SMM и SEO-задачи, проводить тестирования, обходить блокировки и т.п.
SOCKS и HTTP-прокси созданы не как конкуренты, а как решения для разных задач. Поэтому сравнивать их между собой не стоит, по крайней мере в разрезе какой-то одной конкретной сферы применения.
SOCKS-прокси нужны в первую очередь для пробрасывания надёжных туннелей, по аналогии с VPN. А HTTP-прокси будут идеальны для работы с сайтами и web-ресурсами, например, для парсинга, а также для ряда других бизнес-задач (мультиаккаунты, накрутка поведенческих факторов, аналитика, тестирование).
Каким бы ни был тип прокси, основные технические параметры (скорость подключения, пинг, стабильность, расположение), а также уровень безопасности и анонимности во многом будут зависеть от провайдера услуги.
Самые надёжные HTTP и SOCKS5-прокси с ротацией (мобильные и резидентные) можно арендовать у нас. Froxy предоставляет доступ к пулу из более чем 8 млн. IP-адресов в 200+ локациях по всему миру. Точность таргетинга – до населённого пункта и провайдера связи. Одновременное подключение – до 1000 портов. Оплачивается только трафик. Чем больше предоплата, тем выгоднее будет каждый гигабайт.