Un proxy HTTP et SOCKS5 résolvent le même problème — substituer votre adresse devant le serveur — mais le font à des niveaux différents de la pile réseau, et tout le reste en découle : quel trafic ils laissent passer, ce qu'ils voient et peuvent modifier, comment ils gèrent le DNS et l'UDP, et avec quels logiciels ils sont compatibles. La vitesse, contrairement à une idée reçue, n'entre presque pas en jeu. Voici une analyse des deux protocoles, un tableau comparatif et une règle de choix qui couvre neuf cas sur dix.

En bref

  • Le proxy HTTP comprend HTTP. Il lit la requête, sait où vous allez, peut ajouter des en-têtes, mettre en cache la réponse ou bloquer une adresse. HTTPS passe en aveugle via la commande CONNECT. Le trafic non-HTTP n'est pas son affaire.
  • SOCKS5 ne comprend rien et ne cherche pas à comprendre. Après un bref handshake, il se contente de relayer les octets dans les deux sens : TCP de n'importe quel protocole et, si besoin, UDP. À l'intérieur, tout est possible — site web, mail, Telegram, jeu, torrent.
  • Ni l'un ni l'autre ne chiffre le trafic en soi. La protection des données relève du protocole encapsulé (HTTPS, TLS), pas du proxy.

À quel niveau opère chacun

Le proxy HTTP vit au niveau applicatif. Le client lui envoie une requête HTTP classique, mais avec l'adresse complète dans la première ligne (GET http://example.com/page HTTP/1.1) ; le proxy ouvre lui-même la connexion au serveur, reçoit la réponse et la transmet au client. Tout le contenu transite en clair et il est en droit de le modifier.

Pour HTTPS, le schéma diffère : le client demande au proxy d'établir un tunnel via la commande CONNECT example.com:443, le proxy connecte les deux sockets et ne fait plus que relayer les octets chiffrés. Il voit le nom d'hôte et le port, mais ni le chemin, ni les en-têtes, ni le corps de la requête.

SOCKS5 (RFC 1928) se situe plus bas — entre le transport et l'application. Le client négocie avec le proxy la méthode d'authentification, indique l'adresse de destination (IPv4, IPv6 ou nom de domaine) et le port, le proxy ouvre la connexion et devient dès lors un tuyau transparent. Il ignore quel protocole circule à l'intérieur et fonctionne donc avec n'importe lequel. Si vous voulez revoir les bases, commencez par l'article sur ce qu'est un serveur proxy.

Comment fonctionne un proxy HTTP

Ce qu'il sait faire parce qu'il comprend le protocole

  • Mise en cache. Les requêtes répétées vers une même ressource peuvent ne pas atteindre le serveur — c'est ainsi que fonctionnent les proxies d'entreprise et de fournisseur d'accès.
  • Filtrage par URL. Le proxy voit l'adresse et peut la bloquer, supprimer les traqueurs ou rediriger.
  • Modification des en-têtes. Il peut ajouter Via, X-Forwarded-For ou Forwarded (RFC 7239) — et ainsi révéler votre adresse réelle. Il peut aussi retirer le superflu.
  • Authentification. Le login et le mot de passe sont transmis via l'en-tête Proxy-Authorization, le plus souvent en schéma Basic — donc en Base64, sans chiffrement. Sur un canal non sécurisé, ils sont visibles.

Ce qu'il ne sait pas faire

Tout ce qui n'est pas HTTP. Les protocoles de messagerie, SSH, les serveurs de jeu, les clients torrent, la VoIP ne fonctionnent soit pas du tout via un proxy HTTP, soit exigent que le logiciel sache encapsuler la connexion dans CONNECT et que le proxy autorise de tels tunnels vers des ports arbitraires. Beaucoup de proxies n'autorisent CONNECT que vers le port 443.

Trois degrés d'anonymat

En raison des en-têtes, les proxies HTTP sont traditionnellement classés en trois catégories. Le transparent transmet votre IP réelle dans X-Forwarded-For et annonce honnêtement sa présence dans Via. L'anonyme masque l'adresse mais laisse les en-têtes relatifs au proxy — le serveur comprend qu'il a affaire à un intermédiaire. L'élite n'ajoute rien et ressemble à un client ordinaire. SOCKS5 n'a pas cette classification : il n'a pas accès aux en-têtes et n'ajoute rien par définition.

Comment fonctionne SOCKS5

Le handshake

