Syntaxe
CONNECT subdomaine.domaine.ext:port protocole
|
Paramètres
Nom |
Description |
subdomaine.domaine.ext |
Ce paramètre permet d'indiquer le nom de domaine. |
port |
Ce paramètre permet d'indiquer le port réseau. Généralement 80 pour le HTTP et 443 pour le HTTPS. |
protocole |
Ce paramètre permet d'indiquer le protocole que le client veut utiliser : |
HTTP/1.0 |
Cette valeur permet d'indiquer le protocole HTTP 1.0 (RFC 1945) |
HTTP/1.1 |
Cette valeur permet d'indiquer le protocole HTTP 1.1 (RFC 2068, RFC 2616, RFC 7230, RFC 7237) |
... |
... |
Description
Cette méthode permet d'effectuer une communication par tunnel à un PROXY.
Remarques
- La méthode CONNECT demande au destinataire d'établir un tunnel vers le serveur d'origine de destination identifié par la requête-cible et, en cas de succès, de limiter
ensuite son comportement à la transmission aveugle de paquets, dans les deux sens, jusqu'à la fermeture du tunnel. Les tunnels sont couramment utilisés pour créer une connexion virtuelle
de bout en bout, via un ou plusieurs Proxy, pouvant ensuite être sécurisés à l'aide d'un TLS (Transport Layer Security).
- La méthode CONNECT est uniquement destiné à être utilisé dans les requêtes à un Proxy. Un serveur d'origine recevant une requête CONNECT pour lui-même peut répondre
avec un code d'état 2xx (Successful) pour indiquer qu'une connexion est établie. Cependant, la plupart des serveurs d'origine ne mettent pas en oeuvre CONNECT.
- Un client envoyant une requête CONNECT doit envoyer le formulaire d'autorisation de requête-cible; c'est-à-dire que la requête-cible se compose uniquement du nom d'hôte et du numéro
de port de la destination du tunnel, séparés par deux points.
- Le proxy destinataire peut établir un tunnel en se connectant directement à la cible de la requête ou, s'il est configuré pour utiliser un autre proxy, en transmettant la
requête CONNECT au proxy entrant suivant. Toute réponse 2xx Successful indique que l'expéditeur (et tous les proxy entrants) basculera en mode tunnel
immédiatement après la ligne blanche concluant la section d'entête de la réponse réussie; les données reçues après cette ligne blanche proviennent du serveur identifié par la cible de la
requête. Toute réponse autre qu'une réponse réussie indique que le tunnel n'a pas encore été formé et que la connexion reste régie par le HTTP.
- Un tunnel est fermé lorsqu'un intermédiaire de tunnel détecte que l'un ou l'autre côté a fermé sa connexion : l'intermédiaire doit tenter d'envoyer toutes les données en suspens
provenant du côté fermé de l'autre côté, fermer les deux connexions, puis éliminer toutes les données restantes non livrées.
- L'authentification proxy peut être utilisée pour établir l'autorité de créer un tunnel.
- L'établissement d'un tunnel vers des serveurs arbitraires présente des risques importants, en particulier lorsque la destination est un port TCP bien connu ou réservé n'étant
pas destiné au trafic Web. Par exemple, une CONNECT à une cible de requête «domaine.ext:25» suggérerait que le proxy se connecte au port réservé pour le trafic
SMTP; si cette situation est autorisé, elle pourrait inciter le proxy à relayer le courrier indésirable. Les proxy prenant en
charge CONNECT devraient limiter son utilisation à un ensemble limité de ports connus ou à une liste blanche configurable de cibles de requête sécurisées.
- Un serveur ne doit pas envoyer de champs d'entête de codage de transfert ou de longueur de contenu dans une réponse 2xx Successful à CONNECT. Un client doit ignorer
tous les champs d'entête Content-Length: ou Transfer-Encoding: reçus dans une réponse réussie à CONNECT.
- Une charge utile dans un message de requête CONNECT n'a pas de sémantique définie; l'envoi d'un corps de données utiles sur une requête CONNECT peut entraîner le rejet de la
requête par certaines mises en oeuvres existantes.
- Les réponses à la méthode CONNECT ne peuvent pas être mises en cache.
Dernière mise à jour : Lundi, le 20 janvier 2020