Der Martin: Interne Seite extern Darstellen

Beitrag lesen

Hallo Markus,

Wie müsste denn das Script aussehen, damit auch Get und Post funktioniert?

kann ich dir hier nur schematisch erläutern:

* Request-Methode ermitteln: $_SERVER['REQUEST_METHOD']
 * Zielpfad ermitteln: $_SERVER['PATH_INFO']
 * Plausibilitätskontrolle
 * Mit fsockopen eine HTTP-Verbindung zum internen Gerät herstellen
 * HTTP-Request absetzen (Methode wurde oben ermittelt)
 * bei POST den Datenblock hinterherschicken
 * Antwort vom Gerät an anfragenden Client zurücksenden, bis feof()
 * Socket-Verbindung zum Gerät schließen

Das ist jetzt erstmal "nur so aus dem Handgelenk". Einzelne Punkte erfordern sicher noch etwas Detailarbeit, z.B. das direkte Weiterreichen der POST-Daten, da der Zugriff auf die vom Client empfangenen Rohdaten anscheinend nicht zuverlässig möglich ist (ich habe auf die Schnelle einige Foren- und Newsbeiträge gefunden, die vermuten lassen, dass das nicht immer funktioniert).

Ich weiß im Moment auch nicht, ob ich mit PHP auf sämtliche HTTP-Header (auch nicht-standardisierte X-Header) des Requests zugreifen kann. Das würde ich aber gern, damit ich diese Header auch an das adressierte interne Gerät weitergeben kann.

Schließlich ist noch die Frage, ob man die Response-Daten vom Gerät parsen und ggf. Pfadangaben so transformieren möchte, dass sie dem "externen" Adressierungsschema entsprechen - beispielsweise also http://device/foo.xy in http://example.net/redirect.php/device/foo.xy umsetzen.

Du siehst, das ist nicht trivial. Hat aber auch niemand behauptet. ;-)

Gutes neues Jahr noch,
 Martin

--
Husten kann böse Folgen haben.
Besonders im Kleiderschrank.