Zusammenfassung

  • RFC 3987 machte Bezeichner in Unicode lesbar, ohne Eingabe, Transportform, Vergleichsschlüssel und Ressource gleichzusetzen.
  • Ein belastbarer Betrieb musste jede Transformation mit Zweck und Provenienz führen und die Originalzeichenfolge bewahren.

RFC 3987 definierte im Januar 2005 den Internationalized Resource Identifier. Status, Errata und Datatracker dokumentieren die Architekturentscheidung: Die URI wurde nicht umdefiniert. Stattdessen entstand ein ergänzendes Protokollelement als Unicode-Zeichenfolge mit einer deterministischen Abbildung auf eine URI.

Die Trennung schützte bestehende Software und lieferte zugleich ein Betriebsmodell. Originalzeichenfolge, Unicode-Kodierung, Container-Escaping, abgebildete URI, Vergleichsschlüssel, Namensauflösung und Anwendungsergebnis sind verbundene, aber eigenständige Artefakte. Wer nur die letzte Darstellung speichert, kann später nicht mehr erklären, an welcher Grenze eine Abweichung entstand.

RFC 3986, Status, Errata und Historie hatten URI-Vergleich bereits vom Zweck abhängig gemacht. Ein schneller Parser, ein Cache, ein Crawler und ein Namensraum benötigen nicht dieselbe Äquivalenz. RFC 3987 ergänzt die Unterscheidung zwischen Zeichen und Bytes: UTF-8 und UTF-16 können dieselbe Zeichenfolge verschieden codieren. Ein einfacher Vergleich arbeitet deshalb nach Konvertierung in eine gemeinsame Kodierungsform codepunktweise.

Vor diesem Vergleich darf keine IRI-zu-URI-Abbildung stattfinden. Der RFC warnt, dass sie zusätzliche, falsche Äquivalenzen erzeugen kann. Eine für Transport und Altsysteme geeignete Konvertierung ist keine universelle Identitätsfunktion. Ein IRI, der als Bezeichner dienen könnte, soll folglich auf dem Transportweg nicht still verändert werden.

Auch Normalisierung braucht eine Zuständigkeit. Bei der Erzeugung vermindert NFC unnötige Aliasformen. Beim Einlesen von Papier oder einer bekannten Nicht-Unicode-Kodierung gehört NFC in die Vorbereitung. Liegt bereits UTF-8 oder UTF-16 vor, normalisiert der Abbildungsschritt nicht erneut. Dritte sollen eine bestehende Zeichenfolge nicht willkürlich normalisieren, wenn sie die Semantik des Eigentümers nicht kennen.

RFC 5198 mit Status, Errata und Historie erklärt NFC für Netztext und die erwartete Stabilität zugewiesener normalisierter Zeichenfolgen. Das stützt konsistente Erzeugung. Es überträgt einem Proxy oder Indexer nicht das Recht, das empfangene Original zu vernichten.

Prozentkodierung illustriert die lokale Reichweite einer Ableitung. Für einen bestimmten Vergleich können hexadezimale Groß-/Kleinschreibung und erlaubte Escape-Unterschiede vereinheitlicht werden. Wird der Wert weitergegeben oder erneut verwendet, verlangt RFC 3987 die Originalform. Ein Cache-Schlüssel ist eine Materialisierung für einen Zweck, keine kanonische Urkunde.

Scheme-Regeln bilden eine weitere Ebene. Ein Standardport kann in einem HTTP-Vergleich entfallen; ein leerer Bestandteil oder ein Trennzeichen darf nicht ohne ausdrückliche Scheme-Regel verschwinden. Die Operation muss daher Scheme, Zweck und angewandte Regel protokollieren. Ein globales Feld namens „normalisierte URL“ ist zu wenig.

Für internationale Hostnamen gelten spätere IDNA2008-Regeln. RFC 5890, Status, Errata und Historie unterscheiden U-Label, A-Label, Registrierung und Lookup. RFC 5891 mit Status, Errata und Datatracker definiert Validierung und Symmetrie. Ein lesbares Hostlabel beweist weder Registereintrag noch DNS-Antwort.

RFC 5895, Status, Errata und Historie zieht die Grenze zwischen Benutzerschnittstelle und Protokoll. Mapping kann von Sprache, Eingabemethode, Kopieren oder Spracheingabe abhängen und findet vor der Protokollverarbeitung statt. Das Dokument lehnt einen universellen Algorithmus ausdrücklich ab.

Ein belastbares Abnahmemodell führt daher eine Transformationskette: empfangene Zeichen, Erwerbsmethode, Unicode- und NFC-Zustand, Bytes, Escaping, URI-Abbildung, Vergleichszweck, Scheme-Regel, IDNA-Prüfung, DNS-Beleg und Anwendungsergebnis. Lesbarkeit war der menschliche Fortschritt von RFC 3987. Die erhaltene Originalform machte diesen Fortschritt prüfbar, statt einen unsichtbaren Normalisierer zum neuen Eigentümer der Adresse zu machen.

Quellen