En date du 7 octobre 2026, Shifter dispose du plus grand pool d'IP US actives, devant Oxylabs et Bright Data, pour une fraction du coût.Shifter a désormais le plus grand pool d'IP US actives

Voir les benchmarks

Formats de proxy expliqués : user:pass@host:port, host:port:user:pass et plus encore

Le même proxy peut s'écrire de cinq façons. Quel format curl, Python, Playwright et les outils en masse attendent, quel schéma utiliser, et comment convertir entre eux.

Succès client · Mis à jour le 9 novembre 2026 · 6 min de lecture
les mêmes cinq élémentsschemeuserpasshostportuserpasshostporthostportuserpassuserpasshostporthostportuserpass
Un proxy, cinq présentations. Seule celle en bleu est une véritable URL.
Base de connaissances
Sur cette page
  1. Les cinq formats courants
  2. Quels outils attendent quels formats
  3. Le schéma décrit le proxy, pas le site web
  4. Les caractères spéciaux cassent les formats
  5. Convertir entre les formats
  6. Les proxies ISP utilisent les mêmes formats
  7. Vérifications rapides quand un proxy ne se connecte pas
  8. Sources et références

Un proxy, c’est cinq informations : un schéma, un nom d’utilisateur, un mot de passe, un hôte et un port. Les fournisseurs, les outils et les forums disposent ces éléments dans des ordres différents, et un proxy qui fonctionne dans un outil échoue dans un autre simplement parce qu’il a été collé sous la mauvaise forme. Ce guide présente les formats courants, quels outils attendent lesquels, et comment éviter les erreurs que nous observons le plus souvent avec les proxies résidentiels.

Les cinq formats courants

Voici le même proxy Shifter sous les cinq formats que le Proxy Generator de notre dashboard peut produire. Le nom d’utilisateur porte le ciblage et la session, il est donc plus long qu’on pourrait s’y attendre.

FormatExemple
scheme://user:pass@host:porthttp://customer-USERNAME-sid-a1-ttl-60:PASSWORD@p.shifter.io:443
user:pass@host:portcustomer-USERNAME-sid-a1-ttl-60:PASSWORD@p.shifter.io:443
host:port:user:passp.shifter.io:443:customer-USERNAME-sid-a1-ttl-60:PASSWORD
user:pass:host:portcustomer-USERNAME-sid-a1-ttl-60:PASSWORD:p.shifter.io:443
host:port@user:passp.shifter.io:443@customer-USERNAME-sid-a1-ttl-60:PASSWORD

Le premier est une véritable URL, définie par les standards du web, et c’est le choix le plus sûr chaque fois qu’un outil l’accepte. Les autres sont des conventions. Elles existent parce que de nombreux outils de traitement en masse importent des listes en texte brut, un proxy par ligne, et chaque outil a choisi son propre ordre.

Quels outils attendent quels formats

curl. Passez la forme URL à -x. Si vous omettez le schéma, curl suppose http://. Vous pouvez aussi garder les identifiants séparés avec -U username:password, ce qui évite les problèmes d’encodage. Notre guide sur la configuration de curl et Postman contient des exemples complets.

Python requests et Scrapy. Les deux acceptent la forme URL. Dans requests, les clés du dictionnaire nomment le schéma du site web, et les valeurs nomment le proxy, donc les deux pointent généralement vers un proxy http:// :

proxy = "http://customer-USERNAME:PASSWORD@p.shifter.io:443"
proxies = {"http": proxy, "https": proxy}

Playwright. Prend les éléments comme des champs séparés : server avec le schéma, l’hôte et le port, plus username et password. Les séparer vous-même évite tout problème d’encodage.

Puppeteer et Chrome. Le flag --proxy-server prend uniquement l’hôte et le port. Les identifiants passent par page.authenticate().

Gestionnaires de profils de navigateur et outils de traitement en masse. Beaucoup importent des listes au format host:port:user:pass, et certains demandent quel ordre votre liste utilise. Vérifiez l’écran d’importation avant de coller quelques centaines de lignes.

Le schéma décrit le proxy, pas le site web

C’est l’erreur la plus courante que nous observons. Un client qui scrape des sites HTTPS écrit https:// devant le proxy, et chaque requête échoue avec une erreur TLS.

Le schéma indique à votre client comment parler au proxy. Un site HTTPS est atteint via un proxy http:// avec la méthode CONNECT : le client demande au proxy d’ouvrir un tunnel, puis exécute TLS avec le site web à travers celui-ci. La connexion au site web reste chiffrée de bout en bout. Écrire https://p.shifter.io:443 demande au client de démarrer TLS avec la passerelle elle-même, et notre passerelle ne propose pas cela, donc la négociation échoue. Utilisez http:// aussi bien pour les sites HTTP que HTTPS, ou socks5:// si votre outil préfère SOCKS.

Avec SOCKS, il y a un second choix. socks5:// résout le nom du site web sur votre machine, tandis que socks5h:// envoie le nom au proxy pour qu’il le résolve. Si vous vous souciez de l’endroit où se font les résolutions DNS, lisez notre guide sur comment prévenir les fuites DNS.

Les caractères spéciaux cassent les formats

Chaque format réserve certains caractères.

  • Forme URL : @, :, /, #, ? et % dans un nom d’utilisateur ou un mot de passe doivent être encodés en pourcentage. Un mot de passe comme p@ss:word devient p%40ss%3Aword.
  • Formes séparées par deux-points : un deux-points dans le mot de passe décale chaque champ qui le suit, donc l’outil lit le mauvais hôte ou le mauvais port.

