Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Pingback 1.0

Apstrakt

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.

__________________________________________________________________________________________________________________________

1. Uvod

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:

  1. Alice postavlja blog. Post može da uključuje link za post na Bobov blog.

  2. Alice blogging sistem kontaktira Bobov blogging sistem i kaže "pogledaj, Alice ima post koji je povezan na jedan od tvojih postova".

  3. Bobov blogging sistem onda uključuje link nazad do Alice postna njegovom originalnom postu.

  4. Oni koji čitaju Bobov članak mogu da prate taj link do Alice post da pročitaju njeno mišljenje.

To vam omogućava unakrsno povezivanje — na ovaj način idete uspravno lestvicom linkova, a ne nizbrdo.

1.1. Tehnički Detalji

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.

1.2. Definicija

izvor URI

Adresa unosa sajta koji sadrži link.

pingback client

Softver koji uspostavlja konekciju kao informaciju serveru o linku izvora ciljnog bloga. Tipično, izvor će biti klijenat.

pingback-enabled izvor

Dokument, slika ili drugi izvor koji reklamira pingback server koristeći pingback HTTP header ili pingback link element .

pingback server

Softver koji dozvoljavaXML-RPC konekciju. Tipično, cilj će biti URI koji je povezan sa serverom (npr. na istom hostu).

pingback korisnički agent

Jednostrani sistem, koji je i pingback klijent i pingback server.

ciljniURI

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

__________________________________________________________________________________________________________________________

2. Samootkrivanje Servera

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.

2.1. HTTP Zaglavlje

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.

2.2. Link Elementi

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.

2.3. Samootkriveni Algoritam

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.

  1. Istražite HTTP zaglavlje za odgovore. Ako postoje bilo koja 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.

  2. U suprotnom, pretražite celo telo za prvo poklapanje sledećeg regularnog izraza:
    <link rel="pingback" href="([^"]+)" ?/?>

  3. Ako regularni izrazi poklapaju, onda klijenti MORAJU da prošire četirir dozvoljene celine(&amp; for &, &lt; for <, &gt; for >, and &quot; 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:

  • Klijenti MOGU da inicijalno pošalju HTTP HEAD zahtev nadajući se da će zaglavlje biti pronađeno i da se neće morati tražiti sadržaj.

  • Pošto < 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).

  • Pošto su pingback linkovi najverovatniji da se pojave blizu vrha dokumenta, klijenti MOGU da prekinu potragu kada pređu određenu veličinu. Slično tome, klijenti MOGU da koriste HTTP 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.

__________________________________________________________________________________________________________________________

3. XML-RPC Interfejs

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:

  1. Server MOŽE da pokuša da nabavi izvor URI da bi potvrdio da izvor zaista ppovezuje se sa ciljem.

  2. Server MOŽE da proveri sopstvene podatke da bi se osigurao da cilj postoji i da je ulaz validan.

  3. Server MOŽE da proverava da li pingback nije već registrovan.

  4. Server MOŽEda snima pingback.

  5. Server MOŽE regeneriše stranice sajta (ako su stranice statične).

__________________________________________________________________________________________________________________________

4. Zahtevi konfora

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.

__________________________________________________________________________________________________________________________

5. Primer

Evo detaljnog pregleda šta se moglo dogoditi sa Alice i Bob za vreme opisanog primera u uvodu.

  1. Alice postavlja na svoj blog. Post koji ona napravi uključuje link ka postu na Bobovom blogu. Taj permalink ka Alice novom postu je http://alice.example.org/#p123, i URL linka ka Bobovom blogu je http://bob.example.net/#foo.

  2. Alice blogging sistem parsira sve spoljašnje links van Alice posta, i nalazi http://bob.example.net/#foo.

  3. Tada zahteva prvih 5 kolibita stranice koja se odnosi na dati link.

  4. Traži X-Pingback zaglavllje, ali ne nalazi ni jedno.

  5. Skenira deo stranice u potrazi za pingback link tagom, koji pronalazi:

    <link rel="pingback" href="http://bob.example.net/xmlrpcserver">

    Ako ovaj tag nije sadržan na stranici, onda Bobov blog neće podržati pingback, tako da Alice softver se već predao (prelazi na sledeći link koji se nalazi u 2 koraku).

  6. Sledeće, pošto je link ovde bio, on izvršava sledeće XML-RPC pozive ka http://bob.example.net/xmlrpcserver:

    pingback.ping('http://alice.example.org/#p123', 'http://bob.example.net/#foo')

  7. Alice blogging sistem ponavlja korake 3 do 6 fza svaki spoljašnji link pojedinačno koji se nalazi u postu.

Tu se završava rad koji je preuzeo Alice sistem. Ostali deo posla odrađuje Bobov blog.

  1. Bobov blog prima ping od Alice blog (ping je poslat u koraku 6 gore), tj. http://alice.example.org/#p123 (sajt povezan sa Bobom) and http://bob.example.net/#foo (stranica na koju se prikačila Alice).

  2. Bobov blog potvrđuje da http://bob.example.net/#foo je zapravo post na ovom blogu.

  3. Onda traži sadržaj 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.

  4. Potvrđuje da sadržaj zaista sadrži link ka http://bob.example.net/#foo (da bi se sprečilo spamovanje pingbacks).

  5. Bobov blog takođe čuva ostale podatke koje zahteva sadržaj Alice novog posta, kao što je naslov stranice, deo stranice koji sadrži okvirni sadržaj koji okružuje Bobov post, bilo koji atribut koji ukazuje na kom je jeziku bstranica pisana, i tako dalje.

  6. Konačno, Bobov post snima pingback u bazu podataka, i regeneriše statičke stranice koje se odnose na Bobov post kao što je pomenuto u pingback.

__________________________________________________________________________________________________________________________

A. Reference

[RFC 2119]

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





Published (Last edited): 08-03-2013 , source: http://hixie.ch/specs/pingback/pingback-1.0