Get request auf apache umlenken

Hi, gibt es einen Weg eine Get request auf eine Datei auf einen anderen port umzuleiten?

Ich brauch des ganze für um die SOP - Same Origin Policy - des Browsers zu umgehen. Hab auch schon gegooglet bloß die lösungsvorschläge mit php script oder einem extra tag bei dem die src auf nen anderen port funktionieren funktionieren bei mir nicht ganz da ich des ganze dann nicht mit server push verbinden kann.

Über die .htacces hab ichs auch schon versucht mit redirect 301 kann da aber auch keinen extra port angeben.

thx thedafelix

Hallo

Ich brauch des ganze für um die SOP - Same Origin Policy - des
Browsers zu umgehen. Hab auch schon gegooglet bloß die
lösungsvorschläge mit php script oder einem extra tag
bei dem die src auf nen anderen port funktionieren
funktionieren bei mir nicht ganz da ich des ganze dann nicht
mit server push verbinden kann.

Wieso möchtest du die Same Origin Policy umgehen?

Da ich meinen kleinen Chat auf den Browser ausweiten will und deshalb nen kleinen extra java server brauch.

ich brauch des ganze für um die SOP - Same Origin Policy - des Browsers zu umgehen

Designfehler würde ich sagen. Die SOP hat man nicht zu umgehen. Genauso wie man AJAX nicht benutzt um Daten von anderen Seiten zu laden. Hat alles schon seinen Sinn.

Hi, gibt es einen Weg eine Get request auf eine Datei auf einen anderen port umzuleiten?

Eine Datei hat keinen port. Dein Server hat einen Port und stellt die Datei zur Verfügung / parst sie. Und ja, redirects können auch mit ports umgehen - ist ja n standard http redirect.

Dann auch noch Server push - Was willst du eigentlich machen? Das was du fragst hört sich nach schlicht und einfach falschen Verwenden von Technologien an.

Also um alle deine Fragen zu beantworten…

Designfehler würde ich sagen. Die SOP hat man nicht zu
umgehen. Genauso wie man AJAX nicht benutzt um Daten von
anderen Seiten zu laden. Hat alles schon seinen Sinn.

Zur erklärung, ich habe mir einen kleinen Chat geschrieben in Java und mit C# clients.
Jetzt will ich des ganze auf den Browser ausweiten mit GWT.
Zuerst wollte ich wenn am Hauptserver(meinetwegen auf port 8888) eine neue Nachricht ankommt die nicht wie bei den C# clients einfach in einen dauernd stehenden tcp stream schieben sondern in die datenbank, dann später mit einem php skript dort auslesen und an den GWT client liefern.
Das wäre meiner Meinung nach ein Designfehler.

Jetzt will ich einfach einen 2 java server laufen lassen (sagen wir auf port 8889) an den die clients anfangs eine Request schicken der Server einen Socket erzeugt und sich zum haupt(8888) server verbindet. Wenn jetzt eine Nachricht am haupt server ankommt schiebt der hauptserver sie in den stream der zum 8889 server steht.
Will ein Client seine Nachrichten abrufen dann holt der 8889 server über name und pw den instream bz outstream aus einer hash und empfängt die Nachrichten.

Dann auch noch Server push - Was willst du eigentlich :machen? Das was du fragst hört sich nach schlicht und :einfach falschen Verwenden von Technologien an.

Deshalb server push weil ich wenn keine nachrichten im stream sind eifnach warte aber bevors timeouted einfach iwas wie „no_messages“ wegschick und der GWT client darauf wieder nen neuen request aufbaut.

Eine Datei hat keinen port. Dein Server hat einen Port :und stellt die Datei zur Verfügung / parst sie. Und :ja, redirects können auch mit ports umgehen - ist ja n :standard http redirect.

Ist schon klar das ne datei keinen port hat. mit nem redirect wird die SOP aber meckern oder?

Da ich meinen kleinen Chat auf den Browser ausweiten will und
deshalb nen kleinen extra java server brauch.

