Auf welcher TCP / IP-Schicht arbeitet der Web-Proxy und ist das Verständnis der Implementierung richtig?

518
croraf

Angenommen, Client C möchte die HTTP-Anforderung an den Server S senden, jedoch über den Proxy-Server P.

Ich verstehe es so, dass es mit den folgenden zwei Änderungen an der einfachen HTTP-Anfrage gemacht wird:

  1. Der Client sendet die reguläre HTTP-Nachricht nur mit der vollständigen URL (in der ersten Zeile der HTTP-Nachricht) und nicht relativ und fügt ggf. Proxy-spezifische Header hinzu. Der Proxy verarbeitet und entfernt Proxy-spezifische Header. Dies ist die Anwendungsebenenoperation.

  2. Diese Nachricht wird an die TCP / IP-Adresse des Proxys und nicht an die des Servers gesendet. Der Proxy sendet die Anforderung an die TCP / IP-Adresse des Servers (die sich in der ersten Zeile der HTTP-Nachricht befindet). Dies ist die TCP / IP-Schichtoperation.

Daher würde ich sagen, dass das Proxying auf IP-, TCP- und Anwendungsebenen erfolgt.

Ist das obige richtig?

0
Ich habe die Frage bearbeitet. croraf vor 5 Jahren 0
Gute bearbeitung Ihr Titel könnte etwas Aufmerksamkeit erfordern, da die Frage selbst nicht zu fragen scheint, * wie * ein Proxy im TCP / IP-Stack implementiert wird. (und ich würde entmutigen, nur nach dem "Wie" zu fragen, da dies wiederum Ihr Q zu breit machen würde.) Twisty Impersonator vor 5 Jahren 0
Es ist schon eine Weile her, aber das klingt ungefähr richtig. Sie schreiben: "Dies ist die TCP / IP-Schichtoperation." Das ist allerdings ziemlich sinnlos. Sie sagen "Proxying erfolgt auf IP-, TCP- und Anwendungsebene" Nun, HTTP-Proxying, ja, ich denke schon, obwohl es schon eine Weile her ist. barlop vor 5 Jahren 0
A) Jemand könnte versuchen, das, was Sie sagen, mit i) einem Socken-Proxy zu verkomplizieren. Ii) einem https-Proxy, ohne dass Sie zuallererst sagen, ob Sie richtig sind, worüber Sie sprechen. dh einfacher http-Proxy. (nicht ssl, keine Socken), obwohl ich denke, dass dies auch IP, TCP und App-Layer wäre. B) Sie sollten einen Proxy mit z. B. analogx oder ccproxy einrichten und Wireshark (Paket-Sniffer) verwenden, um genau zu sehen, was los ist. barlop vor 5 Jahren 0
Sie haben auch bestimmte Protokolle mit dem Namen der Ebene verknüpft. Im OSI-Referenzschema handelt es sich also um Netzwerkschicht, Transportschicht und Anwendungsschicht. IP ist ein Protokoll auf der Netzwerkschicht, in einem Netzwerk kann jedoch IPX ausgeführt werden. Jede reale Sache würde auch auf niedrigeren Schichten funktionieren, wie physikalische Schichten und Datenverbindungsschichten. Ein bestimmtes Protokoll, das man sagen könnte, ist oft eine bestimmte Schicht (mit einigen Ausnahmen wie ARP). Oder vielleicht ein Cisco-Router oder viele andere, berühren möglicherweise nicht andere Ebenen. Oft funktionieren jedoch echte Dinge auf anderen Ebenen. barlop vor 5 Jahren 0
Wenn also das Paket und ich meine Paket im allgemeinen Sinne dessen, was gesendet wird, wenn das Paket zu einem anderen Computer reisen muss, dann muss etwas auf der physischen Schicht und der Datenverbindungsschicht arbeiten. Ein Switch würde auf der Datenverbindungsschicht funktionieren. Und wenn Sie Ihr Paket überwachen würden, würden Sie sehen, dass sich der Frame ändert, die Datenverbindungsschicht. Aber es würde von einem Netzwerk-Switch stammen. barlop vor 5 Jahren 0
@barlop Betrachten Sie einen normalen HTTP-Proxy. OFC-Computer funktionieren auf physischen Ebenen und auf Datenverbindungsschichten, dies ist jedoch für die Proxy-Operation nicht relevant. Die Frage ist, welche Operationen auf welchen Ebenen Proxy-Operationen im Gegensatz zu (oder zusätzlich zu) regulärem HTTP durchführen. croraf vor 5 Jahren 0
@croraf Nun, HTTP ist keine Schicht, es ist ein Protokoll auf einer Schicht. Ich kann mit Ihnen übereinstimmen, dass wir die physische Schicht und die Datenverbindungsschicht ausschließen können. Damit bleiben nur die Netzwerkschicht, die Transportschicht und die Anwendungsschicht übrig. Natürlich funktioniert der Proxy auf der Netzwerkschicht. Nun, was ist von den anderen Schichten? Nun, Sie erwähnen zu Recht, dass es sich um HTTP-Header handelt. Es funktioniert also eindeutig auf der Anwendungsschicht. Und was ist mit der Transportschicht? Nun, vielleicht wird das vom Betriebssystem erledigt Ein Proxy-Programm ist stark von Betriebssystemaufrufen abhängig, um die Transportschicht zu sortieren barlop vor 5 Jahren 0
(cnt) würde wirklich als Teil des Proxy-Programms betrachtet. 'cos gibt es keinen speziellen Namen wie "Transporter" für das, was mit TCP zu tun hat. Außerdem denke ich, wenn Sie auf mehreren Ebenen arbeiten, denke ich, dass die Terminologie der Schichten nicht so nützlich ist. Es ist jedoch gut für Netzwerktechniker, Hub-Router und Switches zu unterscheiden! Ich bin nicht sicher, wie nützlich es außerhalb ist barlop vor 5 Jahren 0
Ich habe den HTTP-Begriff nicht als Layer verwendet. Als ich "normales HTTP" sagte, meinte ich "HTTP über Proxy" als "reguläres HTTP ohne Proxy". Mit Transport meinte ich, dass er einen anderen Port verwenden kann, wenn er sich mit einem Proxy in Verbindung setzt, als den Port, den der Proxy für den Zugriff auf den Server verwendet. croraf vor 5 Jahren 0
@ croraf Es gibt einen Unterschied zwischen HTTP und Web Proxy. Wenn Sie "HTTP über einen Proxy" meinen und "Normales HTTP" sagen, wenn Sie nach Layern fragen, ist dies äußerst unklar, da HTTP ein Protokoll auf der Anwendungsebene ist. Ein Webproxy würde ich (in der Regel zumindest) auf drei Ebenen betreiben, wie Sie sagten. Ich kann jedoch an einen Fall eines Web-Proxys denken, der nur auf der Anwendungsschicht arbeiten würde. So wie manche Firewalls transparent sind (dh nicht als Hopfen gesehen). Ein Web-Proxy könnte auch transparent konfiguriert sein und HTML-Code ändern. barlop vor 5 Jahren 1

0 Antworten auf die Frage