Expliqué
SOCKS5 est un protocole proxy de couche transport défini dans la RFC 1928. Contrairement à un proxy HTTP, qui comprend et analyse les requêtes et réponses HTTP, un proxy SOCKS5 opère à un niveau inférieur : il transfère des paquets TCP ou UDP bruts entre vous et la destination sans inspecter ni modifier la charge utile. Cela signifie qu'un proxy SOCKS5 peut transporter n'importe quel protocole fonctionnant sur TCP ou UDP, pas seulement le trafic web.
SOCKS5 est la version moderne du protocole proxy SOCKS, ajoutant la prise en charge d'IPv6, du transfert UDP et des méthodes d'authentification (sans authentification, nom d'utilisateur/mot de passe, GSS-API). La plupart des fournisseurs de proxies résidentiels et ISP exposent leurs points de terminaison via HTTP et SOCKS5 afin que les clients puissent choisir le protocole adapté à leur infrastructure.
Pour le scraping web via HTTPS, un proxy HTTP CONNECT et un proxy SOCKS5 se comportent de manière presque identique — les deux finissent par tunneliser du trafic TCP chiffré. Les différences deviennent significatives lorsque votre client utilise des protocoles non HTTP (FTP, SMTP, IRC, BitTorrent, jeux) ou lorsque vous avez spécifiquement besoin de la prise en charge UDP.
Comment ça fonctionne
Lorsque votre client se connecte à un proxy SOCKS5, il envoie une petite négociation spécifiant la méthode d'authentification, puis une commande CONNECT avec l'hôte et le port de destination. Le proxy ouvre une connexion TCP vers cette destination et se contente ensuite de relayer les octets entre le client et la destination. Il n'y a pas de couche HTTP — le proxy ne lit pas l'URL, les en-têtes ni le corps de la réponse.
Cette transparence au niveau de la couche transport explique pourquoi SOCKS5 fonctionne avec n'importe quel protocole basé sur TCP. La prise en charge UDP utilise un flux UDP ASSOCIATE séparé où le client envoie des datagrammes UDP au proxy et le proxy les transfère vers la cible. L'authentification, si elle est utilisée, se produit une seule fois lors de la négociation initiale et s'applique à toute la session.