Schau mal ob du hier eine Antwort findest: http://en.wikipedia.org/wiki/Same_origin_policy

Oh oh. Also das Design mit zwei Servern und etc ist schonmal nicht gut.

Wenn ich fragen darf:

  1. Wieso schreibst du so etwas selber? Push in Browsern ist etwas ungemein nerviges (solang du nicht auf busy-waiting zurückgreifen willst, was bei der Anzahl deiner Clients wohl vollkommen ausreichen würde)

  2. Google. Nach 5 Minuten hab ich genügend Info über Technologien, die mir das ermöglichen.
    http://stackoverflow.com/questions/847227/real-time-…
    gibt dir schon fast alles wichtige an die Hand, ausser das comet beim IE wohl nicht funktioniert.
    Ich hoffe du kannst englisch.

  3. Der server push mit der enslos ladenden seite ist sehr unelegant. Oder willst du das über AJAX machen? Dann sind wir aber auch bei long polling angelangt.

Also nochmal kurz, frag dch, ob du das wirklich selber schreiben willst oder doch Sachen wie meebo und XMPP verwenden kannst, les den post im stackoverflow, lies dich in comet/XMPP/BOSH ein und bleib auf einem Server.

Viel Glück dabei, ich hoffe ich konnte helfen.
btw, apache kann auf mehrere Ports listenen. Viele Server können das.

Erst mal guten Morgen,

und nun zu Deinem Problem, was wirklich ein Problem ist.
Die SOP schützt den Server vor Zugriffen externer Seiten und ist genau dafür da und somit nur sehr schwer (bis gar nicht) zu umgehen.
Wenn Du unbedingt die Zugriffe ändern willst, geht das nur Serverseitig.
Deine Client-Skriptsprache im Browser hat über das DOM direkten Zugriff auf die gesamte Kommunikation zwischen Browser und Web-Server. Dies beinhaltet sowohl das Auslesen als auch die Manipulation von Daten. Das Vertrauensverhältnis zwischen Client und Server darf nicht unterbrochen werden.

.HTACCESS ist meiner Meinung nach hier der falsche Ansatz, da es sich damit um einen globalen Freibrief handeln würde und auch eine Portumlegung ist nur begrenzt tauglich, da (Gott sei dank) sofort ein SOP-Bruch gemeldet wird…

Je nachdem, was für Daten Du übertragen willst, gibt es aber Möglichkeiten

  • Daten : auf dem Server ‚live‘ einen XML-STREAM erzeugen, per AJAX zu übertragen und dann vom Client aufbereiten
  • Dateien I: Auf dem Server eine Dummy-PHP-Datei ansprechen, die die entsprechende Datei mit include einbindet
  • Dateien II: Auf dem Server eine Dummy-PHP-Datei ansprechen, die auf eine entsprechende Date verweist (redirect)

Die Möglichkeiten sind da, aber ohne genaues Wissen, was Du übertragen willst, kann ich Dir keinen genauen Rat geben… Aber eins ist sicher : SOP hebelt man besser nicht aus, denn dann sind alle Türen und Tore für (Cross-)Hacker offen und das kann kein Admin wirklich wollen :smile:

Ich gebe aber auch zu, das ich es noch nie wirklich versucht habe, da es eigentlich immer einen Weg gibt, der nur für diesen speziellen Fall eine kleine Sicherheitslücke aufmacht ohne den ganzen Server oder ganze Serverbereiche zu riskieren.

So long,
Burkhard

Danke erstmal.

Ich hoffe du kannst englisch.

Obwohl es sowas absolut nicht braucht…

  1. Der server push mit der enslos ladenden seite ist :sehr unelegant. Oder willst du das über AJAX machen? :smiley:ann sind wir aber auch bei long polling angelangt.

Natürlich wollte ich des ganze mit ajax machen, des gwt ist ja soweit ich weiß ein ajax framework.

Werd mich mal in die von dir empfohlenen sachen einlesen. Bloß dass,

ausser das comet beim IE wohl nicht funktioniert.

