Pingback je metoda veb autora koja zahteva obaveštenje kada se neko poveže sa njihovim dokumentom. Tipično, veb izdanja softvera omdah će izvestiti odgovorne strane u koristi korisnika, što omogućava momentalno stvaranje linkova za data dokumenta.
Na primer, Alice napiše interesantan članak na Web logu. Bob onda pročita članak i iskomentariše ga, što je povezivanje na Alice originalni post. Koristeći pingback, Bobov softer može da obavesti Alice automatski da se neko nadovezao na njen post, tako da onda Alice softver može tu informaciju dda uključi na sajt.
__________________________________________________________________________________________________________________________
Ova pingback sistem je način da se Web sites odmah obavesti kada se neki drugilink prikači. Sve to vidi autor tog linka, što ne zahteva nikaku intervenciju od tsrane korisnika, a funkcioniše po principu automatskog otkrivanja bilo čega što se treba znati. Jednsotavan post na blogu uključuje pingback i to može izgeldati ovako:
To vam omogućava unakrsno povezivanje — na ovaj način idete uspravno lestvicom linkova, a ne nizbrdo.
Ovaj pingback mehanizam koristi HTTP header i HTML ili XHTML < link> element za samootkrivanje, i koristi XML-RPC poziv za obaveštavanje ciljnog sajta linka datog izvora.
Namenjen je compliant compliant pingback klijentima i pingback serverima koji se mogu implementirati s malo truda korišćenjem biblioteka koje su tipično dostupne za CGI okruženja. Iz tog razloga, zahtevi za parsiranje HTTP zaglavlja i HTML dokumenata drže se na striktnom minimumu.
Adresa unosa sajta koji sadrži link.
pingback clientSoftver koji uspostavlja konekciju kao informaciju serveru o linku izvora ciljnog bloga. Tipično, izvor će biti klijenat.
pingback-enabled izvorDokument, slika ili drugi izvor koji reklamira pingback server koristeći pingback HTTP header ili pingback link element .
pingback serverSoftver koji dozvoljavaXML-RPC konekciju. Tipično, cilj će biti URI koji je povezan sa serverom (npr. na istom hostu).
pingback korisnički agentJednostrani sistem, koji je i pingback klijent i pingback server.
ciljniURIMeta linka na source sajtu. Ovo bi trebala da bude pingback-enabled stranica..
Ključne reči su "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", i "OPTIONAL" u ovom dokumentu se interpretiraju kako su i opisane u [RFC 2119].
__________________________________________________________________________________________________________________________
Postoje dva mehanizma automatskog otkrivanja pingback servera: HTML (ili XHTML) < link> elementi i HTTP zaglavlja. pingback-omogućeni izvori MORAJU biti ili posluženi sa X-Pingback
HTTP header ili sadržati < link> elemente, ili oba. Pingback-omogućen HTML i XHTML stranice MORAJU biti validne. Klijenti MOGU odbiti da traže nevalidne stranice sa pingback informacijama.
Imajte na umu da kako predstavite klijentu izvor i cilj URI, to je način na koji će ga videti. Uobičajeno su blogovi ti oji će izvući spoljašnje linkove tako da su postovi onda napravljeni kao ciljni URI.
Pingback-omogućeni izvori MOGU biti vraćeni sve zajedno sa X-Pingback
HTTP zaglavljem. Na primer, PNG slika sa sledećim zaglavljem biće pingback-omogućena:
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
zaglavlja MORA biti apsolutno URI pingback XML-RPC servera.
Stranice NE SMEJU DA uključuju više od jednog zaglavlja. HTML i XHTML dokumenti MOGU uključivati < link>
elemente kao dodatak HTTP zaglavlju, iako se ovo ne preporučuje. Ako je uključeno, zaglavlje BI TREBALO DA ima potpuno istu vrednost kao i < link>
element. U slučaju opunomoćja, HTTP zaglavlje BI TREBALO DA veže < link>
element, ipak, autori moraju biti svesni da neki klijenti neće procesuirati HTTP zaglavlja zbog ograničenja okoline.
Pingback-omogućeni izvori NE SMEJU da koriiste HTTP Link
zaglavlje za reklamiranje pingback servera. HTTP Link
zaglavlja zahtevaju ne trivijalni prolaz, i zato su osuđeni na teži proces pingback server samootkrivanja.
HTML ili XHTML pingback-enabled page MOGU da sadrže < link>
elementu jednoj od dve sledeće forme:
HTML
<link rel="pingback" href="pingback server">
XHTML
<link rel="pingback" href="pingback server" />
Ako se koristi, link element MORA da se poklopi sa odgovarajućom formom u potpunosti (uključujući beli prostor pre prekida, na primer).
Stranice NE SMEJU da uključuju više od jednog takvog elementa, i NE SMEJU da uključuju niz koji se poklapa sa onim dole opisanim jedino u slučaju da to nije link element.
Pingback server placeholder MORA biti zamenjen sa apsolutnim URI od pingback XML-RPC serverom. Ovaj URI MORA da uključuje stavke drugačije od than &, <, >, and "
. Drugi karakteri koji nisu validni kod HTML dokumenata ili ne mogu biti predstavljeni kod karaktera dokumenata MORAJU se kodirati pomoću %xx
mehanizma kao što je opisano u [RFC2396].
Ovi striktni zahtevi su napravljeni tako da drstično smanje zahteve klijenata koji primenjuju server povremeno, jer je bilo namenjeno da klijenti primenjuju HTML parser kao dodatak XML parseru, što je bilo veliko opterećenje, uzimajući u obzir koliko je lako autorima ovih stranica da usliše restrikcije koje su opisane gore.
Pingback klijenti, uzimajući u obzir URI ili ciljni URI, TREBALO BI DA pokrenu željeni URI i onda da prate sledeće korake da bi pronašli pingback server URI.
X-Pingback
zaglavlja onda prva takva vrednost zaglavlja bi trebalo da budu korišćena za pingback server URI. Klijenti MORAJU istražiti HTTP zaglavlja ako su to u stanju. Ako iz nekog razloga HTTP zaglavlja nisu dostupna za implementaciju onda ovaj korak MOŽE biti preskočen, ipak, implementacija mora biti svesna da će ovaj korak smanjiti korisnost ove aplikacije kao elementa linka koji se ne mogu koristiti ni kao HTML niti XHTML,i HTTP zaglavlja koja se definišu kao premošćavanje link elementa kada se razlikuju.<link rel="pingback" href="([^"]+)" ?/?>
&
for
&
, <
for <
,
>
for >
, and
"
for "
).
Ako izvuku taj pingback server URI, on BI TREBALO DA se koristi za slanje XML-RPC zahteva kao što je malo niže objašnjeno.
Ako nema X-Pingback
zaglavlja i regularni izrazi se ne poklapaju, onda ciljno pitanje ne podržava pingback kao što je definisano u specifikaciji i klijent MOŽE da uradi sa tim šta god hoće. Ipak, PREPORUČUJE SE da klijent ne pokušava bilo šta napamet (npr. ako pravilno parsira HTML i potraži < link>
elemente koji izgledaju kao pingback linkovi sa HTML tačke gledišta) jer će to dovesti do toga da sistem prepozna link, a da ga drugi ignorišu.
Klijenti MOGU da optimiziraju pretragu. Na primer:
< link>
elementi mogu samo da se pojavljuju u zaglavlju dokumenta, klijenti MOGU da prekinu kada niz < /head>
ili < body>
se pojave (npr. ako klijent čita sadržaj tako da jedan niz po jedan).Content-Range
zaglavlje da nabave prvih nekoliko kilobajta ciljnog URI.Imajte na umu, ipak, da ta poboljšanja imaju za cilj prienu kod legalne dokumentacije, na primer oni koji imaju komentare koji sadrže nizove date gore, ili oni koji imaju drugačije redove sa velikim unutrašnjim nizovima koji se pojavljuju pre pingback linka. Autori se podstiču da odrede te moguće optimizacije kada se odlučuju gde da stave svoje pingback linkove.
__________________________________________________________________________________________________________________________
Pingback klijenti, pošto su otkili pingback server, TREBALO BI DA pošalju server na XML-RPC zahtev sa metodom pingback.ping
i dva argumenta, izvorom URI i ciljnim URI sa druge strane. [XML-RPC]
pingback.ping
obaveštava serverda je link dodat izvoru URI, ukazujući na ciljni URI.
Parameteri
izvorni URI tipnog niza
Apsolutni URI posta na izvornoj stranici koji sdrži link za ciljni sajt.
ciljni URI tipnog niza
Apsolutni URI posta na izvornoj stranici koji sdrži link za ciljni sajt.
Povraćajna vrednost
Niz
, kao što je dle objašnjeno.
Greške
Ako dođe do greške, onda bi trebalo koristiti određe kod za greške sa ove lsite. klijenti ogu lako da utvrde vrstu greške na osnovu bita 5-8. 0×001x kodovi za greške se koriste kada je probem kod izvora URI, 0×002x kodovi su za probleme sa ciljnim URI, i 0×003x kodovi se koriste kada je URI na svom mestu, ali pingback ne može biti priznat iz nekog drugog razloga.
0
Generički kod greške. Serveri MOGU da koriste ovaj kod greške umesto bilo kog drugog koda, ako oni nemaju način da odrede tačan uzrok greške koda.
0×0010 (16)
Izvor URI ne postoji.
0×0011 (17)
Izvor URI ne sadrži link ciljnog URI, i zato se ne može koristiti kao izvor.
0×0020 (32)
Određeni ciljni URI ne postoji. To se samo MORA koristiti kada cilj definitivno ne postoji, pre nego kada cilj mžda postoji, ali nije prepoznat. pogledajte sledeću grešku.
0×0021 (33)
Ciljni URI se ne može koristiti kao meta. Ili ne postoji, ili nije pingback-izvorno omogućen. Na primer, na blogu, određeno samo permalinks su pingback-omogućeni, i pokušavaju da pingback na početnoj stranici, ppstave post, koji neće uspeti da prepozna grešku.
0×0030 (48)
Taj pingback je već registrovan.
0×0031 (49)
Odbijen pristup.
0×0032 (50)
Server ne može da komunicira sa serverom, ili da rimi grešku sa nekog drugogo servera, pa tako ne može ni da upotpuni zahtev. To je slično stanju HTTP 402 Bad Gateway grešci. va greška BI TREBALO DA koristi pingback proxies kada se govori o greškama.
Kao dodatak, [FaultCodes] definiše neke standarde kod standarnih grešaka koje server MOŽE da koristi kao izveštaj kod većeg stepena greške.
Serveri MORAJU da odgovore na ovaj poziv funkcije bilo pomoću jednog niza, ili pomoću greške u nizu.
Ako je pingback zahtev uspešan, onda povratna vrednost MORA biti samo jedinstveni niz, koji sadrži što više informacija što je moguće. Za ovaj niz se očekuje da se može koristiti uspešno, i tako povratna vrednost MORA biti jedinstveni niz koji sadrži što više informacija. Ovaj niz se samo koristi kada je dekodiranje u pitanju.
Ako je server neuspešan onda server mora odgovoriti sa RPC vrednosti greške. Kod greše može biti ili samo jedan od kodova koji su nalistani ovde, ili generički kod nulti ako server nije u stanju da odredi tačan kod greške.
Klijenti MOGU da ignorišu povratnu vrednost, bilo da je zahtev uspešan ili ne. PREPORUČUJE SE da klijenti ne pokazuju rezultate uspešne pretrage klijentima.
Pošto se zahtev dobije, server MOŽE da uradi šta god želi. Ipak, PREPORUČUJU SER sledeći koraci:
__________________________________________________________________________________________________________________________
Da bi se ova specifikacija proglasila komfornom pingback klijent MORA da podržava server samootkrivanje kao što je navedeno u specifikaciji i MORA ispravno da pošalje pingback XML-RPC poziv .
Da bi se ova specifikacija proglasila komfornom pingback server MORA da primi pingback XML-RPC poziv i MORA uvek da vrati vrednost te konfornosti u dozvoljenu vrednost povratnu . Vraćanje detaljne (ne nulte) pozicije greške je OPCIONO.
Imajte na umu da neki pingback serveri nemaju srodne stranice. Na primer, pingback gateway server može da stoji samostalno, pa će druge stranice onda da koriste link elemente da bi se povezale na ovaj gateway server i pre nego da naprave samostalni server. Da bi se proglasio komfor kod ove specifikacije pingback-enabled izvor MORA da ima ili HTTP X-Pingback
header ili link element da bi dozvolio samootkrivanje servera.
Da bi se proglasio komfor kod ove specifikacije pingback user agent MORA da podržava server autodiscovery kao što je naznačeno u spacifikaciji MORA da pravilno šalje pingback XML-RPC pozive , MORA da je u mogućnosti da prima pingback XML-RPC pozive , MORA da uvek uzvraća rezultate tog konforta na dozvoljene povratne vrednosti (vraćanje detaljnog (ne nultog) rkoda greške jeste OPCIJA), i MORA da ima ili HTTP X-Pingback
header ili link element na svim mogućim ciljnim stranicama da bi se dozvolilo samootkrivanje servera.
__________________________________________________________________________________________________________________________
Evo detaljnog pregleda šta se moglo dogoditi sa Alice i Bob za vreme opisanog primera u uvodu.
http://alice.example.org/#p123
, i URL linka ka Bobovom blogu je http://bob.example.net/#foo
.http://bob.example.net/#foo
.X-Pingback
zaglavllje, ali ne nalazi ni jedno.<link rel="pingback" href="http://bob.example.net/xmlrpcserver">
http://bob.example.net/xmlrpcserver:
pingback.ping('http://alice.example.org/#p123', 'http://bob.example.net/#foo')
Tu se završava rad koji je preuzeo Alice sistem. Ostali deo posla odrađuje Bobov blog.
http://alice.example.org/#p123
(sajt povezan sa Bobom) and http://bob.example.net/#foo
(stranica na koju se prikačila Alice).http://bob.example.net/#foo
je zapravo post na ovom blogu. http://alice.example.org/#p123
i proverava Content-Type za sadržajem koji je vraćen da se uveri da je to ista vrsta teksta.http://bob.example.net/#foo
(da bi se sprečilo spamovanje pingbacks).__________________________________________________________________________________________________________________________
Key words for use in RFCs to Indicate Requirement Levels, S. Bradner. IETF, March 1997. RFC 2119 is available at http://www.normos.org/ietf/rfc/rfc2119.txt.
[RFC 2396]Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding, L. Masinter. IETF, August 1998. RFC 2396 is available at http://www.normos.org/ietf/rfc/rfc2396.txt
[XML-RPC]XML-RPC Specification, D. Winer. UserLand Software, Inc, June 1999. XML-RPC is available at http://www.xmlrpc.com/spec
[FaultCodes]Specification for Fault Code Interoperability, D. Libby, et al. May 2001. The Specification for Fault Code Interoperability is available at http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php