Coole URIs ändern sich nicht

Autor: Sir Tim Berners-Lee, Erfinder von URIs, URLs, HTTP, HTML und dem World Wide Web und aktueller Leiter des W3C. Artikel aus dem Jahr 1998

Welcher URI gilt als „cool“?
Eines, das sich nicht ändert.
Wie ändern sich URIs?
URIs ändern sich nicht: Menschen ändern sie.

Theoretisch gibt es für Menschen keinen Grund, URIs zu ändern (oder keine unterstützenden Dokumente mehr zu verwenden), aber in der Praxis gibt es Millionen davon.

Theoretisch ist der nominelle Eigentümer eines Domain-Namespace tatsächlich Eigentümer des Domain-Namespace und damit aller darin enthaltenen URIs. Abgesehen von der Insolvenz hindert den Inhaber eines Domainnamens nichts daran, den Namen zu behalten. Und theoretisch liegt der URI-Bereich unter Ihrem Domainnamen vollständig unter Ihrer Kontrolle, sodass Sie ihn so stabil gestalten können, wie Sie möchten. Der einzige gute Grund dafür, dass ein Dokument aus dem Internet verschwindet, ist, dass das Unternehmen, dem der Domainname gehörte, seine Geschäftstätigkeit aufgegeben hat oder es sich nicht mehr leisten kann, den Server am Laufen zu halten. Warum gibt es dann so viele fehlende Glieder auf der Welt? Manches davon ist einfach ein Mangel an Voraussicht. Hier sind einige Gründe, warum Sie hören könnten:

Wir haben die Website gerade neu organisiert, um sie besser zu machen.

Glauben Sie wirklich, dass die alten URIs nicht mehr funktionieren? Wenn ja, dann haben Sie sie sehr schlecht ausgewählt. Erwägen Sie, die neuen für die nächste Neugestaltung aufzubewahren.

Wir haben so viele Dinge, dass wir nicht im Auge behalten können, was veraltet, was vertraulich und was noch relevant ist. Deshalb hielten wir es für das Beste, einfach alles auszuschalten.

Ich kann nur mitfühlen. Das W3C erlebte eine Zeit, in der wir Archivmaterialien sorgfältig auf Vertraulichkeit prüfen mussten, bevor wir sie veröffentlichten. Die Entscheidung sollte im Voraus durchdacht werden – stellen Sie sicher, dass Sie bei jedem Dokument die zulässige Leserschaft, das Erstellungsdatum und im Idealfall das Ablaufdatum vermerken. Speichern Sie diese Metadaten.

Nun, wir haben festgestellt, dass wir Dateien verschieben müssen ...

Das ist eine der erbärmlichsten Ausreden. Viele Menschen wissen nicht, dass Sie mit Webservern die Beziehung zwischen dem URI eines Objekts und seinem tatsächlichen Speicherort im Dateisystem steuern können. Stellen Sie sich den URI-Raum als einen abstrakten, perfekt organisierten Raum vor. Erstellen Sie dann eine Zuordnung zu der Realität, die Sie tatsächlich nutzen, um es zu realisieren. Melden Sie dies dann dem Webserver. Sie können sogar Ihr eigenes Server-Snippet schreiben, um es richtig zu machen.

John pflegt diese Datei nicht mehr, Jane schon.

War Johns Name in der URI? Nein, war die Datei nur in seinem Verzeichnis? Nun gut.

Früher haben wir dafür ein CGI-Skript verwendet, jetzt nutzen wir ein Binärprogramm.

Es gibt eine verrückte Idee, dass durch Skripte erstellte Seiten im Bereich „cgibin“ oder „cgi“ liegen sollten. Dadurch werden die Mechanismen offengelegt, mit denen Sie Ihren Webserver betreiben. Sie ändern den Mechanismus (auch während Sie Inhalte speichern) und ups – alle Ihre URIs ändern sich.

Nehmen Sie zum Beispiel die National Science Foundation (NSF):

NSF-Onlinedokumente

http://www.nsf.gov/cgi-bin/pubsys/browser/odbrowse.pl

Die erste Seite, auf der Sie mit der Anzeige von Dokumenten beginnen, wird in einigen Jahren offensichtlich nicht mehr dieselbe bleiben. cgi-bin, oldbrowse и pl - All dies gibt Aufschluss darüber, wie wir es jetzt machen. Wenn Sie die Seite zur Suche nach einem Dokument verwenden, ist das erste Ergebnis, das Sie erhalten, ebenso schlecht:

Bericht der Arbeitsgruppe Kryptologie und Kodierungstheorie