La connexion débute par l'énumération par le client des méthodes d'authentification prises en charge, puis le serveur en choisit une : sans authentification, par login/mot de passe (RFC 1929) ou GSS-API. Ensuite, le client envoie une requête avec la commande, le type d'adresse et le port. Il existe trois commandes : CONNECT — connexion TCP sortante classique, BIND — accepter une connexion entrante (nécessaire par exemple pour le FTP actif), UDP ASSOCIATE — ouvrir une relance de datagrammes UDP.

DNS distant

Différence clé avec SOCKS4 : l'adresse de destination peut être transmise sous forme de nom de domaine, et c'est alors le proxy qui résout le nom, pas votre machine. Dans curl et Python, cette distinction est portée par le schéma d'URL : socks5:// résout le nom localement, socks5h:// — côté proxy. La première option laisse les requêtes DNS chez votre fournisseur d'accès, la seconde les emporte avec le trafic. Pour les tâches où il importe de ne pas exposer son adresse, c'est bien socks5h qu'il faut.

UDP

Via UDP ASSOCIATE passe tout ce à quoi TCP ne convient pas : voix et vidéo dans les messageries, DNS, une partie des protocoles de jeu, QUIC. En pratique, l'UDP via SOCKS5 n'est pas pris en charge par tous les serveurs ni tous les clients, il faut donc le vérifier spécifiquement avant d'acheter un proxy pour ce type de besoin.

Mot de passe sans chiffrement

Le login et le mot de passe en SOCKS5 (méthode RFC 1929) sont transmis en clair, comme en HTTP Basic. Le canal jusqu'au proxy n'est protégé ni dans un cas ni dans l'autre ; seul le TLS à l'intérieur de la connexion rend le trafic sûr. Si le fournisseur propose une autorisation par IP, elle n'est pas moins fiable et ne laisse pas le mot de passe dans les logs des logiciels.

Les principales différences en un tableau

CritèreProxy HTTPSOCKS5
NiveauApplicatif (comprend HTTP)Session (transmet des octets)
TraficHTTP, HTTPS via CONNECTTout TCP, UDP en option
Voit le contenuOui pour HTTP, seulement l'hôte pour HTTPSUniquement l'adresse de destination
Peut modifier la requêteOui (en-têtes, cache, filtres)Non
Résolution DNSSur le proxySur le proxy (socks5h) ou localement (socks5)
ChiffrementNon (seulement celui de HTTPS à l'intérieur)Non (seulement celui du protocole à l'intérieur)
AuthentificationProxy-Authorization, BasicLogin/mot de passe (RFC 1929), GSS-API, sans authentification
Prise en charge logiciellePresque partoutLarge, mais pas universelle
SurcoûtAnalyse des en-têtesMinime

Vitesse : pourquoi la différence n'est pas là où on la cherche

SOCKS5 n'analyse pas les en-têtes et ne met pas en tampon les réponses, il économise donc théoriquement des microsecondes par requête. Face à la latence réseau jusqu'au proxy et du proxy jusqu'au serveur, c'est indétectable. La vitesse réelle dépend de quatre facteurs : la distance jusqu'au serveur proxy et de celui-ci jusqu'à la cible, le type d'adresse IP (les canaux mobiles et résidentiels sont plus lents que les datacenters — voir l'article sur les types de proxies), la charge du serveur concerné et le nombre de connexions ouvertes en parallèle. Le protocole ne figure pas dans cette liste.

Le seul cas où un proxy HTTP est nettement plus rapide, c'est un proxy cache sur du contenu répétitif. Le seul cas où SOCKS5 est nettement plus rapide, c'est un trafic qui ne passerait de toute façon pas par un proxy HTTP.

Anonymat et fuites

Une fuite d'adresse via un proxy ne survient pas « à cause du protocole », mais à cause de mécanismes précis, chacun avec sa propre cause.

  • En-têtes. Un proxy HTTP transparent livre votre IP dans X-Forwarded-For. Cela se règle en choisissant un proxy d'élite. SOCKS5 n'a pas ce canal de fuite.
  • DNS. Si le nom est résolu localement, votre fournisseur d'accès voit où vous allez. Le proxy HTTP et socks5h résolvent de leur côté ; socks5 non.
  • WebRTC. Le navigateur peut révéler l'adresse locale et l'adresse externe via STUN en contournant tout proxy. C'est une propriété du navigateur, pas du proxy ; cela se ferme par des réglages ou une extension.
  • Trafic hors proxy. Un proxy se configure par application. Tout ce que vous n'avez pas configuré — mises à jour système, autre navigateur, messagerie — part directement. Si vous voulez couvrir l'appareil entier, c'est le rôle d'un VPN, voir proxy contre VPN et Tor.

