Bei diesem Dokument handelt es sich um eine deutsche Übersetzung, die urheberrechtlich geschützt ist; bitte beachten Sie auch etwaige Hinweise des Originaldokuments. Das in allen Zweifelsfällen maßgebliche Dokument ist das englische Original.
Bitte senden Sie Fehler und Korrekturen zur deutschen Fassung an den Übersetzer. Kommentare des Übersetzers, die als solche gekennzeichnet sind, unterliegen dem Urheberrecht des Übersetzers. Sie sind kein Bestandteil des Ursprungsdokuments.
© Copyright 2002 Stuart Langridge und Ian Hickson.
Pingback ist eine Methode für Webautoren, Nachricht zu erhalten, wenn jemand auf eines ihrer Dokumente verlinkt. Üblicherweise kann anstelle des Benutzers entsprechende Webveröffentlichungssoftware die betroffenen Parteien informieren, was es ermöglicht, automatisch Links zu den verweisenden Seiten zu erstellen.
Beispiel: Bob schreibt einen interessanten Artikel in seinem Weblog. Alice liest diesen Artikel und kommentiert ihn, wobei sie zurück auf Bobs ursprünglichen Eintrag verlinkt. Über Pingback kann Alice’ Software Bob automatisch benachrichtigen, dass auf seinen Beitrag verlinkt wurde, und Bobs Software kann diese Information daraufhin auch auf seiner Website verwenden.
Dies ist eine stabile Spezifikation. Kommentare werden auf der Blogite-Mailingliste (Archiv) entgegengenommen.
Es gibt derzeit sechs bekannte und separate Implementierungen dieser Spezifikation, obwohl keine formalen Tests durchgeführt wurden, um zu prüfen, wie konform diese sind:
Autoren werden angeregt, http://www.hixie.ch/specs/pingback/pingback
zu »pingbacken«, um ihre Implementierungen anzumelden.
Die englische Version dieser Spezifikation ist die einzig normative Version. Beachten Sie jedoch http://www.hixie.ch/specs/pingback/translations/ für Übersetzungen dieses Dokuments. Derzeit verfügbar ist:
Das Pingback-System bietet für ein Blog eine Möglichkeit, automatisch benachrichtigt zu werden, wenn andere Websites darauf verlinken. Es ist dabei vollständig transparent für den verlinkenden Autor, erfordert kein Eingreifen des Benutzers und arbeitet auf dem Grundsatz der automatischen Erkennung von allem, was es wissen muss. Ein Beispiel-Szenario, das Pingback einbezieht, kann wie folgt aussehen:
Pingback ermöglicht somit »umgekehrte Verlinkung«.
Der Pingback-Mechanismus verwendet einen HTTP-Header und ein HTML- bzw. XHTML-link
-Element zur Autodiscovery sowie einen einzelnen XML-RPC-Call, um die Zielseite über den Link auf der Quellseite zu benachrichtigen.
Es ist beabsichtigt, dass konforme Pingback-Clients und -Server unter minimalen Anstrengungen implementiert werden können, indem Bibliotheken verwendet werden, die üblicherweise in CGI-Umgebungen verfügbar sind. Aus diesem Grund sind die Anforderungen an das Parsen von HTTP-Headern und HTML-Dokumenten auf ein absolutes Minimum beschränkt worden.
link
-Element verweist.
In dieser Spezifikation sind die Schlüsselwörter »MUSS«, »DARF NICHT«, »NOTWENDIG«, »SOLL«, »SOLL NICHT«, »SOLLTE«, »SOLLTE NICHT«, »EMPFOHLEN«, »DARF« und »OPTIONAL« zu verstehen wie in [RFC 2119] beschrieben.
Es gibt zwei Mechanismen für die automatische Ermittlung (Autodiscovery) von Pingback-Servern: HTML- bzw. XHTML-link
-Elemente und HTTP-Header. Eine pingbackfähige Ressource MUSS entweder mit einem X-Pingback
-HTTP-Header ausgeliefert werden oder ein link
-Element beinhalten (oder beides). Pingbackfähige HTML- und XHTML-Seiten MÜSSEN valid sein – Clients DÜRFEN es ablehnen, invalide Seiten nach Pingback-Daten zu durchsuchen.
Beachten Sie, dass es außerhalb dieser Spezifikation liegt, zu definieren, wie der Client von Quell- und Ziel-URIs erfährt. Üblicherweise werden Blogs die externen Adressen ihrer veröffentlichten Beiträge ermitteln, um deren Ziel-URIs zu bestimmen.
Pingbackfähige Ressourcen DÜRFEN mit einem X-Pingback
-HTTP-Header zurückgegeben werden. So zum Beispiel wäre ein PNG-Bild mit den folgenden Headern pingbackfähig:
HTTP/1.1 200 OK
Date: Sun, 08 Sep 2002 15:05:37 GMT
Server: Apache/1.3.26 (Unix)
Last-Modified: Thu, 28 Dec 2000 03:18:26 GMT
ETag: "65044-15b9c-3a4ab102"
Accept-Ranges: bytes
Content-Length: 88988
Connection: close
Content-Type: image/png
X-Pingback: http://charlie.example.com/pingback/xmlrpc
.PNG …
Der Wert des X-Pingback
-Headers MUSS dem absoluten URI des Pingback-XML-RPC-Servers entsprechen.
Ressourcen DÜRFEN NICHT mehr als einen Header beinhalten. HTML- und XHTML-Dokumente DÜRFEN neben einem HTTP-Header auch ein link
-Element umfassen, obwohl hiervon abgeraten wird; der Header SOLLTE in diesem Fall jedoch denselben Wert wie das link
-Element haben. Sollte eine Diskrepanz vorliegen, SOLL der HTTP-Header Vorrang vor dem link
-Element haben, aber Autoren sollte bewusst sein, dass manche Clients HTTP-Header aufgrund von Einschränkungen ihrer Umgebung nicht verarbeiten können.
Pingbackfähige Ressourcen DÜRFEN NICHT die HTTP-Link
-Header verwenden, um auf Pingback-Server zu verweisen. HTTP-Link
-Header erfordern kein triviales Parsen, und sie werden aus diesem Grund als zu leistungsfähig für die Zwecke der Pingback-Server-Autodiscovery angesehen.
link
-ElementEine pingbackfähige HTML- oder XHTML-Seite DARF ein link
-Element in einer der folgenden zwei Formen beinhalten:
<link rel="pingback" href="pingback server">
<link rel="pingback" href="pingback server" />
Das link
-Element MUSS exakt dieser Form entsprechen, wenn es verwendet wird (also einschließlich des Leerraums vor dem Slash).
Seiten DÜRFEN NICHT mehr als ein solches Element und auch keine Zeichenkette nach dem unten beschriebenen Muster beinhalten, solange es nicht dem link
-Element selbst entsprechen soll.
Der pingback server-Platzhalter MUSS durch den absoluten URI des Pingback-XML-RPC-Servers ersetzt werden. Dieser URI DARF KEINE Entitätsreferenzen außer &
, <
, >
und "
umfassen. Andere Zeichen, die im HTML-Dokument nicht valid wären oder die nicht über die Zeichenkodierung des Dokuments dargestellt werden können, MÜSSEN über den %xx
-Mechanismus maskiert werden, der in [RFC 2396] beschrieben wird.
Diese strikten Maßgaben dienen dazu, die Anforderungen an Clients, die Server-Autodiscovery implementieren, drastisch zu reduzieren. Es wurde als zu hohe Belastung angesehen, von Clients neben dem XML- auch die Implementierung eines zusätzlichen HTML-Parsers zu verlangen, wenn man bedenkt, wie einfach es für Seitenautoren ist, den oben beschriebenen Restriktionen zu folgen.
Pingback-Clients SOLLTEN, wenn Ihnen Quell- und Ziel-URI übergeben werden, den Ziel-URI abrufen und die folgenden Schritte befolgen, um den URI des Pingback-Servers zu ermitteln.
X-Pingback
-Header gibt, sollte der Wert des ersten solchen Headers als Pingback-Server-URI verwendet werden. Clients MÜSSEN die HTTP-Header überprüfen, wenn sie dazu in der Lage sind. Falls aus irgendeinem Grund der Implementierung keine HTTP-Header zur Verfügung stehen, DARF dieser Schritt übersprungen werden – Implementierern sollte jedoch bewusst sein, dass dies die Nützlichkeit ihrer Anwendung reduziert, da link
-Elemente nicht für Ressourcen verwendet werden können, die weder HTML noch XHTML sind, und dass HTTP-Header so definiert wurden, dass sie link
-Elemente nichtig machen, wenn beide unterschiedlich sind.
<link rel="pingback" href="([^"]+)" ?/?>
&
für &
, <
für <
, >
für >
und "
für "
).
Wenn der Pingback-Server-URI ermittelt wurde, SOLLTE dieser verwendet werden, um wie unten beschrieben einen XML-RPC-Request zu senden.
Wenn es keinen X-Pingback
-Header gibt und der reguläre Ausdruck auf nichts zutrifft, unterstützt das betroffene Ziel kein Pingback, wie es in dieser Spezifikation definiert wird, und der Client DARF tun, was er möchte. Es ist jedoch EMPFOHLEN, dass Clients nicht versuchen, noch nachsichtiger zu sein (zum Beispiel, indem das HTML geparst und nach link
-Elementen gesucht wird, die aus HTML-Gesichtspunkten nach Pingback-Links aussehen), da dies zu Systemen führen wird, die einen solchen Link erkennen, und anderen, die ihn ignorieren.
Clients DÜRFEN die Suche optimieren. Beispiele:
X-Pingback
-Header gefunden wird und der Inhalt gar nicht erst abgeholt werden muss.
link
-Elemente nur im Dokumentenkopf verwendet werden dürfen, DÜRFEN Clients abbrechen, wenn auf die Zeichenketten </head>
oder <body>
gestoßen wird (falls Clients den Inhalt zum Beispiel Zeile pro Zeile lesen).
Content-Range
-Header verwenden, um nur die ersten Kilobytes des Ziel-URI anzufordern.
Beachten Sie jedoch, dass diese Verbesserungen dazu neigen, von legitimen Dokumenten überholt zu werden, wenn in diesen zum Beispiel die obigen Zeichenketten auskommentiert wurden oder große interne Stylesheets vor den Pingback-Links erscheinen. Autoren sollten diese möglichen Optimierungen berücksichtigen, wenn es darum geht, wo sie ihre Pingback-Links platzieren sollen.
Pingback-Clients, die einen Pingback-Server ermittelt haben, SOLLTEN diesem einen XML-RPC-Request mit dem Methodennamen pingback.ping
sowie zwei Argumenten senden, nämlich dem Quell- bzw. dem Ziel-URI. [XML-RPC]
pingback.ping
string
string
string
, wie unten beschrieben.
Wenn ein Fehler auftritt, sollte der entsprechende Fehlercode aus der nun folgenden Liste verwendet werden. Clients können aus den Bits 5–8 schnell die Art des Fehlers ermitteln. Die Fehler-Codes 0x001x werden für Probleme mit dem Quell-URI, die Codes 0x002x für Probleme mit dem Ziel-URI und die Codes 0x003x dann gebraucht, wenn die URIs in Ordnung sind, aber der Pingback aus anderen Gründen nicht bestätigt werden kann.
Zusätzlich definiert [FaultCodes] einige Standardfehlermeldungen, die Server verwenden DÜRFEN, um spezifischere Fehler zu melden.
Server MÜSSEN auf diesen Funktionsaufruf antworten, entweder mit einer einzelnen Zeichenkette oder mit einem Fehlercode.
Wenn der Pingback-Request erfolgreich ist, MUSS der Rückgabewert eine einzelne Zeichenkette sein, die so viele Informationen beinhaltet, wie es der Server für nützlich erachtet. Von dieser Kette wird erwartet, dass sie ausschließlich für Debug-Zwecke verwendet wird.
Wenn das Ergebnis nicht erfolgreich ist, MUSS der Server mit einem RPC-Fehlercode antworten. Der Fehlercode sollte entweder einem der oben aufgezählten Codes oder dem generischen Code »Null« entsprechen, wenn der Server keinen angemessen Fehlercode ermitteln kann.
Clients DÜRFEN den Rückgabewert ignorieren, egal ob der Request erfolgreich war oder nicht. Es wird EMPFOHLEN, dass Clients dem Benutzer nicht die Ergebnisse erfolgreicher Requests zeigen.
Nach Empfang eines Request DÜRFEN Server tun, was sie wollen. Es werden jedoch die folgenden Schritte EMPFOHLEN:
Um Konformität zu dieser Spezifikation geltend machen zu können, MUSS ein Pingback-Client Server-Autodiscovery unterstützen, wie es in dieser Spezifikation beschrieben wird, und er MUSS Pingback-XML-RPC-Calls korrekt senden können.
Um Konformität zu dieser Spezifikation geltend machen zu können, MUSS ein Pingback-Server Pingback-XML-RPC-Calls empfangen sowie stets Ergebnisse zurückgeben, die den erlaubten Rückgabewerten entsprechen. Die Rückgabe detaillierterer Fehler-Codes (die nicht Null sind), ist OPTIONAL.
Beachten Sie, dass manche Pingback-Server über keine assoziierten Seiten verfügen. Beispielsweise könnte ein Pingback-Gateway-Server für sich allein (»standalone«) stehen, und andere Seiten würden dann das link
-Element gebrauchen, um zu diesem Gateway-Server zu verlinken, anstatt selbst einen Server anzubieten. Um Konformität zu dieser Spezifikation geltend machen zu können, MUSS eine pingbackfähige Ressource entweder über einen HTTP-X-Pingback
-Header oder ein link
-Element verfügen, um Server-Autodiscovery zu ermöglichen.
Um Konformität zu dieser Spezifikation geltend machen zu können, MUSS ein Pingback-User-Agent Server-Autodiscovery unterstützen, wie es in dieser Spezifikation beschrieben wird, Pingback-XML-RPC-Calls korrekt senden und empfangen können, immer Ergebnisse zurückgeben, die den erlaubten Rückgabewerten entsprechen (wobei die Rückgabe detaillierterer Fehler-Codes, die nicht Null sind, OPTIONAL ist) und entweder über HTTP-X-Pingback
-Header oder ein link
-Element auf allen potentiellen Zielseiten verfügen, um Server-Autodiscovery zu ermöglichen.
Hier folgt ein detaillierterer Blick darauf, was zwischen Alice und Bob während des in der Einleitung beschriebenen Szenarios passieren könnte.
http://alice.example.org/#p123
, und die URL des Links zu Bobs Blog lautet http://bob.example.net/#foo
.
http://bob.example.net/#foo
.
X-Pingback
-Header, findet jedoch keinen.
link
-Element ab, das es schließlich findet:
<link rel="pingback" href="http://bob.example.net/xmlrpcserver">
Wenn die Seite dieses Element nicht beinhaltet hätte, würde Bobs Blog kein Pingback unterstützen, und Alice’ Software hätte an dieser Stelle abgebrochen (woraufhin es beim nächsten in Schritt 2 gefundenen Link weitermachen würde).
link
-Element tatsächlich aber da ist, sendet es anschließend den folgenden XML-RPC-Call an http://bob.example.net/xmlrpcserver
:
pingback.ping('http://alice.example.org/#p123', 'http://bob.example.net/#foo')
An dieser Stelle endet die von Alice’ System durchgeführte Arbeit. Der Rest wird von Bobs Blog ausgeführt.
http://alice.example.org/#p123
(die Seite, die zu Bob verlinkt) und http://bob.example.net/#foo
nennt (die Seite, auf die Alice verlinkt) nennt.
http://bob.example.net/#foo
tatsächlich ein Beitrag in diesem Blog ist.
http://alice.example.org/#p123
an und prüft den Content-Type
der Antwort, um sicherzustellen, dass diese in irgendeiner Form Text beinhaltet.
http://bob.example.net/#foo
beinhaltet (um das »Zuspammen« mit Pingbacks zu verhindern).
Fehler entdeckt? E-Mail an jens@meiert.org.
Du bist hier: Startseite → Publikationen → Pingback 1.0 (Ian Hickson & Stuart Langridge)
Stand: 7. Februar 2007
»Die maschinelle Herstellungsweise […] kennt keinen Misserfolg, sie kennt aber auch keine hervorragenden Leistungen.« – Erich Fromm