http://www.nsf.gov/cgi-bin/getpub?nsf9814

für die Dokumentindexseite, obwohl das HTML-Dokument selbst viel besser aussieht:

http://www.nsf.gov/pubs/1998/nsf9814/nsf9814.htm

Hier wird der pubs/1998-Header jedem zukünftigen Archivdienst einen guten Hinweis darauf geben, dass das alte Dokumentenklassifizierungsschema von 1998 in Kraft ist. Obwohl die Dokumentnummern im Jahr 2098 möglicherweise anders aussehen, kann ich mir vorstellen, dass dieser URI immer noch gültig ist und weder NSF noch eine andere Organisation, die das Archiv verwaltet, beeinträchtigt.

Ich dachte nicht, dass URLs dauerhaft sein müssen – es gab URNs.

Dies ist wahrscheinlich eine der schlimmsten Nebenwirkungen der URN-Debatte. Einige Leute denken, dass sie aufgrund der Forschung nach einem dauerhafteren Namensraum möglicherweise nachlässig gegenüber baumelnden Links sind, denn „URNs werden das alles beheben.“ Wenn Sie einer dieser Menschen sind, dann lass mich dich enttäuschen.

Die meisten URN-Schemata, die ich gesehen habe, sehen aus wie eine Autoritätskennung, gefolgt von einem Datum und einer von Ihnen ausgewählten Zeichenfolge oder nur einer von Ihnen ausgewählten Zeichenfolge. Dies ist einem HTTP-URI sehr ähnlich. Mit anderen Worten: Wenn Sie glauben, dass Ihre Organisation in der Lage sein wird, langlebige URNs zu erstellen, dann beweisen Sie dies jetzt, indem Sie sie für Ihre HTTP-URIs verwenden. Es gibt nichts in HTTP selbst, was Ihren URI instabil machen könnte. Nur Ihre Organisation. Erstellen Sie eine Datenbank, die den Dokument-URN dem aktuellen Dateinamen zuordnet, und lassen Sie den Webserver diese verwenden, um die Dateien tatsächlich abzurufen.

Wenn Sie an diesem Punkt angelangt sind und nicht über die Zeit, das Geld und die Verbindungen verfügen, um Software zu entwickeln, können Sie die folgende Entschuldigung anführen:

Wir wollten es, aber wir haben einfach nicht die richtigen Werkzeuge.

Aber man kann damit einverstanden sein. Ich stimme vollkommen zu. Was Sie tun müssen, ist, den Webserver zu zwingen, den persistenten URI sofort zu analysieren und die Datei dorthin zurückzugeben, wo sie gerade in Ihrem aktuellen verrückten Dateisystem gespeichert ist. Sie möchten zur Kontrolle alle URIs in einer Datei speichern und die Datenbank jederzeit aktuell halten. Sie möchten die Beziehung zwischen verschiedenen Versionen und Übersetzungen desselben Dokuments bewahren und außerdem einen unabhängigen Prüfsummendatensatz verwalten, um sicherzustellen, dass die Datei nicht durch einen versehentlichen Fehler beschädigt wird. Und Webserver sind einfach nicht mit diesen Funktionen ausgestattet. Wenn Sie ein neues Dokument erstellen möchten, werden Sie von Ihrem Editor aufgefordert, einen URI anzugeben.

Sie müssen in der Lage sein, den Besitz, den Dokumentenzugriff, die Sicherheit auf Archivebene usw. im URI-Bereich zu ändern, ohne den URI zu ändern.

Es ist alles zu schade. Aber wir werden die Situation korrigieren. Bei W3C verwenden wir die Jigedit-Funktion (Jigsaw Editing Server), die Versionen verfolgt, und experimentieren mit Skripten zur Dokumenterstellung. Wenn Sie Tools, Server und Clients entwickeln, achten Sie auf dieses Problem!

Diese Ausrede gilt auch für viele W3C-Seiten, einschließlich dieser: Tun Sie also, was ich sage, nicht das, was ich tue.

Warum sollte es mich kümmern?

Wenn Sie den URI auf Ihrem Server ändern, können Sie nie vollständig sagen, wer Links zum alten URI haben wird. Dies können Links von normalen Webseiten sein. Setzen Sie ein Lesezeichen für Ihre Seite. Die URI könnte am Rand eines Briefes an einen Freund gekritzelt worden sein.

Wenn jemand einem Link folgt und dieser defekt ist, verliert er normalerweise das Vertrauen in den Serverbesitzer. Er ist sowohl emotional als auch körperlich frustriert, weil er sein Ziel nicht erreichen kann.