Compatibilité logicielle

  • Navigateurs. Chrome et Edge reprennent les proxies des paramètres système et comprennent les deux types ; Firefox a ses propres réglages et sait « proxyfier le DNS en SOCKS5 » via une case dédiée.
  • curl. curl -x http://user:pass@host:port pour HTTP, curl -x socks5h://user:pass@host:port pour SOCKS5 avec DNS distant.
  • Python. Dans requests et httpx, les proxies HTTP fonctionnent d'emblée, SOCKS5 après installation d'un paquet supplémentaire ; le schéma socks5h:// bascule de même la résolution côté proxy.
  • Telegram, Discord, clients torrent, jeux. En règle générale, SOCKS5 uniquement : leur trafic n'est pas HTTP.
  • Navigateurs anti-détection et scrapers. Prennent en charge les deux ; les fournisseurs de proxies mobiles et résidentiels exposent souvent le même port dans les deux protocoles.
  • SSH. ssh -D 1080 user@server monte un proxy SOCKS5 local via n'importe quel serveur auquel vous avez accès — un moyen pratique de tester le comportement d'un logiciel avec SOCKS5.

Quand choisir quoi

TâcheChoixPourquoi
Navigateur, travail sur des sitesIndifférent ; HTTP plus souventTout le trafic est HTTP(S), prise en charge partout
Scraping via une bibliothèque HTTPHTTP ou socks5hL'essentiel : résoudre le DNS côté proxy et ne pas envoyer d'en-têtes superflus
Messageries, jeux, torrents, mailSOCKS5Trafic non-HTTP, parfois UDP
Multiples comptes dans un navigateur anti-détectionIndifférent ; regarder l'IP, pas le protocoleL'anti-fraude évalue l'adresse et l'empreinte, pas le mode de connexion
Réseau d'entreprise, contrôle et cacheHTTPBesoin de filtrage et de journalisation par URL
Confidentialité totale de l'appareilNi l'un ni l'autreC'est le rôle d'un VPN ou de Tor
Règle : si le logiciel propose un champ « proxy HTTP » et ne communique qu'en HTTP(S) — prenez HTTP. Si le logiciel n'est pas web ou ne propose que « SOCKS5 » — prenez SOCKS5 avec DNS distant. Discuter de la vitesse n'a pas de sens.

Erreurs courantes

  1. Attendre du chiffrement de la part du proxy. Ni HTTP ni SOCKS5 ne protègent le trafic jusqu'au proxy ; seul le TLS à l'intérieur protège.
  2. Utiliser socks5:// au lieu de socks5h:// puis chercher d'où « fuit » le DNS.
  3. Configurer un proxy HTTP dans un logiciel qui ne communique pas en HTTP et imputer son silence à un « mauvais proxy ».
  4. Choisir le protocole en fonction de la vitesse. La vitesse dépend de l'adresse et de la route, et on peut les vérifier en une minute — voir comment tester un proxy : anonymat, fuites et vitesse.
  5. Croire qu'un proxy HTTP d'élite est « plus anonyme » que SOCKS5. Les deux ne révèlent pas l'adresse ; la différence est que SOCKS5 n'a même pas la possibilité technique de l'ajouter.

Questions et réponses

Qu'est-ce qui est plus rapide — SOCKS5 ou un proxy HTTP ?

Sur un même serveur, la différence est incommensurable face à la latence réseau. La vitesse est déterminée par le type d'IP, la distance et la charge du serveur, pas par le protocole.

SOCKS5 chiffre-t-il le trafic ?

Non. SOCKS5 transmet les octets tels quels ; le login et le mot de passe passent aussi en clair. C'est le TLS à l'intérieur de la connexion, par exemple HTTPS, qui rend le trafic sûr.

Peut-on utiliser un proxy HTTP pour Telegram ou les torrents ?

En règle générale, non : leur trafic n'est pas HTTP, et la plupart des proxies HTTP interdisent le tunnel via CONNECT vers des ports arbitraires. Pour ces logiciels, il faut SOCKS5.

Quelle différence entre socks5h et socks5 ?

La lettre h signifie que le nom de domaine est résolu par le serveur proxy. Sans elle, la requête DNS part de votre machine via votre fournisseur d'accès, qui voit l'adresse de destination.

Quel protocole est le plus anonyme ?

Un proxy HTTP d'élite et SOCKS5 ne révèlent pas votre adresse de la même manière. Un proxy HTTP transparent la révèle via les en-têtes ; SOCKS5 n'a pas ce mécanisme. Les autres fuites — DNS, WebRTC, trafic hors proxy — ne dépendent pas du protocole.