Inhalts-Aushandlung

Woher weiß der Server, welche Datei er versenden soll

Sie werden merken, dass interne Links nicht mit .html enden. Das liegt daran, dass der Server Inhalts-Aushandlung (Content-Negotiation) benutzt, um zu entscheiden, welche Version des Dokuments er ausliefern soll. Wenn es mehr als eine Möglichkeit gibt, wird der Server eine Liste aller möglichen auslieferbarer Dateien erstellen, z.B. wenn die Anfrage nach "about" ist, dann könnte die Liste von Vervollständigungen "about.en.html" und "about.de.html" sein. Der Standard für Debian-Server ist, die englischen Seiten auszuliefern, aber dies ist konfigurierbar.

Wenn ein Client die entsprechende Variable gesetzt hat, z.B. um Deutsch auszuliefern, dann wird in dem Beispiel von oben "about.de.html" ausgeliefert. Das schöne an dieser Einstellung ist, dass eine andere Sprache zurückgegeben wird, wenn die verlangte Sprache nicht verfügbar ist (was hoffentlich besser ist als nichts). Die Entscheidung, welche Seite verschickt wird, ist ein bisschen verwirrend, doch anstatt es hier zu beschreiben, sollten Sie die verbindliche Antwort von https://httpd.apache.org/docs/current/content-negotiation.html lesen, wenn Sie daran interessiert sind.

Weil viele Benutzer nichts von der Existenz der Inhalts-Aushandlung wissen, gibt es Links am Fuß von jeder Seite, die direkt zu den Versionen in anderen Sprachen führt. Dies wird durch ein Perl-Skript berechnet, das von wml aufgerufen wird, wenn die Seite erzeugt wird.

Es gibt auch eine Möglichkeit, die Spracheinstellung des Browsers mittels eines Cookies zu überschreiben; dadurch wird eine bestimmte Sprache gegenüber derjenigen, die Ihr Browser als bevorzugt ansieht, vorgezogen.