15 votes

Comment fonctionne exactement une procuration ?

Si je veux me connecter à l'adresse IP 100.100.100.100, port 80, mon ordinateur enverra un paquet tcp avec cette adresse sur le réseau.

Maintenant, si j'utilise un serveur proxy, disons 200.200.200.200 Port 8080 (ce type de proxy que vous pouvez configurer dans Internet Explorer), comment ce processus est-il modifié ?

Si je souhaite toujours me connecter à la même adresse IP, l'en-tête IP inclura-t-il l'adresse IP de destination ou l'adresse IP du proxy ou les deux ?

J'ai déjà cherché sur Google, il y a des centaines de pages qui expliquent comment mettre en place un proxy mais aucune n'explique comment cela fonctionne sous le capot.

13voto

emgee Points 4547

La requête HTTP est envoyée par le client au port 8080 du serveur mandataire. Le serveur mandataire émet alors une nouvelle requête HTTP vers le site de destination. Selon la configuration, le serveur mandataire ajoute souvent un en-tête "X-Forwarded-For" à la requête HTTP. Les fichiers journaux du site web de destination indiquent l'adresse IP du serveur mandataire, mais peuvent ou non être configurés pour enregistrer l'adresse "X-Forwarded-For".

C'est la configuration typique, mais les logiciels de proxy permettent toutes sortes de personnalisations.

EDIT : Je dois noter que lorsque j'ai lu votre question à l'origine, j'ai eu l'impression que vous demandiez un proxy HTTP spécifiquement, comme squid ou nginx. Il existe de nombreux types de proxys différents. Dans Internet Explorer, vous utiliserez très probablement un proxy HTTP, mais il en existe de nombreux autres types.

2voto

user205246 Points 21

Lorsque vous utilisez un proxy HTTP et que vous tapez google.com, l'en-tête HTTP est toujours le même google.com, mais l'adresse IP de destination sera l'adresse IP du proxy, la source sera l'adresse IP de l'hôte au port personnalisé numéro 8080.

1voto

Brent Bradburn Points 630

Pour utiliser un proxy HTTP, la requête est envoyée par le client à l'adresse IP du serveur proxy plutôt qu'au serveur de destination. Le proxy doit ensuite lire l'en-tête HTTP pour extraire le request-URI . L'URL de la requête comprend le nom ou l'IP du serveur de destination, et le serveur mandataire utilise cette information pour transmettre la requête.

En Spécification HTTP permet à la ligne de requête d'exclure le nom du serveur et le port lorsqu'un proxy n'est pas utilisé (car ils seraient inutiles si la requête était envoyée directement à ce serveur). Mais, selon la spécification...

La forme absoluteURI est OBLIGATOIRE lorsque la demande est adressée à un proxy.

Ainsi, si l'on n'utilise pas de proxy, la ligne de requête peut ressembler à ce qui suit :

GET /robots.txt HTTP/1.1

mais pour utiliser un proxy, la ligne doit inclure le nom du serveur (et le port s'il n'est pas 80) :

GET http://httpbin.org:80/robots.txt HTTP/1.1

La partie réponse de l'opération peut être plus simple puisque le serveur proxy peut simplement relayer la réponse textuelle via le socket de demande préétabli.

-7voto

vtest Points 4962

Le "paquet TCP" n'existe pas. TCP fonctionne avec des flux de données. Il existe des paquets IP.

Vous semblez manquer de connaissances de base sur les réseaux, je vous suggère de vous procurer un bon livre sur TCP/IP. Le livre préféré de tous semble être "TCP/IP illustrated" de W. Richard Stevens.

Je reviens à votre question.

Un proxy est un intermédiaire :

[vous] - [proxy] - [serveur auquel vous voulez vous connecter]

Il y a maintenant deux connexions différentes :

[vous] - (votre connexion au proxy) - [proxy] - (connexion du proxy au serveur) - [serveur auquel vous voulez vous connecter]

Lorsque vous pensez vous connecter à un serveur par l'intermédiaire d'un proxy, vous vous connectez en fait au proxy et lui dites que vous voulez atteindre un certain serveur. Le proxy ouvre alors une seconde connexion entre lui et ce serveur et joue le rôle d'intermédiaire en transmettant les données dans les deux sens.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X