Fragmentbezeichner
Als Fragmentbezeichner (englisch fragment identifier) ist ein optionaler Teil eines URI und wird dazu benutzt, eine Untereinheit oder einen Teil einer Ressource zu spezifizieren oder zu adressieren.
Verwendung
Im Gegensatz zum Query-String werden Fragmentbezeichner bei client-server-basierten Systemen nicht an den Server übermittelt. Es wird also stets die komplette Ressource vom Server angefordert. Die Auswertung des Fragmentbezeichners erfolgt allein im Client (und kann im Beispiel von Webbrowsern auch von clientseitigen Skripten ausgewertet werden) und seine Interpretation und Bedeutung hängt unter anderem vom Typ der angeforderten Ressource ab.
Da der Server den Fragmentbezeichner nicht kennt, kann er auch keine Fehlermeldungen oder Redirects an den Client zurückgeben, falls z. B. ein – über den Fragmentbezeichner spezifizierte – Abschnitt eines Dokumentes nicht mehr existiert oder in ein anderes Dokument verschoben wurde.
Syntax
Der Fragmentbezeichner ist – sofern vorhanden – stets der letzte Teil eines URI. Er wird durch ein Doppelkreuz (#) eingeleitet und erstreckt sich bis zum Ende des URI. Das Doppelkreuz selbst gehört dabei nicht zum Fragmentbezeichner, sondern nur der Teil danach.
syntaktische Beispiele URL Bedeutung https://example.org/path/to/resource#fragment Der Fragmentbezeichner ist fragment https://example.org/path/to/resource# Der Fragmentbezeichner ist leer, es ist die gesamte Ressource gemeint. Beide URLs sind gleichbedeutend https://example.org/path/to/resource
Gemäß RFC 2396, Abschnitt 4.1[1] in Verbindung mit Abschnitt 2, dürfen folgende Zeichen in einem Fragmentbezeichner enthalten sein:
- unreserved Zeichen:
a-z A-Z 0-9 . ~ _ - - sub-delims:
! $ & ' ( ) * + , ; = - sonstige erlaubte Zeichen:
: @ / ? - alle anderen Zeichen müssen prozent-kodiert werden, wobei für Nicht-ASCII-Zeichen im Allgemeinen kein Zeichensatz vorgegeben ist, jedoch UTF-8 inzwischen als Quasi-Standard gilt.
Je nach Typ der referenzierten Ressource kann der Fragmentbezeichner ein bestimmtes, genormtes Format haben. Üblich sind beispielsweise (hier zur Veranschaulichung mit Doppelkreuz dargestellt, wie es am Ende einer URL dargestellt wird):
- (menschenlesbarer) Name: z. B. Kapitelnamen (ggf. abgekürzt):
#Form_und_Gr%C3%B6%C3%9Fe - opaquer, automatisch generierter Hash oder fortlaufende Nummer:
#b95d534fe38e - Paar aus Name und Wert, bzw. Folge von Name-Wert-Paaren, oft durch
&oder;voneinander getrennt, ähnlich wie bei einem Query-String:#line=10,20;length=9876,UTF-8[2]
Es gibt aber auch komplexere Formate und Webframeworks, die umfangreiche Daten in den Fragmentbezeichner kodieren.
Beispiele
Fragmentbezeichner werden üblicherweise einer URI (also auch einer URL) hinzugefügt, um Teile eines Dokuments zu adressieren. Der Fragmentbezeichner wird in diesem Fall mit dem Rautezeichen (#) in der URI gekennzeichnet. Er steht optional am Ende einer URI.
Die Interpretation des Fragmentbezeichners ist abhängig von der Art der Ressource und dem Parser. Beispiele:
- In HTML verweist
https://example.com/document.html#anker1auf das HTML-Element in document.html, das das Anker-Attributname="anker1"(oderid="anker1") enthält. - In XML sollte sich mit
https://example.com/document.xml#xpointer(//Kamel)ein XPointer einsetzen lassen, der alle XML-Elemente mit Namen „Kamel“ aus der Datei document.xml als Ergebnis liefert. - Für PDF-Dokumente beschreibt
https://example.com/document.pdf#page=123die S. 123 in document.pdf. - Für Webvideos und andere audiovisuelle Medien kann ein Zeitpunkt, Ausschnitt oder Kapitel bestimmt werden. Es gibt unterschiedliche Paarungen Schlüsselwort
=Wert, wobei das Schlüsselwort beispielsweisetrackodertoder auchidheißen könnte.[3] Das erforderliche Schlüsselwort wie auch die Interpretation des zugewiesenen Wertes hängt von der Art des Mediums ab. So sollhttps://example.com/video.mp4#t=40zur 40. Sekunde des Videos aufvideo.mp4springen. - Über ein sogenanntes Textfragment kann ein Webbrowser, der die Fähigkeit dazu besitzt, angewiesen werden, diesen Text hervorzuheben – auf welche Weise, ist browserabhängig. Beispiel:
https://example.org/path/to/resource#:~:text=illustrative%20examplesmarkiert im Webdokument die Textstelle illustrative examples.[4]
Die Scalable-Vector-Graphics-Spezifikation (SVG) erlaubt den Zugriff auf verschiedene Elemente innerhalb derselben Vektorgrafik über Fragmentbezeichner. Dadurch ist es beispielsweise möglich, verschiedene Icons einer grafischen Benutzeroberfläche in einer gemeinsamen SVG-Datei vorzuhalten und bei Bedarf nur das gewünschte Icon zu referenzieren.[5] Der Fragmentbezeichner wird auch in diesem Fall mit einem Doppelkreuz vom Namen der Ressource abgetrennt, muss aber kein Teil einer URI sein.
Weblinks
- RFC: – Uniform Resource Identifier. 1998 (aktualisiert durch , englisch).
- RFC: – Uniform Resource Identifier (URI). Januar 2005, Abschnitt 3.5: Fragment. (englisch).
- RFC: – URI Fragment Identifiers for the text/plain Media Type. (englisch).
- HTML 4.01 Specification – Links in HTML documents (W3C, englisch)
- URL – Living Standard(WHATWG, englisch)
- PDF Open Parameters ( vom 15. November 2016 im Internet Archive; englisch, PDF, 157 kB, für Adobe Acrobat)
- Textfragmente - URIs (MDN Web Docs)
Einzelnachweise
- ↑ RFC: – Uniform Resource Identifier. 1998, Abschnitt 4.1: Fragment Identifier. (englisch).
- ↑ RFC: – URI Fragment Identifiers for the text/plain Media Type. 2008, Abschnitt 5: Examples. (englisch).
- ↑ Media Fragments URI 1.0 (basic), W3C
- ↑ URL Fragment Text Directives, W3C
- ↑ Chris Coyier: How SVG Fragment Identifiers Work. In: CSS Tricks. 29. Januar 2017, abgerufen am 16. Januar 2019 (englisch).