Pingback 1.0

Link: http://hixie.ch/specs/pingback/pingback-1.0

© Copyright 2002 Stuart Langridge in Ian Hickson.

Povzetek

Pingback je metoda za spletne avtorji na zahtevo obvestilo, ko nekdo povezave do enega od svojih dokumentov. Značilno je, da spletno založništvo programske opreme, bo samodejno obvesti zadevne stranke, v imenu uporabnika, ki omogoča možnost samodejno ustvarjanje povezav do nanašajo dokumentov.

Na primer, Alice piše zanimiv članek na svoji Spletni dnevnik. Bob nato prebere ta članek in komentarji o tem, povezavo nazaj na Alice ‚ s original post. Uporaba pingback, Bob programska oprema lahko samodejno obvesti, Alice, da je njena objava je bila povezana, in Alice je programska oprema, lahko pa so to informacije, na njeno mesto.

Status Tega Dokumenta

To je stabilna specifikacija. Komentarji so dobrodošli na blogite poštni seznam, (arhiviranih).

Trenutno je šest znanih ločene izvedbe te specifikacije, čeprav ni formalno testiranje je bilo opravljeno, da preveri, kako skladni so:

  • Simon Willison je Spletni dnevnik (napoved)
  • Stuart Langridge je Spletni dnevnik (napoved)
  • Nicholas Avenell je Epistula (napoved, vir)
  • Michel Valdrighi je b2 (domača stran)
  • Ian Hickson je Spletni dnevnik (vir)
  • Ian Hickson je Pingback posredniški strežniki (vir)

Avtorji so vabljeni, da pingback http://www.hixie.ch/specs/pingback/pingback v register njihove implementacije.

na Voljo jezikov

Angleška različica te specifikacije je le normativni različico. Vendar pa za prevod tega dokumenta, glej http://www.hixie.ch/specs/pingback/translations/. Trenutno so na voljo prevodi so:

Errata

Ta oddelek je bil dodan po končni datum objave specifikacija.

(2007-01-16), da bi se izognili dovzetnost za napadi za zavrnitev storitve, pingback strežnikov, ki pridobi določeno izvorni dokument (kot je opisano v točki 3) so pozvali, da omeji velikost izvirnega dokumenta, da je treba preučiti in hitrost prenosa podatkov. Hvala za Blake Matheny za vložitev to vprašanje našo pozornost.

Vsebina

  • 1. Uvod
    • 1.1. Tehnične Podrobnosti
    • 1.2. Opredelitve pojmov
  • 2. Strežnik Samodejno Zaznavanje
    • 2.1. Naslove HTTP,
    • 2.2. Povezavo Element
    • 2.3. Samodejno zaznavanje Algoritem
  • 3. XML-RPC Vmesnik
  • 4. Skladnost Zahtev
  • 5. Primer,
  • A. Reference

1. Uvod

V pingback sistem je način za blog, da se samodejno obvesti, ko drugih Spletnih strani povezave do nje. To je popolnoma transparentno s povezovanjem avtorja, ki ne zahtevajo posredovanje uporabnika, da deluje, in deluje na načelih samodejno odkrivanje vsega, kar mora vedeti. vzorec blog post, ki vključujejo pingback lahko gredo, kot je ta:

  1. Alice objav na svojem blogu. Post je‘, ki vključuje povezavo na prispevek na Bob ‚ s blog.
  2. Alice blogging sistem imenik Bob je blogging sistem in pravi: „poglej, Alice naredili post, ki je povezana z eno od vaših objav“.
  3. Bob je blogging sistem pa vsebuje povezavo nazaj na Alice post na svoje prvotno mesto.
  4. Reader ‚ Bob ‚ člena lahko sledite tej povezavi Alice post, da se glasi njeno mnenje.

Omogoča povratne povezovanje — način, da bi šel nazaj gor verige povezav, namesto da bi samo vrtanje navzdol.

1.1. Tehnične Podrobnosti

V pingback mehanizem uporablja naslove HTTP in HTML ali XHTML <link> element za samodejno zaznavanje in uporablja enotno XML-RPC klic za obveščanje ciljna stran za povezavo na izvorno mesto.

