Méthode de requête CONNECT
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode HTTP CONNECT
demande à un·e proxy d'établir un tunnel HTTP vers un serveur de destination et, en cas de succès, de transmettre aveuglément les données dans les deux sens jusqu'à la fermeture du tunnel.
La cible de la requête est unique à cette méthode : elle se compose uniquement de l'hôte et du port de destination du tunnel, séparés par un deux-points (voir la section Syntaxe pour plus de détails). Tout code de statut de réponse 2XX de succès signifie que le proxy passe en « mode tunnel » et que toute donnée dans le corps de la réponse provient du serveur identifié par la cible de la requête.
Si un site web est derrière un proxy et que des règles réseau imposent que tout le trafic externe passe par ce proxy, la méthode CONNECT
permet d'établir une connexion TLS (HTTPS) avec ce site :
- Le client demande au proxy de créer un tunnel pour la connexion TCP vers la destination souhaitée.
- Le serveur proxy établit une connexion sécurisée avec le serveur pour le compte du client.
- Une fois la connexion établie, le proxy continue de relayer le flux TCP entre le client et le serveur.
En plus de permettre un accès sécurisé à des sites derrière des proxies, un tunnel HTTP permet de faire passer du trafic qui serait autrement restreint (SSH ou FTP) via le protocole HTTP(S).
CONNECT
est une méthode « hop-by-hop » : les proxies ne transmettent la requête CONNECT
que s'il y a un autre proxy en amont du serveur d'origine, car la plupart des serveurs d'origine n'implémentent pas CONNECT
.
Attention :
Si vous exploitez un proxy prenant en charge CONNECT
, limitez son usage à un ensemble de ports connus ou à une liste configurable de cibles sûres.
Il existe des risques importants à établir un tunnel vers des serveurs arbitraires, en particulier lorsque la destination est un port TCP bien connu ou réservé qui n'est pas destiné au trafic Web.
Un proxy mal configuré peut être détourné pour relayer du trafic comme SMTP afin de diffuser du courrier indésirable, par exemple.
La requête a un corps | Non |
---|---|
La réponse de succès a un corps | Non |
Sûre | Non |
Idempotente | Non |
Mis en cache | Non |
Autorisée dans les formulaires HTML | Non |
Syntaxe
CONNECT <host>:<port> HTTP/1.1
Exemple
Une requête pour les serveurs proxy qui nécessitent une autorisation pour créer un tunnel ressemble à ceci.
Voir l'en-tête Proxy-Authorization
pour plus d'informations.
CONNECT serveur.exemple.fr:80 HTTP/1.1
Host: serveur.exemple.fr:80
Proxy-Authorization: basic aGVsbG86d29ybGQ=
Spécifications
Specification |
---|
HTTP Semantics> # CONNECT> |
Compatibilité des navigateurs
Chargement…
Voir aussi
- Méthodes de requête HTTP
- Codes de statut de réponse HTTP
- En-têtes HTTP
- L'entrée de glossaire Proxy server
- L'en-tête
Proxy-Authorization
- Utiliser SSH via un proxy HTTP (angl.) sur dimoulis.net (2023)