Rolf B: XML Datei mit dtd und verschiedenen Namensräumen

Beitrag lesen

Hallo carstencs,

wie würde man denn eine Authentifizierung über den Browser in HTTP realisieren?

Gar nicht. Das machen Browser und Webserver miteinander aus. Wenn Du einen Webservice via HTTP authentifizierst, verwendest Du - mutmaßlich - XMLHttpRequest oder das fetch-API und die erledigen das im JavaScript für Dich. Die Serverseite wird vom Webserver versorgt.

Wenn Du keinen Webserver verwendest, sondern den Server selbst schreibst, lies Dir RFC 2617 durch, und die Folge-RFCs, die ihn erweitern und erneuern (steht im 2617 im Kopf). Da ist HTTP Authentication beschrieben. (Jedi-Handbewegung) „Das ist nicht das, was Du programmieren willst“.

Aber mit PHP schreibst Du den Server normalerweise nicht selbst. PHP wird vom Server aufgerufen, um den Teil zu steuern, der über HTTP hinaus geht.

Kann man eigentlich auch mit PHP auf der Socketebene Port 80 verwenden? ..

Ich schrieb oben "normalerweise". Aber ja, du kannst PHP als normalen Prozess starten, ohne Webserver, und dich dann nach Herzenslust an Socket 80 binden und ihn belauschen. Wenn denn kein Webserver läuft, der bereits lauscht.. Dann geht's nicht. Sockets sind eigensinnig, die wollen nur einem was ins Öhrchen flüstern[1]. Aber warum mit PHP einen HTTP Server schreiben? (Jedi-Handbewegung) „Das ist nicht das, was Du programmieren willst“.

Als Client ist es was anderes, du kannst jederzeit von PHP aus eine HTTP-Verbindung zum Port 80 von anderen Servern öffnen. Es ist aber mühsam, das low-level zu tun. (Jedi-Handbewegung) „Das ist nicht das, was Du programmieren willst“. Besser verwendet man fertige Funktionen, die bestimmte Aufgaben komplett erledigen, z.B. file_get_contents, der kannst Du eine http-URL geben und sie lädt die Datei dahinter eben mal runter.

Middleware ... aber wahrscheinlich würde dann die komplette Internetseite neugeladen werden.

Du vermischst Erdäpfel mit Pferdeäpfeln. Wenn Du mit dem JavaScript einer Webseite einen Webservice aufrufst, hat das mit dem Neuladen der Seite nichts zu tun. Mit Middleware habe ich - beispielsweise - eine Library für PHP gemeint, die Dir die Tiefen des SOAP-Protokolls abnimmt, wenn Du denn einen SOAP-Service schreiben willst. Ich habe bisher SOAP immer nur zusammen mit HTTP-Authentication verwendet, aber ich meine, es gibt auch SOAP-Standards für eine eigene Authentication. Da habe ich aber kein eigenes Wissen mehr. Was ich bei SOAP weiß, ist, dass da komplexe XML-Pakete hin- und hergeschickt werden, die spezifizieren, welche Aufgabe der Server ausführen soll. Eine SOAP-Middleware versteht diese Pakete und routet die Aufträge des Clients - beispielsweise - an Methoden einer Klasse. Diese Methoden erzeugen dann als Ergebnis Objekte, die die an die Middleware zurückgeben. Die verpackt sie wieder in XML und schickt sie zum Aufrufer zurück. Das ist aber was ganz anderes als ein HTML, dass Du mittels XLST aus einem XML Dokument erzeugst.

Die Seite wird nur dann neu geladen, wenn Du im HTML einen Link anklickst, ein Form abschickst oder via JavaScript die location änderst.

Rolf

--
sumpsi - posui - obstruxi

  1. (räusper) Eigentlich. Unter Windows gibt's die HTTP.SYS Library, die es ermöglicht, dass Prozesse sich HTTP Sockets teilen, sofern sie auf unterschiedliche URLs lauschen. Aber das ist letztlich ein Fake, weil es auch da nur einen Lauscher gibt: HTTP.SYS. Die Lib verteilt die Pakete dann je nach der URL, die die Clients anfordern. keine Ahnung ob PHP das unterstützt oder ob es dazu ein Äquivalent unter Linux gibt. ↩︎