Je predvideno, da compliant pingback stranke in pingback strežnikov implementable z minimalnim naporom uporabo knjižnice, ki so običajno na voljo v CGI okoljih. Zaradi tega so zahteve o razčlenjevanju glave HTTP in HTML dokumenti so zmanjšane na minimum.

1.2. Opredelitve pojmov

vir URI

naslov vpis na spletno stran, ki vsebuje povezavo.pingback odjemalecprogramska oprema, ki vzpostavi povezavo obvestiti strežnik, o povezavi iz vira do cilja. Značilno je, da je vir bo naročnik.pingback-omogočen virdokumenta, slike ali drugih virov, ki oglašuje pingback strežnik z uporabo pingback HTTP header ali pingback link element.pingback serverprogramska oprema, ki sprejema XML-RPC povezave. Značilno je, da je cilj URI bo povezana s strežnikom (npr. na istem gostitelju).pingback uporabniški agentenotni sistem, ki je tako pingback odjemalca in pingback strežnik.cilj URIcilj povezave na izvorno mesto. To BI moralo biti pingback-omogočeno strani.Ključne besede „MORA“, „NE sme“, „POTREBNA“, „NE“, „NE“, „NAJ bi“, „NE BI smel“, „PRIPOROČENE“, „LAHKO“, „OPTIONAL“ v tem dokumentu se ne sme razlagati, kot je opisano v poglavju [RFC 2119].

2. Strežnik samodejno zaznavanje

Obstajata dva mehanizma za avtomatsko odkrivanje pingback strežniki: HTML (ali XHTML) <link> elementi in HTTP glave. pingback-omogočen vir MORA biti vročena s X-Pingback HTTP header ali vsebujejo <link> element ali oboje. Pingback-omogočen HTML in XHTML strani MORA biti veljaven. Stranke LAHKO zavrne iskanje neveljavna strani za pingback informacije.

Upoštevajte, da kako stranko, je povedal vir in cilj Uri je iz področja uporabe te specifikacije. Običajno blogov, se bo izločila zunanje povezave iz objav je najti cilj Uri.

2.1. Naslove HTTP,

Pingback-omogočen viri LAHKO vrnil s X-Pingback HTTP glavi. Na primer, PNG slika postregli z naslednjimi glave bi pingback-omogočeno:

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...

Vrednost X-Pingback glava MORA biti absolutno URI pingback XML-RPC strežnik.

Strani, ki NE sme vsebovati več kot en tak glavi. HTML in XHTML dokumentov LAHKO vključujejo <link> element poleg naslove HTTP, čeprav to ni odvrnilo. Če je vključena, se glava NAJ imajo popolnoma enako, kot je vrednost <link> element. V primeru neskladja, naslove HTTP, ki SE prepišejo<link> element, vendar pa avtorji morajo zavedati, da nekatere stranke ne bo obravnavala HTTP glave zaradi omejitve njihovega okolja.

Pingback-omogočen sredstev NE sme uporabljati HTTP link header za oglaševanje pingback strežnikov. HTTP link header zahtevajo trivialno razčlenjevanje, in so se zato šteje, preveč težka za namene pingback strežnik samodejno zaznavanje.

2.2. Link Element

HTML ali XHTML pingback-enabled page LAHKO vsebuje tudi <link> element v eno izmed naslednjih dveh oblik:

HTML
<link rel="pingback" href="pingback server">

XHTML

<link rel="pingback" href="pingback server" />

Če se uporablja, povezavo elementa se MORA ujemati ustrezen obrazec natančno (vključno s presledki pred poševnico, na primer).

Strani, ki NE sme vsebovati več kot en tak element, in NE sme vsebovati tak niz ujemanje vzorec opisano spodaj, razen če je namenjen za povezavo elementa.

pingback server ograda MORA biti nadomesti z absolutno URI pingback XML-RPC strežnik. Tej URI NE sme vsebovati subjekti, razen &amp;, &lt;, &gt; in &quot;. Drugih znakov, ki jih ne bi bilo veljavno v HTML dokumenta, ali pa, da ne more biti zastopana v dokumenta kodiranje znakov MORA biti pobegnil s %xx mehanizem, kot je opisano v [RFC2396].

