Si je veux me connecter pour dire, IP 100.100.100.100, Port 80, mon ordinateur enverra un paquet TCP avec cette adresse dans le fil.
Maintenant, si j'utilise un serveur proxy, par exemple, 200.200.200.200 Port 8080 (ce type de proxy que vous pouvez configurer dans Internet Explorer) comment ce processus est-il modifié?
Lorsque je veux toujours me connecter à la même IP, l'en-tête IP inclura-t-il l'IP de destination ou l'IP proxy ou les deux?
J'ai déjà googlé, il y a des centaines de pages qui vous expliquent comment configurer un proxy mais aucune n'explique comment cela fonctionne sous le capot.
la source
HTTP est un protocole de couche 7, donc ne vous trompez pas. lorsque vous utilisez un proxy HTTP et que vous tapez, par exemple, 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 des hôtes vers le numéro de port personnalisé 8080.
la source
Pour utiliser un proxy HTTP, la demande est envoyée du 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 l' URI de demande . L'URI de demande inclut le nom ou l'IP du serveur de destination, et le serveur proxy utilise ces informations pour transmettre la demande.
La spécification HTTP permet à la ligne de demande d'exclure le nom et le port du serveur lorsqu'un proxy n'est pas utilisé (car ils ne seraient pas nécessaires si la demande était envoyée directement à ce serveur). Mais, selon les spécifications ...
Ainsi, lorsque vous n'utilisez pas de proxy, la ligne de demande peut ressembler à:
mais pour utiliser un proxy, la ligne doit inclure le nom du serveur (et le port sinon 80):
Le côté réponse si l'opération peut être plus simple puisque le serveur proxy peut simplement relayer la réponse textuelle via le socket de requête préétabli.
la source
Host
tête pour compléter un URI partiel si un URI absolu n'est pas fourni dans la ligne de demande.Il n'y a pas de "paquet TCP". TCP fonctionne avec des flux de données. Il existe des paquets IP.
Vous semblez manquer de connaissances de base sur la mise en réseau, je vous suggère de vous procurer un bon livre sur TCP / IP. Le favori de tous semble être "TCP / IP illustré" par W. Richard Stevens.
Revenons à votre question.
Un proxy est un intermédiaire:
[vous] - [proxy] - [serveur que vous souhaitez connecter]
Maintenant, il existe deux connexions différentes:
[vous] - (votre connexion au proxy) - [proxy] - (la connexion du proxy au serveur) - [le serveur que vous souhaitez connecter]
Lorsque vous pensez que vous vous connectez à un serveur via un proxy, vous vous connectez réellement au proxy et lui dites que vous souhaitez atteindre un certain serveur. Ensuite, le proxy ouvre une seconde connexion de lui-même à ce serveur et agit comme un intermédiaire transmettant les données dans les deux sens.
la source