BEZEICHNUNG
uri, url, urn - einheitliche Bezeichner für Ressourcen (URI), einschließlich einer URL oder URNÜBERSICHT
URI = [ absoluteURI | relativeURI ] [ »#« Fragment ]
absoluteURI = Schema »:« ( hierarchischer_Anteil | undurchsichtiger_Anteil )
relativeURI = ( Netzpfad | absoluter_Pfad | relativer_Pfad ) [ »?« Anfrage ]
Schema= »http« | »ftp« | »gopher« | »mailto« | »news« | »telnet« | »file« | »man« | »info« | »whatis« | »ldap« | »wais« | …
hierarchischer_Anteil = ( Netzpfad | absoluter_Pfad ) [ »?« Anfrage ]
Netzpfad = »//« Autorität [ absoluter_Pfad ]
absoluter_Pfad = »/« Pfadsegment
relativer_Pfad = relatives_Segment [ absoluter_Pfad ]
BESCHREIBUNG
Ein einheitlicher Bezeichner für Ressourcen (URI, »Uniform Resource Identifier«) ist eine kurze Zeichenkette, die eine abstrakte oder physische Ressource identifiziert (beispielsweise eine Webseite). Ein einheitlicher Ressourcenzeiger (URL, »Uniform Resource Locator«) ist eine URI, die eine Ressource über ihren primären Zugangsmechanismus kennzeichnet (z.B. seinen »Netzwerkort«), statt über seinen Namen oder ein anderes Attribut dieser Ressource. Ein einheitlicher Ressourcenname (URN, »Uniform Resource Name«) ist eine URI, die global eindeutig und dauerhaft sein muss, selbst wenn die Ressource aufhört zu existieren oder unverfügbar wird. URIs sind die Standardart, Ziele von Hypertextlinks für Werkzeuge wie Webbrowser zu benennen. Die Zeichenkette »http://www.kernel.org« ist eine URL (und daher auch eine URI). Viele Leute verwenden den Ausdruck URL locker als Synonym für URI (obwohl URLs technisch eine Teilmenge von URIs sind). URIs können absolut oder relativ sein. Ein absoluter Bezeichner bezieht sich auf einen Ressourcen-unabhängigen Kontext, während sich ein relativer Bezeichner auf eine Ressource bezieht, indem der Unterschied vom aktuellen Kontext beschrieben wird. Innerhalb einer relativen Pfadreferenz haben die Segmente ».« und »..« eines kompletten Pfads eine besondere Bedeutung: »die aktuelle Hierarchieebene« bzw. »die Stufe oberhalb dieser Hierarchieebene«, genau wie es bei UNIX-artigen Systemen der Fall ist. Ein Pfadsegment, das einen Doppelpunkt enthält, kann nicht als erstes Segment eines relativen URI-Pfades verwandt werden (z.B. »dies:das«), da es als Schema-Namen missverstanden würde; stellen Sie solchen Segmenten »./« voran (z.B. »./dies:das«). Beachten Sie, dass Abkömmlinge von MS-DOS (z.B. Microsoft Windows) die Doppelpunkte von Gerätenamen in URIs durch einen vertikalen Strich ersetzen (»|«) ersetzen, so dass »C:« zu »C|« wird. Falls ein Fragmentbezeichner enthalten ist, bezieht er sich auf einen bestimmten benannten Anteil (Fragment) einer Ressource; Text nach »#« identifiziert das Fragment. Eine URI, die mit »#« anfängt, bezieht sich auf das Fragment in der aktuellen Ressource.Verwendung
Es gibt viele verschiedene URI-Schemas, jede mit besonderen zusätzlichen Regeln und Bedeutungen, aber mit Absicht werden sie so ähnlich wie möglich gestaltet. Beispielsweise erlauben viele URL-Schemas, dass die Autorität im folgenden Format vorliegt, sie wird hier ein IP-Server genannt (Anteile in eckigen Klammern sind optional).
IP-Server
= [ Benutzer [ : Passwort ] @ ] Rechner [ :
Port]
Dieses Format erlaubt Ihnen, optional einen Benutzernamen, einen Benutzer plus
ein Passwort und/oder eine Port-Nummer einzufügen. Der Rechner
ist der Name des Rechners, entweder sein Name, wie er durch DNS bestimmt wird,
oder eine IP-Adresse (durch Punkte getrennte Nummern). Daher meldet sich die
URI <http://fred:[email protected]:8080/> in einem Web-Server auf
dem Rechner example.com als fred (mit fredpassword) über Port 8080 an.
Vermeiden Sie die Angabe eines Passworts in einer URI falls möglich, da
es viele Sicherheitsrisiken gibt, wenn Passwörter niedergeschrieben
werden. Falls die URL einen Benutzernamen, aber kein Passwort bereitstellt,
und der ferne Server ein Passwort verlangt, sollte das Programm, das die URL
auswertet, dieses Passwort vom Benutzer abfragen.
Es folgen einige der häufigsten Schemas, die in UNIX-artigen Systemen
verwandt und von vielen Werkzeugen verstanden werden. Beachten Sie, dass viele
Werkzeuge, die URIs verwenden, über interne Schemas oder spezialisierte
Schemas verfügen. Lesen Sie die Dokumentation dieser Werkzeuge
für Informationen über diese Schemas.
http - Web- (HTTP-)Server
http:// IP-Server/Pfad
- Rechnerport
- Der abzufragende LDAP-Server, geschrieben als Rechnername, optional gefolgt von einem Doppelpunkt und der Port-Nummer. Der Vorgabe-LDAP-Port ist TCP-Port 389. Falls leer, bestimmt der Client den zu verwendenden LDAP-Server.
- DN
- Der »ausgezeichnete Name« (distinguished name) des LDAPs, der das Basis-Objekt der LDAP-Suche identifiziert (siehe
- Attribute
- Eine Kommata-getrennte Liste von zurückzuliefernden Attributen; siehe RFC 2251 Abschnitt 4.1.5. Falls nicht angegeben, sollen alle Attribute zurückgeliefert werden.
- Geltungsbereich
- Gibt den Geltungsbereich der Suche an, der entweder »base« (für eine Basisobjekt-Suche), »one« (für eine einstufige Suche) oder »sub« (für eine Unterbaum-Suche) sein kann. Falls nicht angegeben, wird »base« angenommen.
- filter
- Gibt den Suchfilter an (Teilmenge der zurückzuliefernden Einträge). Falls nicht angegeben, sollen alle Einträge zurückgeliefert werden. Siehe
- Erweiterungen
- Eine Kommata-getrennte Liste von Typ=Wert-Paaren, wobei der =Wert-Anteil bei Optionen, die diesen nicht benötigen, entfallen kann. Eine Erweiterung, der »!« vorangestellt ist, ist kritisch (sie muss für die Gültigkeit unterstützt werden), andernfalls ist sie nicht kritisch (optional).
ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=USUm nur das Postadressen-Attribut zu erhalten, fordern Sie Folgendes an:
ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddressUm einen host.com am Port 6666 nach Informationen über die Person mit dem allgemeinen Namen (cn) »Babs Jensen« an der Universität von Michigan zu fragen, fordern Sie Folgendes an:
ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)wais - Weitbereichs-Informations-Server wais:// Rechnerport/Datenbank
Zeichenkodierung
URIs verwenden eine begrenzte Anzahl von Zeichen, so dass sie in einer Vielzahl von Situationen eingegeben und verwandt werden können. Die folgenden Zeichen sind reserviert. Dies bedeutet, dass sie in einer URI erscheinen dürfen, ihr Einsatz aber auf ihren reservierten Zweck beschränkt ist (Daten, die dazu in Konflikt stehen, müssen maskiert werden, bevor sie in einer URI auftauchen):-
; / ? : @ & = + $ ,
-
- _ . ! ~ * ' ( )
- (1)
- Übersetzen der Zeichenabfolge in UTF-8 (IETF RFC 3629)–siehe utf-8(7)–und dann
- (2)
- Verwendung des URI-Maskierungsmechanismus, d.h. die Verwendung der %HH-Kodierung für unsichere Oktetts.
Schreiben einer URI
Beim Aufschreiben von URLs sollten diese innerhalb doppelter englischer Anführungszeichen (z.B. "http://www.kernel.org"), in spitze Klammern eingeschlossen (z.B. <http://lwn.net>) oder frei auf einer einzelnen Zeile angegeben werden. Eine Warnung an alle, die in englischen Texten doppelte englische Anführungszeichen verwenden: Packen Sie niemals überflüssige Satzzeichen (wie einen Satzpunkt, der einen Satz beendet oder ein Komma in einer Liste) innerhalb der URI, da dies den Wert der URI ändert. Verwenden Sie stattdessen spitze Klammern oder wechseln Sie auf ein Zitiersystem, das niemals überflüssige Zeichen innerhalb der Anführungszeichen verwendet. Diese anderen Systeme, die in der englischen Literatur als »new« (neue) oder »logical« (logische) Zitiersysteme von »Hart's Rules« und dem »Oxford Dictionary for Writers and Editors« genannt werden, wird in Großbritannien und vielen europäischen Sprachen der Vorzug gegeben. Ältere Dokumente empfahlen, der URI den Text »URL:« voranzustellen, aber diese Form hat keine Anhänger gefunden. Die URI-Syntax wurde entwickelt, um eindeutig zu sein. Als URIs aber Gemeingut wurden, haben traditionelle Medien (Fehrnsehen, Radio, Zeitungen, Werbeplakate usw.) zunehmend abgekürzte URI-Referenzen verwandt, die nur aus den Anteilen der Autorität und dem Pfadabschnitt der identifizierten Ressource bestehen (z.B. <www.w3.org/Addressing>). Solche Referenzen sind primär zur menschlichen Auswertung (statt durch Maschinen) gedacht, unter der Annahme, dass Kontext-basierte Heuristiken ausreichen, um die URI zu vervollständigen (z.B. wird bei Rechnernamen, die mit »www« anfangen, angenommen, dass das URI-Präfix »http://« ist und bei Rechnernamen, die mit »ftp« anfangen, dass sie das Präfix »ftp://« haben). Viele Client-Implementierungen lösen diese Referenzen heuristisch auf. Solche Heuristiken können sich im Laufe der Zeit ändern, insbesondere wenn neue Schemata eingeführt werden. Da eine abgekürzte URI die gleiche Syntax wie ein relativer URI-Pfad hat, können abgekürzte URI-Referenzen nicht an Stellen eingesetzt werden, an denen relative URIs erlaubt sind, und können nur verwandt werden, wenn es keine definierte Basis gibt (wie in Dialog-Elementen). Verwenden Sie abgekürzte URIs nicht als Hypertext-Links innerhalb eines Dokuments, verwenden Sie das hier beschriebene Standardformat.STANDARDS
(IETF RFC 2396) (HTML 4.0)ANMERKUNGEN
Jedes Werkzeug auf einem Linux-System, das URIs akzeptiert (z.B. ein Web-Browser), sollte in der Lage sein, alle hier beschriebenen Schemata (direkt oder indirekt) zu handhaben, einschließlich der Schemata man: und info:. Werden hierzu andere Programme aufgerufen, ist dies ausreichend und in der Tat sogar erwünscht. Technisch ist das Fragment kein Teil der URI. Für Informationen, wie URIs (einschließlich URLs) in ein Datenformat eingebettet werden, siehe die Dokumentation des jeweiligen Formats. HTML verwendet das Format <A HREF=" URI"> Text </A>. Texinfo-Dateien verwenden das Format @uref{ uri}. Man und Mdoc haben kürzlich das Makro »UR« hinzugefügt - alternativ fügen Sie die URI einfach in den Text ein (Anzeigeprogramme sollten in der Lage sein, das »://« als Teil einer URI zu erkennen). Die GNOME- und KDE-Desktop-Umgebungen unterscheiden sich derzeit in den URIs, die sie akzeptieren, insbesondere in ihren jeweiligen Hilfe-Browsern. Um Handbuchseiten aufzulisten, verwendet GNOME <toc:man>, während KDE <man:(index)> verwendet, und um Info-Seiten aufzulisten, verwendet GNOME <toc:info>, während KDE <info:(dir)> verwendet (der Autor dieser Handbuchseite bevorzugt hier den KDE-Ansatz, obwohl ein noch regelmäßigeres Format noch besser wäre). Im Allgemeinen verwendet KDE <file:/cgi-bin/> als Präfix, um eine Gruppe von erstellten Dateien einzustellen. KDE bevorzugt Dokumentation in HTML, auf die mittels <file:/cgi-bin/helpindex> zugegriffen wird. GNOME bevorzugt das Ghelp-Schema, um Dokumentation zu speichern und zu finden. Zum Zeitpunkt der Erstellung dieses Textes kann keiner der Browser mit file:-Referenzen auf Verzeichnisse umgehen, wodurch es schwierig wird, sich auf ein ganzes Verzeichnis mit einer durchsuchbaren URI zu beziehen. Wie oben angegeben, unterscheiden sich diese Umgebungen darin, wie sie das info:-Schema handhaben, was wahrscheinlich der größte Unterschied ist. Es wird erwartet, dass GNOME und KDE zu einem gemeinsamen URI-Format zusammenfinden, und das zukünftige Versionen dieser Handbuchseite das zusammengeführte Ergebnis beschreiben. Wir begrüßen alle Bemühungen, die die Zusammenführung unterstützen.Sicherheit
Eine URI an sich stellt kein Sicherheitsproblem dar. Es gibt keine allgemeine Garantie, dass eine URL, die sich zu einem Zeitpunkt unter einer bestimmten Ressource befand, dies auch weiterhin tut. Noch gibt es eine Garantie, dass eine URL nicht eine andere Ressource zu einem späteren Zeitpunkt verortet. Diese Garantien können nur von der oder den Person(en) erhalten werden, die den Namensraum und die in Frage stehende Ressource kontrollieren. Manchmal ist es möglich, eine URL zu konstruieren, so dass ein Versuch, etwas anscheinend Harmloses durchzuführen, wie den Abruf eines einer Ressource zugeordneten Objektes, tatsächlich zu einer möglicherweise beschädigenden Aktion auf dem fernen Rechner führen kann. Die unsichere URL ist oft so konstruiert, dass sie eine Port-Nummer enthält, die sich von der unterscheidet, die für das in Frage kommende Netzwerkprotokoll reserviert ist. Der Client nimmt dann unbeabsichtigt Kontakt zu einer Site auf, die tatsächlich ein anderes Protokoll ausführt. Der Inhalt der URL enthält Anweisungen, die zu einer unbeabsichtigten Aktion führen, wenn sie gemäß dieses anderen Protokolls interpretiert werden. Ein Beispiel war eine Gopher-URL, die zu einer ungewollten und jemand anders vorgebenden Nachricht führte, die über einen SMTP-Server versandt wurde. Wird eine URL verwandt, die eine Port-Nummer verwendet, die sich von der Vorgabe für das Protokoll unterscheidet, sollte aufgepasst werden, insbesondere wenn es eine Nummer innerhalb des reservierten Bereichs ist. Wenn eine URI maskierte Begrenzungen für ein angegebenes Protokoll enthält (beispielsweise CR- und LF-Zeichen für das Telnet-Protokoll), sollte Vorsicht walten gelassen werden, dass diese Maskierung vor der Übertragung nicht aufgehoben wird. Dies könnte das Protokoll verletzen, aber vermeidet die Möglichkeit, dass solche Zeichen dazu verwandt werden, eine zusätzliche Aktion oder einen zusätzlichen Parameter in diesem Protokoll zu simulieren, der zur Ausführung von unerwarteten und möglicherweise schädigenden Aktionen führen kann. Es ist eindeutig eine sehr schlechte Idee, eine URI zu verwenden, die geheim zu haltende Passwörter enthält. Es wird insbesondere dringend davon abgeraten, Passwörter in der Komponente »userinfo« zu verwenden, außer in den sehr seltenen Fällen, bei denen eine Veröffentlichung des Parameters »password« gewünscht ist.FEHLER
Dokumentation kann an beliebigen Orten abgelegt werden, daher gibt es derzeit kein gutes URI-Schema für allgemeine Online-Dokumentation in beliebigen Formaten. Referenzen der Form <file:///usr/doc/ZZZ> funktionieren nicht, da verschiedene Distributionen und lokale Installationsanforderungen Dateien in verschiedenen Verzeichnissen ablegen könnten (sie könnten in »/usr/doc«, »/usr/local/doc«, »/usr/share« oder ganz woanders liegen). Auch ändert sich das Verzeichnis normalerweise, wenn sich die Version ändert (obwohl die Verwendung von Globbing das im Allgemeinen vermeiden könnte). Schließlich erlaubt das file:-Schema keine leichte Unterstützung für Leute, die Dokumentation dynamisch aus dem Internet laden (anstatt der Ablage der Dateien auf einem lokalen System). Es könnte zukünftig ein URI-Schema hinzugefügt werden (z.B. »userdoc:«), um es Programmen zu erlauben, Kreuzreferenzen auf detailliertere Dokumentation aufzunehmen, ohne den genauen Ablageort dieser Dokumentation zu kennen. Alternativ könnte eine zukünftige Version der Dateisystemspezifikation Dateiorte ausreichend festlegen, so dass das file:-Schema in der Lage ist, Dokumentation zu verorten. Viele Programme und Dateiformate enthalten keine Möglichkeit, Links mittels URIs aufzunehmen oder zu integrieren. Viele Programme können alle diese verschiedenen URI-Formate nicht handhaben. Es sollte einen Standardmechanismus geben, um eine beliebige URI zu laden, der dann automatisch die Umgebung des Benutzers erkennt (z.B. Text oder graphisch, Desktop-Umgebung, lokale Benutzervoreinstellungen und aktuell ausgeführte Werkzeuge) und das richtige Werkzeug für jede URI aufruft.SIEHE AUCH
lynx(1), man2html(1), mailaddr(7), utf-8(7) IETF RFC 2255ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <[email protected]> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer5. Februar 2023 | Linux man-pages 6.03 |