php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Proxy und HTTP 1.0 bzw. 1.1


 
Quetschi
26-04-2005, 11:28 
 
Hallo,

erstmal sorry, dieses Posting wird wohl etwas ausführlicher ausfallen.
Vielleicht kann mich hier jemand aufklären bzw. mir weiterhelfen.

Wir betreiben einige Virtuelle Server im Internet auf denen wir die WebSites unserer Kunden hosten. Jeder Server hat nur eine eigene IP wodurch die Zuordnung zum jeweiligen V-Server natürlich nur über die Host-Angabe im HTTP 1.1 Request-Header erfolgen kann.

Wir sitzen hier in der Firma alle hinter einem Proxy-Server (Jana2). Nun ist es sporadisch so, dass eine Website nicht korrekt bzw. gar nicht übermittelt wird wenn im jeweilige Browser (IE 6) nicht unter den Internetoptionen -> Erweitert die Option 'HTTP 1.1 über Proxyverbindungen verwenden' aktiviert ist. Teilweise werden da entweder einfach nur Hyroglyphen (wie schreibt man das eigentlich :D ) ausgeworfen oder es erscheint auch gerne mal der 'Datei speichern unter...'-Dialog.

Ich hab mich dazu schon einige Male durchs Netz gegoogelt und dabei unter anderen das gefunden:

Quelle: http://www.karakas-online.de/teia/HTML/html_2_3.htm

HTTP-Requests

Für HTTP sind verschiedene Arten von Requests definiert.
Der Request zum Anfordern eines Objekts wird GET-Request genannt.
Der wichtigste Parameter in einem GET-Request ist der URI des angeforderten Objekts.

GET http://www.w3.org/Protocols/ HTTP/1.1


Beispiel 3 Request-Zeile eines GET-Requests

Beispiel 3 stellt ein Beispiel für die Request-Zeile eines GET-Requests dar.
In dem Beispiel wird der Request-URI vollständig angegeben.
Außer bei der Kommunikation mit Proxy-Servern wird in den beiden heute (2002) gebräuchlichen Versionen von HTTP (HTTP 1.0 und 1.1) allerdings nur die Pfadkomponente des URI verwendet.
In HTTP/1.0 war die Annahme, dass der angesprochene Server schon wissen wird, wer er ist, und die Angabe des Host-Anteils des URI deswegen überflüssig ist. Durch die Einführung namensbasierter virtueller Server ist diese Annahme allerdings nicht mehr gerechtfertigt: In diesem Fall implementiert ein physischer Server mit einer IP-Adresse mehrere logische Webserver; jetzt muss er der Anfrage entnehmen können, welcher logische (virtuelle) Server gemeint ist. Bei HTTP 1.1 und neueren Implementierungen von HTTP 1.0 wird die Host-Information deswegen in einem getrennten Header-Feld mitgeliefert, wie in Beispiel 4 illustriert. Server, die die aktuelle Version (HTTP 1.1) implementieren, müssen allerdings immer auch vollständige URIs mit Host-Anteil wie in Beispiel 3 akzeptieren.

GET /Icons/WWW/w3c_home HTTP/1.0
Host:www.w3c.org

Nun verstehe ich das so, dass die Request-Uri bei Proxyverbindung eigentlich immer vollständig übertragen wird und das dann scheinbar der Proxy die Aufgabe hat, den Request korrekt (also entweder mit Host-Header bzw. vollständiger Uri) an den Zielserver zu übertragen.
Lieg ich mit dieser Annahme ungefähr richtig?

Dann sollte ja eigentlich die Einstellung des Browsers, ob er denn nun 1.1 oder 1.0 über Proxys verwenden soll, egal sein, beim ZielServer sollte ja immer was verwertbares ankommen. In ca. 98% (grobe Schätzung :D ) scheint das auch so zu sein, nur auf manchen WebSites scheint es da dann ein Problem zu geben. Das Problem haben nicht nur wir hausintern sondern auch Kunden von uns die hinter ähnlichen Proxys surfen (nicht unbedingt Jana).

Oder gibt es evtl. doch beim Apachen etwas zu konfigurieren was ich einfach noch nicht mitbekommen hab? Wo denkt ihr, dass das Problem zu suchen ist? Server, Proxy oder Client?

Hat jemand von euch mit so einem Problem Erfahrung oder weiß was, was mir helfen könnte?

Gruss
Quetschi

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:55 Uhr.