Wenn ich eine Verbindung herstellen möchte, z. B. IP 100.100.100.100, Port 80, sendet mein Computer ein TCP-Paket mit dieser Adresse an das Kabel.
Wenn ich einen Proxyserver verwende, z. B. 200.200.200.200 Port 8080 (eine solche Art von Proxy, die Sie im Internet Explorer einrichten können), wie wird dieser Prozess geändert?
Wenn ich immer noch eine Verbindung zu derselben IP herstellen möchte, enthält der IP-Header die Ziel-IP oder die Proxy-IP oder beides?
Ich habe bereits gegoogelt, es gibt Hunderte von Seiten, auf denen Sie erfahren, wie Sie einen Proxy einrichten, aber keine erklärt, wie er unter der Haube funktioniert.
quelle
HTTP ist ein Layer 7-Protokoll, also nicht verwirren. Wenn Sie einen HTTP-Proxy verwenden und "google.com" eingeben, ist der HTTP-Header immer noch derselbe wie "google.com". Die Ziel-IP-Adresse ist jedoch die IP-Adresse des Proxys. Die Quelle ist "Hosts IP" für die angepasste Portnummer 8080.
quelle
Um einen HTTP-Proxy zu verwenden, wird die Anforderung vom Client an die IP-Adresse des Proxyservers und nicht an den Zielserver gesendet. Der Proxy muss dann den HTTP-Header lesen , um den Anforderungs-URI zu extrahieren . Der Anforderungs-URI enthält den Namen oder die IP des Zielservers, und der Proxyserver verwendet diese Informationen, um die Anforderung weiterzuleiten.
Die HTTP-Spezifikation ermöglicht es der Anforderungszeile, den Servernamen und den Port auszuschließen, wenn kein Proxy verwendet wird (da diese nicht erforderlich wären, wenn die Anforderung direkt an diesen Server gesendet würde). Aber gemäß der Spezifikation ...
Wenn Sie also keinen Proxy verwenden, sieht die Anforderungszeile möglicherweise folgendermaßen aus:
Um jedoch einen Proxy zu verwenden, muss die Zeile den Servernamen (und den Port, wenn nicht 80) enthalten:
Die Antwortseite, wenn die Operation einfacher sein kann, da der Proxyserver die wörtliche Antwort einfach über den zuvor festgelegten Anforderungssocket weiterleiten kann.
quelle
Host
Header möglicherweise auch zum Vervollständigen eines Teil-URI verwenden, wenn in der Anforderungszeile kein absoluter URI angegeben ist.Es gibt kein "TCP-Paket". TCP arbeitet mit Datenströmen. Es gibt IP-Pakete.
Es scheint Ihnen an Grundkenntnissen über das Networking zu mangeln. Ich empfehle Ihnen, ein gutes Buch über TCP / IP zu erhalten. Jeder Favorit scheint "TCP / IP illustriert" von W. Richard Stevens zu sein.
Zurück zu Ihrer Frage.
Ein Proxy ist ein Mittelsmann:
[Sie] - [Proxy] - [Server, den Sie verbinden möchten]
Jetzt gibt es zwei verschiedene Verbindungen:
[Sie] - (Ihre Verbindung zum Proxy) - [Proxy] - (Verbindung des Proxys zum Server) - [Server, den Sie verbinden möchten]
Wenn Sie glauben, über einen Proxy eine Verbindung zu einem Server herzustellen, stellen Sie tatsächlich eine Verbindung zum Proxy her und teilen ihm mit, dass Sie einen bestimmten Server erreichen möchten. Dann öffnet der Proxy eine zweite Verbindung von sich selbst zu diesem Server und fungiert als Vermittler, der Daten in beide Richtungen weiterleitet.
quelle