Aloha!
Fein, eine Grundsatzdiskussion über URLs entsteht. :)
Es ist sinnvoll, überhaupt keine Dateiendungen zu verwenden.
Und das gibt auch keine Probleme? ich meine weil win normaler ein großer Fan der Endungen ist!
Nein, das gibt keine Probleme. Im Internet sind die Mime-Typen entscheidend für die Bedeutung einer Ressource, nicht irgendwelche Endungen. Deshalb kann man z.B. dynamisch CSS-Dateien mit PHP generieren, die man mit <link href="dyncss.php" rel="stylesheet"...> einbindet - solange der Mime-Typ stimmt, ist alles in Butter.
Derzeit ist HTML noch "in". Demnächst haben wir XHTML. Gemäß der Prämisse "Content-Type steht in der Dateiendung" müßte man dann alle URLs wieder umstellen, wenn man seine Seiten auf XHTML umstellt - und alle URLs ändern sich wieder.
Haben wir dann kein selfhtml mehr sondern nur noch selfxhtml? ich weiß nicht ob der Einfluß von Xhtml so weit geht. Es reicht doch der doctype, oder? Die Endung ist doch egal, und es ist und bleibt html!
Eben: Die Endung ist egal - deshalb kann man in der _URL_ ganz auf sie verzichten und den Server automatisch die derzeit vorhandene Ressource ausliefern lassen, die zum Request paßt. Wird "index" angefordert, und existiert "index.html", dann kriegt man die statische Index-Seite. Wird "impressum" angefordert, und existiert "impressum.php", wird eine generierte Seite ausgeliefert. Fordert man "news" an, und existiert news.jsp, läuft es ganz genauso.
Wird in einer neuen Seitenversion von PHP auf JSP umgestiegen, ändern sich die URLs _nicht_. Das bedeutet: Alle Suchmaschineneinträge sind weiterhin gültig, alle Bookmarks (ziemlich wichtig, weil die nicht automatisch auf Aktualität geprüft werden) sind weiterhin gültig, alle Links auf anderen Seiten bleiben gültig - und dennoch kann man die zugrundeliegende Technik ganz den eigenen Erfordernissen anpassen.
Warum nicht einfach auf "http://www.example.com/index" verlinken, und dann den Server entscheiden lassen, welche der möglicherweise mehreren Index-Seiten er ausliefert?
Nun, das setzt einiges an serverseitiger Technologie und Wissen voraus! Außerdem dürfte das einiges an Recourcen fressen - und wofür?
Ja, das Wissen ist erforderlich - beim Admin und Webmaster des Servers. Das sollten aber Fachleute sein, und sie sollten wissen, was sie tun. Es ist unter anderem Aufgabe dieses Forums, das Wissen breiter zu streuen und den Menschen die Möglchkeiten ihres Servers näherzubringen.
Was die Performance angeht: Puretec hat mod_speling aktiv - damit wird _ein_ Tippfehler in der URL korrigiert. Das kostet mit Sicherheit mehr Performance (weil eben alle Möglichkeiten ausprobiert werden müssen: Ist ein Buchstabe zuviel oder zuwenig, ist einer groß statt klein oder umgekehrt, wo in der URL ist er falsch?) als das Durchsuchen eines konkret benannten Verzeichnisses nach passenden Dateien.
Dann kann man ganz einfach wahlweise index.html, index.xhtml oder index.php auf dem Server ablegen, und es wird mit Content-Negotiation immer die richtige Seite ausgeliefert.
Was hat das für einen Sinn??? Sicher, technisch eine Meisterleistung - aber wofür? Um ein paar Freaks zu beeindrucken?
Es macht natürlich keinen Sinn, diese Seiten _gleichzeitig_ auf dem Server zu haben. Aber wenn man ohne Konsequenzen für die Außenwelt von .html zu .xhtml oder zu .php wechseln kann, und sich auch intern die Links _nicht_ ändern, dann ist damit sehr viel gewonnen! Denn gerade bei umfangreichen Projekten mit vielen Seiten ist es eher möglich, schrittweise eine Technik umzustellen, als es auf einen Schlag zu tun. Bzw. es ist manchmal gar nicht wünschenswert, gewisse Teilprojekte umzustellen - aber die dort verwendeten Links zu anderen Teilprojekten bleiben ein Serverleben lang gültig - egal, was sich ändert. So sollte es jedenfalls sein.
Was bitte hat der Browser damit zu tun ob der Server .html oder .php auslieferst? Den interessiert doch eh nur die Ausgabe! Und auch xhtml/html, xhtml wird doch in allen Browsern angezeigt, wozu dann noch html? für die paar NN4.7er? und dafür so viel Aufwand? Danke nein - für sowas bestimmt nicht!
Eben: Den Browser interessiert die Dateiendung nicht, den (und seinen Benutzer) interessiert nur, dass die URL gefunden wird.
Das System läßt sich noch ausbauen,
man sollte nur nicht mit Kanonen auf Spatzen schießen!
indem man auch .gz-Dateien (um komprimierte Dateiversionen auszuliefern) auf den Server packt,
OK, das ist wirklich sinnvoll!
Eben. Reduziere das System nicht auf einen kleinen Teilaspekt.
oder ".de", ".en" und ".ru"-Dateien, um mehrere Sprachversionen je nach Browsereinstellung auszuliefern.
Das ist wieder so eine Sache, was wenn jemand eine andere Sprache will, z.B. in seinem Browser englisch eingestellt und will deutsch - mmuß er erst seine Browsereinstellungen ändern um die Seite in deutsch zu sehen, das nenne ich mal benutzerfreundlich - lernt er direkt was bei, zumindest 1 von 100, die anderen sind weg!
Die Sprache muß entweder über session, cookie oder url übergeben werden, jede andere Lösung ist Quatsch. Stellt sich die Frage an welcher Stelle man das dann prüft? Session ginge wohl nur in PHP etc., URL ginge noch über htaccess, cookies - auch glaube ich. Die Browser-Einstellung hat evtl. Sinn für die default Einstellung!
Nein, diese Variante ist keinesfalls Quatsch. Was ist denn mit der ersten Seite, die abgerufen wird? Die hat eine Standard-Sprache - warum nicht durch Content-Negotiation gleich die vom Browser präferierte Sprache ausliefern? Ok, damit kann man falsch liegen, aber diese Vorauswahl läßt sich durchaus rückgängig machen.
Es stimmt: Wenn man die Sprache auf jeder Seite nur mit Content-Negotiation ausliefert, kann der Benutzer nicht frei wählen. Meine bevorzugte Vorgehensweise ist, die Startseite aushandeln zu lassen, alle Links auf weitere Seiten in einem Sprachunterverzeichnis zeigen zu lassen und die Sprachauswahl-Links auf die anderen angebotenen Sprachen zu setzen. So liefert man für viele Benutzer die richtige Seite aus, und die paar Benutzer, die gerne chinesisch hätten, aber in Italien an einem englischen Browser sitzen, der zuletzt deutsche Sprache eingestellt bekommen hat, werden eben auch glücklich. In der Summe werden aber mehr Benutzer sofort glücklich.
Auf die Spitze getrieben:
index.de.html
index.de.html.gz
index.en.xhtml
index.en.html.gz
index.ru.php
index.ru.html.gz
-> Je nach Browser-Request wird die richtige Datei ausgeliefert. :)
Im Prinzip hast Du schon Recht, aber praktisch?
Praktisch habe ich auch Recht. ;)
- Sven Rautenberg