Expliqué
Un proxy HTTP est le type de serveur proxy le plus courant. Il comprend HTTP au niveau de la couche applicative : lorsque votre client envoie une requête, le proxy peut lire l'URL, les en-têtes et (pour le HTTP simple) le corps, avant de transmettre la requête à la destination. Pour HTTPS, le proxy utilise la méthode CONNECT pour établir un tunnel TCP vers la destination, après quoi il se contente de relayer les octets chiffrés sans en voir le contenu.
La plupart des services proxy commerciaux — y compris les fournisseurs résidentiels, ISP et datacenter — exposent des points de terminaison proxy HTTP, car chaque client et bibliothèque HTTP les prend en charge nativement. Définir les variables d'environnement `HTTP_PROXY` et `HTTPS_PROXY`, passer `proxies={...}` à `requests` de Python, ou configurer un indicateur de lancement dans Playwright fonctionnent tous immédiatement avec des URL de proxy HTTP comme `http://user:pass@gate.shifter.io:10000`.
La différence entre HTTP et SOCKS5 est principalement architecturale. Les proxies HTTP opèrent au niveau de la couche applicative (peuvent analyser HTTP) ; SOCKS5 opère au niveau de la couche transport (se contente de transférer des octets TCP/UDP). Pour le scraping HTTPS, la différence est surtout cosmétique — les deux finissent par tunneliser des octets chiffrés — et la prise en charge du proxy HTTP est plus universelle dans l'ensemble des outils.
Comment ça fonctionne
Pour le HTTP simple, votre client envoie la requête complète au proxy (`GET http://example.com/path HTTP/1.1` avec une URL absolue), le proxy lit l'URL, ouvre une connexion vers la destination, transmet la requête et relaie la réponse. Pour le HTTPS, le client envoie d'abord une requête `CONNECT example.com:443` au proxy, le proxy ouvre un tunnel TCP vers la destination, et à partir de ce moment le client et le serveur communiquent en TLS de bout en bout à travers le proxy, qui se contente de faire transiter des octets chiffrés.
L'authentification se fait généralement via l'en-tête `Proxy-Authorization` (authentification Basic avec nom d'utilisateur:mot de passe) ou en encodant les identifiants dans l'URL du proxy (`http://user:pass@host:port`). Le ciblage géographique et les paramètres de session dans les services commerciaux sont généralement encodés dans le nom d'utilisateur (`customer-USER-country-us-session-12345`).