Viele Leute beschweren sich ständig über defekte Links, und ich hoffe, dass der Schaden offensichtlich ist. Ich hoffe, dass der Reputationsschaden für den Betreiber des Servers, auf dem das Dokument verschwunden ist, ebenfalls offensichtlich ist.

Also was soll ich tun? URI-Design

Es liegt in der Verantwortung des Webmasters, URIs zuzuweisen, die in 2 Jahren, in 20 Jahren, in 200 Jahren verwendet werden können. Dies erfordert Umsicht, Organisation und Entschlossenheit.

URIs ändern sich, wenn sich darin enthaltene Informationen ändern. Es ist sehr wichtig, wie Sie sie gestalten. (Was, URI-Design? Muss ich den URI entwerfen? Ja, darüber sollten Sie nachdenken.) Design bedeutet im Grunde, jegliche Informationen in der URI wegzulassen.

Das Datum, an dem das Dokument erstellt wurde – das Datum, an dem die URI ausgegeben wurde – wird sich nie ändern. Dies ist sehr nützlich, um Abfragen, die das neue System verwenden, von denen zu trennen, die das alte System verwenden. Dies ist ein guter Ausgangspunkt für eine URI. Wenn ein Dokument veraltet ist, ist dies ein guter Anfang, auch wenn das Dokument in Zukunft relevant sein wird.

Die einzige Ausnahme ist eine Seite, die absichtlich die „neueste“ Version darstellt, beispielsweise für die gesamte Organisation oder einen großen Teil davon.

http://www.pathfinder.com/money/moneydaily/latest/

Dies ist die neueste Money Daily-Kolumne im Money-Magazin. Der Hauptgrund dafür, dass in diesem URI kein Datum erforderlich ist, besteht darin, dass es keinen Grund gibt, den URI zu speichern, der das Protokoll überdauert. Das Konzept von Money Daily wird verschwinden, wenn Money verschwindet. Wenn Sie auf Inhalte verlinken möchten, sollten Sie diese in den Archiven separat verlinken:

http://www.pathfinder.com/money/moneydaily/1998/981212.moneyonline.html