natürlich eher schlecht da der ansatz gwt eigentlich ist auf allen browsern zu laufen. Vielleicht gibts da aber auch irgend ne möglichkeit. Emite hats ja auch geschafft.

Sry noch mal ne Frage, hab mir jetzt auch mal auf wiki den aufbau von so nem jabber/xmpp netzwerk angeschaut. Und stehe grad ein bisschen auf der Leitung.

Auf welchem server meldet sich mein Client dann an?

Meinen eigenen server kann ich dann doch vergessen oder?

Mit jabber zu arbeiten wäre nämlich eigentlich wirklich ne coole sache trotzdem hab ich als Schüler im sozusagen „selbstudium“ ziemlich viel Zeit investiert um meinen Server so zum laufen zu kriegen.

Kannst du mir evtl ne ganz kurze erklärung geben wie der aufbau dann bei mir wäre, ob ich dann auch selber nen jabber server bei mir installieren sollte und ob ich meinen server nicht doch noch iwie einbinden kann da der dann doch noch nen paar sachen kann als nur real-time chatting.

Hi,

sorry für die Verzögerung. Ich hoffe Du hast mittlerweile eine Lösung gefunden, denn ich müsste auch Gevater Goolge befragen.
Ich denke aber, dass SOP genau da entgegenwirkt und es soll ja auch nicht so einfach zu umgehen sein.

Gib doch kurz eine Info, falls es doch irgendwie geht.

Viele Grüße

Alex

Moin moin,

da bin ich leider überfragt. Vielleicht wäre es sinnvoll, eine andere Lösung ohne Umgehung der SOP zu finden.

Viel Erfolg!

Hi,

Ich hoffe du kannst englisch.

Obwohl es sowas absolut nicht braucht…

Dir entgeht nur 75% der guten Tutorials und Resourcen. Klar gibts deutsche Bücher, nur das Internet ist auf dem Gebiet doch sehr sehr englisch gehalten. Und die Übersetzungen sind oft auch grauenhaft.

Emite hats ja auch geschafft.

Naja, Facebook Chat kanns auch, nur da hab ich zu wenig Einblick und ich hab mich damit auch noch nicht sehr beschäftigt.

Installier den Jaber-Server bei dir. Du kannst ja den Server modifizieren oder einfach das Jabber-Protokoll selbst implementieren (wovon ich abraten würde, die fertigen Lösungen haben genug Zeit gehabt auszureifen)

Mach den Jabber-Server auf port 1234 und deinen server auf 1235. Beide Server laufen. Am Client kannst du ja ne einfache Änderung machen, dass für Real time chat die erste pipeline zum jabber server benutzt wird und die zweite für die zusätzlichen features, die evtl. mit busy waiting auskommen.

das Problem ist aber immer noch das gleiche, den Browser zum longpulling oder echtem push zu bringen.
Und da kann ich dir ausser den Artikeln, die ich dir geschickt habe, leider nicht mehr weiter helfen.

Google und stackoverflow.com werden wohl deine nächstbeste Anlaufstelle sein.

Ich hoffe ich konnte dir weiterhelfen.

Ok jetzt ein abschluss danke. Werd jetzt glaub ich wirklich mit google und co weiterkommen

Ich hoffe du kannst englisch.

Obwohl es sowas absolut nicht braucht…

Dir entgeht nur 75% der guten Tutorials und Resourcen. :Klar gibts deutsche Bücher, nur das Internet ist auf dem :Gebiet doch sehr sehr englisch gehalten. Und die :Übersetzungen sind oft auch grauenhaft.

So war des gar nich gemeint. Hats sich für mich anfangs iwie ziemlich ironisch angehört, war aber ja gar nich so gemeint. Englisch ist ja DIE sprache der programmierbastler.

Und emite ist eine richtige gwt xmpp library sollte damit nicht so schwierig werden.

Meinen server muss ich wegen nachrichten, freundschaftsanfragen und dateiübertragungsanfragen
den server ja nur alle 45-50 sec fragen muss des is ja noch im grünen bereich.

Gruß thedafelix