Les parties ciblage et session d’un nom d’utilisateur Shifter n’utilisent que des lettres, des chiffres, des tirets et des underscores, par exemple city-new_york, elles sont donc sûres dans tous les formats. Si vous définissez un mot de passe avec des symboles, la forme URL avec encodage, ou un outil avec des champs séparés, est la voie la plus fiable.

Convertir entre les formats

Quand un outil vous donne un format et que votre code en veut un autre, convertissez la liste plutôt que d’éditer les lignes à la main. Cette fonction Python transforme n’importe lequel des cinq formats en forme URL et encode les identifiants :

from urllib.parse import quote

def to_proxy_url(line: str, scheme: str = "http") -> str:
    line = line.strip()
    if "://" in line:
        return line
    if "@" in line:
        left, right = line.split("@", 1)
        if left.rsplit(":", 1)[-1].isdigit():
            hostport, creds = left, right  # host:port@user:pass
        else:
            creds, hostport = left, right  # user:pass@host:port
        user, password = creds.split(":", 1)
        host, port = hostport.rsplit(":", 1)
    else:
        parts = line.split(":")
        if len(parts) != 4:
            raise ValueError(f"unrecognised proxy line: {line}")
        if parts[1].isdigit():
            host, port, user, password = parts  # host:port:user:pass
        else:
            user, password, host, port = parts  # user:pass:host:port
    return f"{scheme}://{quote(user, safe='')}:{quote(password, safe='')}@{host}:{port}"

print(to_proxy_url("p.shifter.io:443:customer-USERNAME:PASSWORD"))
# http://customer-USERNAME:PASSWORD@p.shifter.io:443

Elle détermine l’ordre en trouvant le numéro de port, donc elle ne peut pas distinguer les formats quand un nom d’utilisateur ou un mot de passe est entièrement numérique. Dans ce cas, demandez à la personne qui vous a fourni la liste quel ordre elle utilise.

Les proxies ISP utilisent les mêmes formats

Les proxies ISP suivent les mêmes règles avec un hôte différent. Chaque proxy ISP se connecte via isp.shifter.io:443, donc une ligne au format host:port:user:pass s’écrit isp.shifter.io:443:USERNAME:PASSWORD. Chaque proxy est distingué par son nom d’utilisateur, et non par une IP et un port séparés par proxy, ce qui surprend les personnes habituées aux listes de type ip:port:user:pass.

Vérifications rapides quand un proxy ne se connecte pas

  1. 407 Proxy Authentication Required : le proxy a été atteint mais les identifiants n’ont pas été acceptés. Vérifiez un nom d’utilisateur et un mot de passe manquants ou inversés, ou un symbole non encodé. Notre guide de dépannage des erreurs 407 couvre le reste.
  2. Erreurs TLS ou de négociation immédiates : vous avez probablement écrit https:// devant le proxy. Remplacez-le par http://.
  3. Connexion refusée ou délais dépassés sur chaque requête : l’hôte ou le port est incorrect, souvent parce qu’une ligne séparée par des deux-points a été lue dans le mauvais ordre.
  4. Fonctionne dans curl, échoue dans votre outil : l’outil attend un format différent. Convertissez la ligne, ou saisissez les champs séparément.

Dans le dashboard, le Proxy Generator vous permet de choisir le protocole et le format avant de copier, et il télécharge une liste entière au format CSV dans le même format. Choisir le bon format dès le départ évite la plupart de ces erreurs.

Sources et références

Foire aux questions

Quel est le format standard d'un proxy ?

La forme la plus largement acceptée est une URL : scheme://username:password@host:port, par exemple http://username:password@p.shifter.io:443. curl, Python requests, Scrapy et la plupart des bibliothèques HTTP la lisent directement. Les outils en masse et les gestionnaires de profils de navigateur demandent souvent plutôt host:port:username:password, un proxy par ligne.

Dois-je utiliser http:// ou https:// pour un proxy que j'utilise sur des sites HTTPS ?

Utilisez http:// dans la plupart des cas. Le scheme décrit la façon dont votre client communique avec le proxy, pas avec le site. Les sites HTTPS sont transmis via un tunnel à travers un proxy http:// grâce à la méthode CONNECT et restent chiffrés de bout en bout. Écrire https:// indique au client d'ouvrir une connexion TLS vers le proxy lui-même, ce qui échoue sur les passerelles qui ne le proposent pas.

Pourquoi mon proxy échoue-t-il quand le mot de passe contient des caractères spéciaux ?

Dans la forme URL, des caractères comme @, :, /, # et % ont une signification, ils doivent donc être encodés en pourcentage, par exemple @ devient %40. Dans les formats séparés par des deux-points comme host:port:user:pass, un deux-points dans le mot de passe coupe la ligne au mauvais endroit. Encodez le mot de passe, ou choisissez un format où l'outil prend le nom d'utilisateur et le mot de passe comme des champs séparés.

Quelle est la différence entre socks5:// et socks5h:// ?

Avec socks5://, c'est votre propre machine qui résout le nom d'hôte du site et envoie l'adresse IP au proxy. Avec socks5h://, le nom d'hôte est envoyé au proxy, qui le résout de son côté. Utilisez socks5h:// dans curl et Python lorsque vous voulez que les résolutions DNS se fassent au niveau du proxy plutôt que sur votre réseau.

Prêt à commencer ?

Essayez les proxies résidentiels de Shifter, 205M+ IPs, 195+ pays, à partir de 0,75 $/GB.

Commencer