(Sieht gut aus. Geht davon aus, dass „Geld“ während der gesamten Lebensdauer von pathfinder.com dasselbe bedeuten wird. Es gibt ein Duplikat „98“ und eine unnötige „.html“, sieht aber ansonsten wie eine starke URI aus.

Was man beiseite lassen sollte

Alle! Abgesehen vom Erstellungsdatum ist das Einfügen jeglicher Informationen in die URI auf die eine oder andere Weise problematisch.

  • Name des Autors. Die Urheberschaft kann sich ändern, wenn neue Versionen verfügbar werden. Menschen verlassen Organisationen und geben Dinge an andere weiter.
  • Ding. Das ist sehr schwer. Es sieht zunächst immer gut aus, ändert sich aber überraschend schnell. Ich werde weiter unten mehr darüber sprechen.
  • Status. Verzeichnisse wie „old“, „draft“ usw., ganz zu schweigen von „latest“ und „cool“, erscheinen in allen Dateisystemen. Dokumente ändern ihren Status – sonst hätte es keinen Sinn, Entwürfe zu erstellen. Die neueste Version eines Dokuments benötigt unabhängig von seinem Status eine dauerhafte Kennung. Halten Sie den Status aus dem Namen heraus.
  • Zugang. Bei W3C haben wir die Website in Bereiche für Mitarbeiter, Mitglieder und die Öffentlichkeit unterteilt. Das hört sich gut an, aber natürlich beginnen Dokumente als Teamideen von Mitarbeitern, werden mit Mitgliedern besprochen und werden dann öffentlich bekannt. Es wäre wirklich schade, wenn jedes Mal, wenn ein Dokument zur breiteren Diskussion geöffnet wird, alle alten Links dazu gelöscht würden! Nun kommen wir zu einem einfachen Datumscode.
  • Dateierweiterung. Ein sehr häufiges Phänomen. „cgi“, sogar „.html“ wird sich in Zukunft ändern. Möglicherweise verwenden Sie in 20 Jahren kein HTML mehr für diese Seite, aber die heutigen Links darauf sollten immer noch funktionieren. Kanonische Links auf der W3C-Site verwenden nicht die Erweiterung (wie es gemacht wird).
  • Softwaremechanismen. Suchen Sie in der URI nach „cgi“, „exec“ und anderen Begriffen, die lauten: „Schauen Sie sich an, welche Software wir verwenden.“ Möchte jemand sein ganzes Leben damit verbringen, Perl-CGI-Skripte zu schreiben? Nein? Entfernen Sie dann die Erweiterung .pl. Lesen Sie im Serverhandbuch nach, wie das geht.
  • Festplattenname. Nun ja! Aber ich habe das gesehen.

Das beste Beispiel auf unserer Website ist also einfach

http://www.w3.org/1998/12/01/chairs

... Bericht über das Protokoll der Sitzung der W3C-Vorsitzenden.

Themen und Einordnung nach Themen

Auf diese Gefahr werde ich näher eingehen, da sie zu den Dingen gehört, die am schwierigsten zu vermeiden sind. Typischerweise landen Themen in URIs, wenn Sie Ihre Dokumente nach der von ihnen geleisteten Arbeit kategorisieren. Aber diese Aufteilung wird sich im Laufe der Zeit ändern. Die Namen der Gebiete werden sich ändern. Beim W3C wollten wir MarkUP in Markup und dann in HTML ändern, um den tatsächlichen Inhalt des Abschnitts widerzuspiegeln. Darüber hinaus gibt es häufig einen flachen Namensraum. Sind Sie sicher, dass Sie in 100 Jahren nichts mehr wiederverwenden wollen? In unserem kurzen Leben wollten wir zum Beispiel schon „History“ und „Style Sheets“ wiederverwenden.

Es ist eine verlockende Art, eine Website zu organisieren – und eine wirklich verlockende Art, alles zu organisieren, einschließlich des gesamten Webs. Dies ist mittelfristig eine großartige Lösung, weist aber auf lange Sicht gravierende Mängel auf.

Ein Teil des Grundes liegt in der Bedeutungsphilosophie. Jeder Begriff in einer Sprache ist ein potenzielles Ziel für die Clusterbildung, und jede Person hat möglicherweise eine andere Vorstellung davon, was er bedeutet. Da Beziehungen zwischen Entitäten eher einem Netz als einem Baum ähneln, können selbst diejenigen, die mit dem Netz einverstanden sind, eine andere Darstellung des Baums wählen. Dies sind meine (oft wiederholten) allgemeinen Beobachtungen zu den Gefahren einer hierarchischen Klassifizierung als allgemeine Lösung.

Wenn Sie einen Themennamen in einem URI verwenden, verpflichten Sie sich tatsächlich zu einer Art Klassifizierung. Vielleicht bevorzugen Sie in Zukunft eine andere Option. Der URI ist dann anfällig für Verletzungen.

Der Grund für die Verwendung eines Themenbereichs als Teil eines URI liegt darin, dass die Verantwortung für Unterabschnitte des URI-Raums normalerweise delegiert wird und Sie dann den Namen der Organisationsstelle – Abteilung, Gruppe oder was auch immer – benötigen, die für diesen Unterraum verantwortlich ist. Dies ist eine URI-Bindung an eine Organisationsstruktur. Normalerweise ist es nur dann sicher, wenn der weitere (linke) URI durch ein Datum geschützt ist: 1998/pics bedeutet für Ihren Server möglicherweise „was wir 1998 mit Bildern meinten“ und nicht „was wir 1998 mit dem gemacht haben, was wir jetzt Bilder nennen.“

Vergessen Sie nicht den Domainnamen

Bedenken Sie, dass dies nicht nur für den Pfad im URI gilt, sondern auch für den Servernamen. Wenn Sie separate Server für verschiedene Zwecke haben, denken Sie daran, dass diese Aufteilung nicht geändert werden kann, ohne viele, viele Links zu zerstören. Einige klassische „Sehen Sie sich die Software an, die wir heute verwenden“-Fehler sind Domainnamen „cgi.pathfinder.com“, „secure“ und „lists.w3.org“. Sie sollen die Serververwaltung erleichtern. Unabhängig davon, ob eine Domäne einen Bereich in Ihrem Unternehmen, einen Dokumentstatus, eine Zugriffsebene oder eine Sicherheitsstufe darstellt, seien Sie sehr, sehr vorsichtig, bevor Sie mehr als einen Domänennamen für mehrere Dokumenttypen verwenden. Denken Sie daran, dass Sie mithilfe von Umleitung und Proxying mehrere Webserver innerhalb eines sichtbaren Webservers verbergen können.

Oh, und denken Sie auch an Ihren Domainnamen. Sie möchten nicht als Soap.com bezeichnet werden, nachdem Sie die Produktlinie geändert und die Herstellung von Seife eingestellt haben (es tut mir leid, wer im Moment Soap.com besitzt).

Abschluss

Einen URI für 2, 20, 200 oder sogar 2000 Jahre aufzubewahren, ist offensichtlich nicht so einfach, wie es scheint. Doch überall im Internet treffen Webmaster Entscheidungen, die ihnen diese Aufgabe in Zukunft wirklich schwer machen. Das liegt oft daran, dass sie Tools verwenden, deren Aufgabe es ist, nur die aktuell beste Seite zu präsentieren – und niemand hat abgeschätzt, was mit den Links passieren wird, wenn sich alles ändert. Der Punkt hier ist jedoch, dass sich viele, viele Dinge ändern können und Ihre URIs gleich bleiben können und sollten. Dies ist nur möglich, wenn Sie darüber nachdenken, wie Sie sie erstellen.

Siehe auch:

Zugänge

So entfernen Sie Dateierweiterungen...

...von einem URI im aktuellen dateibasierten Webserver?

Wenn Sie beispielsweise Apache verwenden, können Sie es so konfigurieren, dass es Inhalte aushandelt. Speichern Sie die Dateierweiterung (z. B. .png) in einer Datei (z. B. mydog.png), aber Sie können auch ohne diese auf eine Webressource verlinken. Apache durchsucht dann das Verzeichnis nach allen Dateien mit diesem Namen und einer beliebigen Erweiterung und kann aus der Menge die beste auswählen (z. B. GIF und PNG). Und es ist nicht nötig, unterschiedliche Dateitypen in unterschiedlichen Verzeichnissen abzulegen, da der Inhaltsabgleich in diesem Fall tatsächlich nicht funktioniert.

  • Richten Sie Ihren Server für die Aushandlung von Inhalten ein
  • Verlinken Sie immer auf URIs ohne Erweiterung

Links mit Erweiterungen funktionieren weiterhin, hindern Ihren Server jedoch daran, das derzeit und in Zukunft beste verfügbare Format auszuwählen.

(Tatsächlich, mydog, mydog.png и mydog.gif — gültige Webressourcen, mydog ist eine universelle Inhaltstypressource und mydog.png и mydog.gif — Ressourcen eines bestimmten Inhaltstyps).

Wenn Sie Ihren eigenen Webserver schreiben, ist es natürlich eine gute Idee, eine Datenbank zu verwenden, um persistente Bezeichner an ihre aktuelle Form zu binden. Achten Sie jedoch auf ein unbegrenztes Datenbankwachstum.

The Board of Shame – Geschichte 1: Kanal 7

Im Jahr 1999 habe ich auf der Seite Schulschließungen aufgrund von Schnee verfolgt http://www.whdh.com/stormforce/closings.shtml. Warten Sie nicht, bis die Informationen unten auf dem Fernsehbildschirm angezeigt werden! Ich habe von meiner Homepage darauf verlinkt. Der erste große Schneesturm des Jahres 2000 kommt und ich schaue mir die Seite an. Dort steht geschrieben:,

- Ab.
Derzeit ist nichts geschlossen. Bitte kommen Sie bei Wetterwarnungen zurück.

Es kann kein so starker Sturm sein. Komisch, dass das Datum fehlt. Wenn Sie jedoch zur Hauptseite der Website gehen, gibt es einen großen Button „Geschlossene Schulen“, der zur Seite führt http://www.whdh.com/stormforce/ mit einer langen Liste geschlossener Schulen.

Vielleicht haben sie das System zum Abrufen der Liste geändert – aber sie mussten den URI nicht ändern.

Board of Shame – Geschichte 2: Microsoft Netmeeting

Mit der wachsenden Abhängigkeit vom Internet entstand die clevere Idee, Links zur Website des Herstellers in Anwendungen einzubetten. Dies wurde häufig verwendet und missbraucht, aber Sie können die URL nicht ändern. Erst neulich habe ich einen Link vom Microsoft Netmeeting 2/something-Client im Menü „Hilfe/Microsoft im Web/Kostenlose Dinge“ ausprobiert und einen 404-Fehler erhalten – es wurde keine Antwort vom Server gefunden. Vielleicht ist es schon behoben...

© 1998 Tim BL

Historische Anmerkung: Im späten 20. Jahrhundert, als dies geschrieben wurde, war „cool“ vor allem bei jungen Menschen ein Beiname, der auf Mode, Qualität oder Angemessenheit hinwies. In der Eile wurde der URI-Pfad oft wegen seiner „Coolness“ und nicht wegen seiner Nützlichkeit oder Haltbarkeit gewählt. Dieser Beitrag ist ein Versuch, die Energie hinter der Suche nach Coolness umzulenken.

Source: habr.com

Kommentar hinzufügen