Te stroge zahteve, ki so namenjene za drastično zmanjšanje zahtev na stranke, izvajanje strežnik samodejno zaznavanje, kot je bilo šteje, da je zahteva stranke za izvajanje HTML parser poleg XML parser je bil preveč težko breme, glede na to, kako enostavno bi bilo za strani avtorjev upoštevati omejitve, opisane zgoraj.

2.3. Samodejno zaznavanje Algoritem

Pingback stranke, glede na vir URI in cilj URI, MORA puščati cilj URI in sledite naslednjim korakom, da bi našli pravi strežnik URI.

  1. Preuči HTTP glave odgovora. Če obstajajo X-Pingback glave nato prva taka glava je vrednost bi morala biti uporabljena kot pingback strežnik URI. Odjemalci MORAJO preučiti, naslove HTTP, če so sposobni. Če iz nekega razloga naslove HTTP, ki niso na voljo za izvajanje potem ta korak LAHKO preskočite, vendar pa organizacijah se morajo zavedati, da s tem se bo zmanjšala uporabnost njihova uporaba kot povezavo elementov ni mogoče uporabiti za vire, ki niso niti HTML niti XHTML, in glave HTTP so opredeljeni če želite preglasiti povezavo elementov, ko so se razlikujejo.
  2. kako Drugače, iskanje podjetje telo za prvo tekmo naslednji regularni izraz:
    <link rel="pingback" href="([^"]+)" ?/?>
  3. Če se regularni izraz ujema, odjemalci MORAJO nato še štiri dovoljeno subjekti (&amp; za &, &lt; za <, &gt; za > in &quot; za ").

Ob citat to pingback strežnik URI, ga je treba uporabiti na pošiljanje XML-RPC zahtevo kot je opisano spodaj.

Če ni X-Pingback glave in regularni izraz ne ujema, potem cilj v vprašanje ne podpira pingback kot je opredeljeno s to specifikacijo, naročnik pa LAHKO stori vse, kar je všeč. Vendar pa je PRIPOROČLJIVO, da stranke, ne poskušajte biti bolj prizanesljiva (npr. s pravilno razčlenjevanje HTML in iščejo <link> elementi, ki izgledajo kot pingback povezave iz HTML vidika), saj bo to privedlo do nekaterih sistemih, ki priznavajo povezavo in drugi ignorirajo.

Stranke LAHKO optimizacijo iskanje. Na primer:

  • naročnik LAHKO initally samo pošiljanje HTTP GLAVO zahtevo, v upanju, da glava bo mogoče najti in vsebine ne bo imel, da je treba zajeti.
  • Od <link> elementov, lahko pa se pojavijo le v head, stranke LAHKO prekinitvi, ko strune </head> ali <body>, ki so videli (npr. če odjemalec bere vsebino eno vrstico naenkrat).
  • Ker pingback povezave so najbolj verjetno, da se pojavijo na vrhu dokumenta, stranke LAHKO prekiniti iskanje po opravljenem določen prag. Stranke LAHKO podobno uporabite HTTP Content-Range glavi le prinesi prvih nekaj kilobajtov ciljne URI.

Upoštevajte, da te optimizacije, so nagnjeni k ujete iz zakonitih dokumentov, na primer tiste, ki so komentarji, ki vsebujejo nize, navedenih zgoraj, ali tisti z veliko inline predloge, ki se pojavljajo pred pingback povezavo. Avtorji so vabljeni, da te mogoče optimizacije, se upoštevajo pri odločanju o tem, kam postaviti svoje pingback povezave.

3. XML-RPC Vmesnik

Pingback stranke, ki imajo odkril pravi server, MORA poslati v strežnik XML-RPC zahtevo z metodo ime pingback.ping in dva argumenta, vir URI in ciljno URI oz. [XML-RPC]

pingback.ping

Obvesti strežnika za povezavo, ki je bil dodan sourceURI, kaže na targetURI.

Parametrov
sourceURI tipa string

absolutno URI post na izvorni strani, ki vsebujejo povezavo do ciljne strani.targetURI tipa stringabsolutno URI cilj povezave, kot je navedena na izvorni strani.Vrne Vrednoststring, kot je opisano spodaj.NapakČe se napaka pogoj nastopi, nato ustrezen koda napake iz naslednjega seznama je treba uporabiti. Stranke lahko hitro določite vrsto napak, od bitov 5-8. 0×001x kode napak se uporabljajo za težave z izvorno URI, 0×002x kode so za težave s ciljno URI, 0×003x kode so uporabljali pri Uri so v redu, ampak pingback ne morejo biti priznana za nekatere druge reaon.

0

splošno koda napake. Strežniki LAHKO uporabite to kodo napake, namesto katerega koli od drugih, če nimajo način za določanje pravilne kode okvar.0×0010 (16)vir URI ne obstaja.0×0011 (17)vir URI ne vsebuje povezavo do cilja URI, in zato ne more biti uporabljena kot vir.0×0020 (32)navedeni cilj URI ne obstaja. Ta se sme uporabiti le, ko ciljni zagotovo ne obstaja, namesto da bi, ko ciljni lahko obstajajo, vendar se ne pripozna. Glejte naslednji napaka.0×0021 (33)navedeni cilj URI ne more biti uporabljena kot cilj. Bodisi ne obstaja ali pa ni pingback-omogočen virov. Na primer, na blogu, po navadi le permalinks so pingback omogočeno, in poskušajo pingback domačo stran ali niz delovnih mest, ne bo uspela s to napako.0×0030 (48)pingback že registrirana.0×0031 (49)Dostop zavrnjen.0×0032 (50)strežnik ni mogel komunicirati s strežnikom server, ali je prejel napako iz pridobivalnega strežnik, in zato ni mogel dokončati zahtevo. To je podobno, kot da ‚ HTTP 402 Slabo Prehod napako. Ta napaka je treba uporabiti za pingback pooblaščenci, ko razmnoževanje napake.Poleg tega, [FaultCodes] določa nekatere običajne kode napak, ki strežniki LAHKO uporabite za poročilo višjo stopnjo napake.

Strežniki MORAJO odgovoriti na ta klic funkcije bodisi z enim niz ali koda napake.

Če pingback zahtevo je uspešen, potem vrnitev vrednost MORA biti enoten niz, ki vsebuje toliko informacij, kot strežnik meni, da je koristna. Ta niz je le pričakuje, da bodo uporabljene za razhroščevalne namene.

Če rezultat ni uspešen, potem strežnik MORA odgovoriti z RPC krivda vrednost. Krivda mora biti koda eno kode, ki so navedene zgoraj, ali splošne koda napake nič, če je strežnik ne more določiti ustrezno kodo napake.

Stranke LAHKO prezrete in vrne vrednost, ne glede na zahtevo, ki je bila uspešna ali ne. PRIPOROČLJIVO je, da stranke ne kažejo rezultat uspešnih prijav za uporabnika.

Po prejemu zahteve, strežniki LAHKO delajo, kar jim je všeč. Vendar, naslednji koraki so PRIPOROČLJIVO:

  1. strežnik LAHKO poskus, da se pridobi vir URI, da se preveri, da je vir dejansko povezavo do cilja.
  2. strežnik LAHKO preverite svoje lastne podatke in si zagotovite, da cilj obstaja in je vnos veljaven.
  3. strežnik LAHKO preverite, da pingback še ni bila registrirana.
  4. strežnik LAHKO posnamete pingback.
  5. strežniku, se LAHKO obnovi strani (če strani so statične).

4. Skladnost Zahtev

Zahtevek skladnosti s to specifikacijo a pingback odjemalec, MORA podpirati strežnik samodejno zaznavanje kot je opisano v tej specifikaciji in MORA pravilno pošlji pingback XML-RPC klice.

Zahtevek skladnosti s to specifikacijo a pingback server, MORA biti sposoben sprejeti pingback XML-RPC klice in MORA vedno vrne rezultate, ki ustrezajo dovoli vrnitev vrednosti. Vračanje je podroben (ničelno) napaka kode ni obvezen.

Upoštevajte, da nekatere pingback strežniki morda ne so povezane strani. Na primer, pingback strežnik prehoda je lahko samostojna in druge strani, ki bi nato uporabite povezavo element za povezavo na ta prehod strežnik namesto, ki zagotavlja strežnik svoje. Zahtevek skladnosti s to specifikacijo a pingback-omogočen vir, MORA imeti bodisi HTTP X-Pingback header ali link element omogoči, za strežnik samodejno zaznavanje.

Zahtevek skladnosti s to specifikacijo a pingback uporabniški agent, MORA podpirati strežnik samodejno zaznavanje kot je opisano v tej specifikaciji, MORA pravilno pošlji pingback XML-RPC klice, MORA biti sposoben sprejeti pingback XML-RPC klice, MORA vedno vrne rezultate, ki ustrezajo dovoli vrnitev vrednosti (vračanje podroben (ničelno) kode napak je NEOBVEZNO), in MORA imeti bodisi HTTP X-Pingback header ali link element na vse možne ciljne strani, da se omogoči strežnik samodejno zaznavanje.

5. Primer

Tukaj je bolj podrobno pogledate, kaj se lahko zgodi med Alice in Bob med na primer opisano v uvod.

  1. Alice objav na svojem blogu. Post je‘, ki vključuje povezavo na prispevek na Bob ‚ s blog. Permalink za Alice je novo delovno mesto je http://alice.example.org/#p123, in URL povezavo do Bob ‚ s blog je http://bob.example.net/#foo.
  2. Alice blogging sistem razčleni vse zunanje povezave iz Alice post, in ugotovi, http://bob.example.net/#foo.
  3. Je nato zahteva prvih 5 kb strani je navedeno, da za povezavo.
  4. izgleda za X-Pingback glave, ampak ne uspe najti.
  5. skenira tej strani košček za pingback povezavo oznako, ki jo ugotovi:
    <povezava rel="pingback" href="http://bob.example.net/xmlrpcserver">

    Če te oznake ni bil iz strani, nato Bob ‚ s blog ne bi bilo podporo pingback, tako Alice programske opreme, bi imeli tukaj (premikanje na naslednjo povezavo najdemo v korak 2).

  6. Next, ker povezavo je je, da izvede naslednje XML-RPC razpis za http://bob.example.net/xmlrpcserver:
    pingback.ping('http://alice.example.org/#p123', 'http://bob.example.net/#foo')
  7. Alice blogging sistem ponovi korak 3 do 6 za vsako zunanjo povezavo, ki je bilo ugotovljeno v post.

Tam se konča delo, ki se izvaja z Alice sistem. Ostalo delo se izvaja tako, Bob ‚ s blog.

  1. Bob ’s blog prejme ping od Alice‘ s blog (ping poslana v 6. korak zgoraj), imenovanje http://alice.example.org/#p123 (stran s povezavami na Bob) inhttp://bob.example.net/#foo (stran Alice povezana).
  2. Bob ‚ s blog potrjuje, da http://bob.example.net/#foo je v resnici post na tem blogu.
  3. nato zahteva, da vsebino http://alice.example.org/#p123 in preveri Vsebino-Vrsta subjekta, vrne, se prepričajte, da je besedilo neke vrste.
  4. To preveri, da ta vsebina dejansko vsebujejo povezavo do http://bob.example.net/#foo (da se prepreči neželena pošta za pingbacks).
  5. Bob ‚ s blog tudi pridobi druge podatke, ki jih potrebujete iz vsebine Alice novo delovno mesto, kot je stran naslov, izvleček vsebine strani, ki obdaja povezavo do Bob je post, vse lastnosti, ki označuje, kateri jezik je stran, in tako naprej.
  6. Končno, Bob ‚ s post evidence pingback v svoji zbirki, in obnavlja statične strani, ki se nanašajo na Bob delovno mesto tako, da jih omenjam pingback.

A. Reference

[RFC 2119]

Key words for use in RFCs to Indicate Requirement Levels, S. Bradner. IETF, Marec 1997. RFC 2119 je na voljo na http://www.normos.org/ietf/rfc/rfc2119.txt.

[RFC 2396]Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding, L. Masinter. IETF, avgust 1998. RFC 2396 je na voljo na http://www.normos.org/ietf/rfc/rfc2396.txt

[XML-RPC]XML-RPC Specification, D. Winer. UserLand Programske Opreme, Inc, Junij 1999. XML-RPC je na voljo na http://www.xmlrpc.com/spec

[FaultCodes]Specification for Fault Code Interoperability, D. Libby, et al. Maja 2001. Specifikacije za Kode okvar Interoperabilnosti, ki je na voljo na http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php