Back to site

Pingback 1,0


Абстрактны

Pingback з'яўляецца метадам для вэб-аўтараў для запыту апавяшчэнні, калі хто-спасылкі на адзін са сваіх дакументаў. Як правіла, вэб-публікацыі праграмнае забеспячэнне будзе аўтаматычна інфармаваць зацікаўленыя бакі ад імя карыстача, што дазваляе магчымасць аўтаматычна ствараць спасылкі на спасылкі дакументаў.

Напрыклад, Аліса піша цікавую артыкул на яе вэб-часопіса. Боб чытае гэты артыкул і каментары пра гэта, спасылак назад да зыходнага паведамленні Алісы. Выкарыстанне Pingback, праграмнае забеспячэнне Боба можа аўтаматычна апавяшчаць Аліса, што яе паведамленне было звязана з ёй, і праграмнага забеспячэння Алісы можа ўключаць гэтую інфармацыю на сваім сайце.

Статус гэтага дакумента

Гэта стабільныя спецыфікацыі. Каментары вітаюцца на рассылку blogite ( архіў ).

Ёсць у цяперашні час шэсць вядомых асобных рэалізацый дадзенай спецыфікацыі, хоць ніякага афіцыйнага тэставання было зроблена, каб праверыць, як сумяшчальныя то яны такія:

Аўтарам настойліва рэкамендуецца Pingback http://www.hixie.ch/specs/pingback/pingback зарэгістраваць іх рэалізацыі.

Даступныя мовы

Ангельская версія гэтай спецыфікацыі з'яўляецца адзінай нарматыўнай версіяй. Аднак для перакладу гэтага дакумента гл http://www.hixie.ch/specs/pingback/translations/ . У цяперашні час даступныя пераклады:

Памылкі друку

Гэты падзел быў дададзены пасля канчатковай даты публікацыі спецыфікацыі.

(2007/01/16) Для таго, каб пазбегнуць схільнасці нападаў адмовы ў абслугоўванні, Pingback сервераў, прынесці паказанага дакумента крыніцы (як апісана ў раздзеле 3), настойліва рэкамендуецца накладваць абмежаванні на памер зыходнага дакумента, які будзе разгледжаны і хуткасць перадачы дадзеных. Дзякуючы Блэйк Матени за вынясенне гэтага пытання на нашу ўвагу.

Змест


1. Увядзенне

Pingback сістэма шлях для блога, каб быць аўтаматычна апавешчаныя, калі іншыя сайты спасылаюцца на яго. Цалкам празрыста для сувязі аўтар, не патрабуе ўмяшання карыстальніка для працы, і дзейнічае на прынцыпах аўтаматычнага выяўлення усё, што яму трэба ведаць. паведамленні ўзор блог з удзелам Pingback можа выглядаць так:

  1. Аліса паведамлення ў свой блог. Паведамленне яна зрабіла змяшчае спасылку на пост на блогу Боба.
  2. Сістэму вядзення блогаў Алісы сістэму вядзення блогаў кантакты Боба і кажа: "паглядзіце, Эліс зрабіў пост, які звязаны з адным з вашых паведамленняў".
  3. Сістэму вядзення блогаў Боба затым ўключае ў сябе спасылку на паведамленне Алісы на яго зыходнага паведамлення.
  4. Чытача артыкула Боба можна па гэтай спасылцы, каб паведамленне Алісы чытаць яе меркаванне.

Гэта дае магчымасць зваротнай сувязі - гэта спосаб зноў нарастаюць ланцугі сувязяў, а не проста бурэння ўніз.

1.1. Тэхнічныя дэталі

Pingback механізм выкарыстоўвае HTTP-загаловак і HTML або XHTML <link> элемент для аўтаматычнага выяўлення, а таксама выкарыстае адзін XML-RPC выкліку для апавяшчэння мэтавых сайта спасылка на сайт-крыніца.

Мяркуецца, што сумяшчальныя кліенты Pingback і Pingback серверы быць здзяйсняльная з мінімальнымі высілкамі з выкарыстаннем бібліятэк правіла, даступныя ў CGI-асяроддзя. Па гэтай прычыне патрабаванні да разборы загалоўкаў HTTP і HTML-дакументы былі зведзены да мінімуму.

1.2. Азначэнні

крыніца URI
Адрас ўваходу на сайт, які змяшчае спасылкі.
Pingback кліента
Праграмнае забеспячэнне, якое ўсталёўвае злучэнне з серверам паведаміць пра сувязь ад крыніцы да мэты. Як правіла, крыніца будзе кліент.
Pingback з падтрымкай рэсурсу
Дакумент, малюнак ці іншы рэсурс, які рэкламуе Pingback серверам, выкарыстоўваючы HTTP-загаловак Pingback ці элемент Pingback спасылцы .
Pingback сервера
Праграмнае забеспячэнне, якое прымае XML-RPC злучэнняў. Як правіла, мэтавы URI будзе звязаны з серверам (напрыклад, на адным вузле).
Pingback агент карыстальніка
Адзіную сістэму, што з'яўляецца як кліентам Pingback і Pingback сервера.
мэтавай URI
Мэта спасылкі на сайт-крыніца. Гэта павінна быць Pingback падтрымкай старонцы.

Ключавыя словы "ПАВІНЕН", "НЕ ПАВІНЕН", "ПАТРАБУЕЦЦА", "БУДЗЕ", "НЕ", "ВАРТА", "НЕ ВАРТА", "РЭКАМЕНДУЕЦЦА", "МОЖА" і "неабавязкова" ў гэтым дакуменце, варта інтэрпрэтаваць, як апісана ў [RFC 2119] .


2. Сервер Autodiscovery

Існуюць два механізму для аўтаматычнага выяўлення сервераў Pingback: HTML (або XHTML) <link> элементаў і HTTP загалоўкі. Pingback з падтрымкай рэсурсу павінен быць альбо падаецца з X-Pingback загалоўку HTTP ці ўтрымоўваюць <link> элемент , ці абодвух. Pingback з падтрымкай HTML і XHTML старонкі павінны быць сапраўднымі. Кліенты могуць адмовіцца пошук несапраўдных старонкі для Pingback інфармацыі.

Звярніце ўвагу, што як кліент распавёў крыніца і мэтавай URI, гэта выходзіць за рамкі дадзенай спецыфікацыі. Звычайна блогі будуць здабываць знешнія спасылкі ад пасад да таго, каб знайсці мэтавы URI.

2.1. HTTP-загалоўка

Pingback падтрымкай рэсурсы могуць быць вернутыя з X-Pingback загалоўку HTTP. Напрыклад, малюнак PNG працаваў са наступнымі загалоўкамі б Pingback з падтрымкай:

HTTP/1.1 200 OK Date: Sun, 8 верасня 2002 15:05:37 GMT Server: Apache/1.3.26 (Unix) Last-Modified: Thu, 28 сьнежня 2000 г. 03:18:26 GMT ETag: "65044-15b9c- 3a4ab102 "Accept-Ranges: байт Content-Length: 88988 Connection: блізка Content-Type: малюнак / PNG
 X-Pingback: http://charlie.example.com/pingback/xmlrpc 

. PNG ...
  

Значэнне X-Pingback загаловак павінен быць абсалютны URI з Pingback XML-RPC-сервер.

Старонкі не павінны ўключаць больш аднаго такога загалоўка. HTML і XHTML дакументаў можа ўключаць <link> элемент у дадатак да HTTP-загалоўку, хоць гэта не вітаецца. Калі ўключана, загаловак павінен мець дакладна такое ж значэнне, як <link> элемента. У выпадку неадпаведнасці, загалоўка HTTP ПАВІННЫ перавызначыць <link> элемент, аднак, аўтары павінны ведаць, што некаторыя кліенты не будзе апрацоўваць HTTP загалоўкі з-за абмежаванняў асяроддзя іх пражывання.

Pingback падтрымкай рэсурсы не павінны выкарыстоўваць HTTP спасылка загалоўка для сервераў рэкламы Pingback. HTTP спасылка загалоўкі патрабуюць нетрывіяльнага аналізу, і таму лічыцца занадта цяжкай для мэт Pingback аўтаматычнага выяўлення сервера.

2.2. Спасылка Элемент

HTML або XHTML Pingback старонка на можа ўтрымоўваць <link> элемента ў адным з наступных двух формаў:

HTML
<Спасылка отн = "Pingback" HREF = " Pingback серверы ">
XHTML
<Спасылка отн = "Pingback" HREF = " Pingback сервер "/>

Пры выкарыстанні, спасылка элемент павінен адпавядаць адпаведнай форме сапраўды (у тым ліку прабелы перад касой рысай, напрыклад).

Старонкі не павінны ўключаць больш аднаго такога элемента, і не павінны ўтрымліваць такія радкі адпаведнасці шаблону , апісаныя ніжэй, калі ён не прызначаны для спасылкі элемента.

Pingback сервера запаўняльнік павінен быць заменены абсалютным URI з Pingback XML-RPC-сервер. Гэты URI не павінен ўключаць асоб, якія не з'яўляюцца & , < , > , і " . Іншыя знакі, якія не павінны быць дапушчальныя ў HTML-дакумент або якія не могуць быць прадстаўлены ў кадоўцы дакумент павінен быць экраніровать з дапамогай % хх механізм, як апісана ў [ RFC2396 ].

Гэтыя строгія патрабаванні закліканы значна знізіць патрабаванні кліентаў, якія рэалізуюць сервер аўтаматычнага выяўлення, як было палічана, што патрабуецца кліентам рэалізоўваць HTML-парсер ў дадатак да XML-парсер быў занадта цяжкім цяжарам, улічваючы тое, як лёгка было б для старонкі аўтараў выконваць, каб абмежаванні, апісаныя вышэй.

2.3. Autodiscovery Алгарытм

Pingback кліентаў , улічваючы URI крыніцы і мэтавай URI, ПАВІНЕН прынесці мэтавы URI і выканаць наступныя крокі, каб знайсці Pingback URI сервера.

  1. Вывучыць HTTP загалоўкаў адказу. Калі Ёсць любыя X-Pingback загалоўкі, тое значэнне першага такога загалоўка варта выкарыстоўваць у якасці Pingback URI сервера. Кліенты павінны даследаваць HTTP загалоўкі, калі яны не змогуць. Калі па некаторых прычынах HTTP загалоўкі не даступныя для рэалізацыі, то гэты крок можна прапусціць, аднак, распрацоўшчыкі павінны ведаць, што гэта прывядзе да зніжэння карыснасці іх ужывання ў якасці спасылкі элементы не могуць быць выкарыстаны для рэсурсаў, якія не з'яўляюцца ні HTML, ні XHTML, і HTTP загалоўкі вызначаны, каб перавызначыць сувязь элементаў, калі яны адрозніваюцца.
  2. У адваротным выпадку, пошук твару органа для першага матчу наступнае рэгулярнае выраз:
    <Спасылка отн = "Pingback" HREF = " ([^"]+) "? /?>
  3. Калі рэгулярнае выраз адпавядае, кліент павінен затым расчыніце чатырох дазволеных асоб ( & для & , < на < , > для > , і " за " ).

Пасля вымання гэтага Pingback URI сервера, ён павінен быць выкарыстаны для адправіць XML-RPC-запыту , як апісана ніжэй.

Калі няма X-Pingback загалоўку і рэгулярны выраз не супадае, то мэта ў пытанні не падтрымлівае Pingback, як гэта вызначана ў дадзенай спецыфікацыі, і кліент можа рабіць усё, што яму падабаецца. Тым не менш, рэкамендуецца, каб кліенты ня спрабуюць быць больш мяккім (напрыклад, правільна разбор HTML і шукае <link> элементы, якія выглядаюць як Pingback спасылкі з HTML пункту гледжання), таму што гэта прывядзе да некаторых сістэм прызнаючы сувязь і іншыя ігнаруюць яе.

Кліенты могуць аптымізаваць пошук. Напрыклад:

Аднак варта адзначыць, што гэтыя аптымізацыі схільныя да таго, злоўлены на законных дакументаў, напрыклад тыя, якія маюць каментары, якія змяшчаюць радкі, прыведзеныя вышэй, ці тыя, з вялікай убудаванай табліцы стыляў, Які явіўся Pingback спасылцы. Аўтары рэкамендуецца прымаць гэтых магчымых аптымізацый да ўвагі пры прыняцці рашэння, дзе размясціць свае Pingback спасылкі.


3. XML-RPC інтэрфейс

Pingback кліентаў , выявіўшы Pingback сервер, варта перадаваць на сервер XML-RPC-запыт з імем метаду pingback.ping і два аргументу, крыніца URI і URI мэтавы адпаведна. [ XML-RPC ]

pingback.ping
Паведамляе серверу, што спасылка была дададзеная ў SourceUri , паказваючы на targetURI .
Параметры
SourceUri тыпу радок
Абсалютны URI з паведамленні крыніцы старонкі, якая змяшчае спасылку на мэтавы сайт.
targetURI тыпу радок
Абсалютных URI ў мэту спасылкі, як прыведзена на зыходную старонку.
Вяртаецца значэнне
Радкі , як апісана ніжэй.
Няспраўнасці
Калі памылка адбываецца, то адпаведны код няспраўнасці з наступнага спісу павінен быць выкарыстаны. Кліенты могуць хутка вызначыць тып памылкі з біты 05/08. 0 × 001x кодаў няспраўнасцяў выкарыстоўваюцца для задач з крыніцай URI, 0 × 002x коды для задач з мэтавай URI, і 0 × 003x коды выкарыстоўваюцца, калі URI, выдатныя, але Pingback не можа быць прызнана для некаторых іншых reaon.
0
Універсальны код няспраўнасці. Сервер можа выкарыстоўваць гэты код памылкі, а не любы з іншых, калі яны не маюць магчымасці вызначыць правільны код няспраўнасці.
0 × 0010 (16)
Крыніца URI не існуе.
0 × 0011 (17)
Крыніца URI не ўтрымлівае спасылку на мэтавай URI, і таму не можа быць выкарыстаны ў якасці крыніцы.
0 × 0020 (32)
Указаны мэтавай URI не існуе. Гэта павінна выкарыстоўвацца толькі пры мэтавай безумоўна, не існуе, а не калі мэта можа існаваць, але не прызнаецца. Глядзіце наступную памылку.
0 × 0021 (33)
Указаны мэтавай URI не можа быць выкарыстаны ў якасці мішэні. Яна або не існуе, альбо яе няма Pingback з падтрымкай рэсурсу. Напрыклад, на блогу, як правіла, толькі сталыя з'яўляюцца Pingback падтрымкай, і спрабуе Pingback хатнюю старонку або набор паведамленняў, не зможа з гэтай памылкай.
0 × 0030 (48)
Pingback ужо зарэгістраваны.
0 × 0031 (49)
Адмоўлена ў доступе.
0 × 0032 (50)
Сервер не можа мець зносіны з вышэйстаячым серверам, ці атрымалі паведамленне пра памылку з вышэйстаячым серверам, і, такім чынам, не мог выканаць запыт. Гэта падобна на 402 HTTP-Bad памылку Gateway. Гэтая памылка павінна быць скарыстана Pingback проксі пры распаўсюдзе памылак.
Акрамя таго, [ FaultCodes ] вызначае некаторыя стандартныя коды памылак, што серверы могуць выкарыстоўваць для дакладу вышэй памылкі узроўні.

Сервер павінен адказаць на гэты выклік функцыі ці з аднаго радком ці код памылкі.

Калі Pingback запыт паспяхова, то вяртаецца значэнне павінна быць адной радкі, якія ўтрымліваюць як мага больш інфармацыі, што і сервер злічыць карыснымі. Гэты радок толькі чакаецца, будзе выкарыстоўвацца для адладкі.

Калі ў выніку няўдалай, то сервер павінен адказаць значэнне віне RPC. Код няспраўнасці павінен быць альбо адзін з кодаў, пералічаных вышэй, або агульны нулявой код няспраўнасці, калі сервер не можа вызначыць правільны код няспраўнасці.

Кліенты могуць ігнараваць вяртаецца значэнне, ці быў запыт паспяховым ці няма. РЭКАМЕНДУЕЦЦА, каб кліенты не паказваюць вынік паспяховых запытаў да карыстача.

Атрымаўшы запыт, сервер можа рабіць тое, што ім падабаецца. Тым не менш, рэкамендуецца зрабіць наступнае:

  1. Сервер можа спрабаваць атрымаць зыходны URI, каб пераканацца, што крыніца сапраўды спасылаюцца на мэту.
  2. Сервер можа праверыць свае дадзеныя для таго, каб мэта існуе і сапраўдная запіс.
  3. Сервер можа праверыць, што Pingback яшчэ не быў зарэгістраваны.
  4. Сервер можа запісваць Pingback.
  5. Сервер можа рэгенераваць старонак сайта (калі старонкі з'яўляюцца статычнымі).

4. Адпаведнасць патрабаванні

Сцвярджаць, адпаведнасць дадзенай спецыфікацыі Pingback кліент павінен падтрымліваць сервер для аўтаматычнай наладкі , як апісана ў дадзенай спецыфікацыі і павінны правільна адправіць Pingback XML-RPC-выклікі .

Сцвярджаць, адпаведнасць гэтай спецыфікацыі Pingback сервер павінен быць здольны атрымліваць Pingback XML-RPC-выклікі і заўсёды вяртаюць вынікі, якія адпавядаюць дапушчальным значэнняў вяртання . Вяртаючыся дэталёвага (не нуль) кодаў няспраўнасцяў з'яўляецца неабавязковым.

Заўважым, што некаторыя серверы Pingback, магчыма, не звязаных старонках. Напрыклад, сервер Pingback шлюз можа быць аўтаномным, і іншыя старонкі будзе выкарыстоўваць спасылку элемент спасылку на гэтую шлюз замест падавання сервер самастойна. Сцвярджаць, адпаведнасць гэтай спецыфікацыі Pingback з падтрымкай рэсурсу павінен мець або HTTP X-Pingback загаловак ці спасылку элемент для таго, каб дазволіць серверу аўтаматычнага выяўлення.

Сцвярджаць, адпаведнасць гэтай спецыфікацыі Pingback агент карыстальніка павінен падтрымліваць сервер для аўтаматычнай наладкі , як апісана ў дадзенай спецыфікацыі, неабходна правільна адправіць Pingback XML-RPC-выклікі , павінны мець магчымасць атрымліваць Pingback XML-RPC-выклікі , павінен заўсёды вяртаць вынікі, якія адпавядаюць дазволена вяртанне значэння (вяртанне дэталёвага (не нуль) кодаў няспраўнасцяў не з'яўляецца абавязковым), і, павінна быць альбо HTTP X-Pingback загаловак ці спасылку элемента на ўсіх патэнцыйных мэтавых старонак для таго, каб дазволіць серверу аўтаматычнага выяўлення.


5. Прыклад

Вось больш дэталёвы погляд на тое, што можа адбыцца паміж Алісай і Бобам на працягу прыклад, апісаны ў увядзенні .

  1. Аліса паведамлення ў свой ​​блог. Паведамленне яна зрабіла змяшчае спасылку на пост на блогу Боба. Пастаянная спасылка на новую пасаду Алісы http://alice.example.org/ # p123 і адрас спасылкі ў блог Боба http://bob.example.net/ # Foo .
  2. Сістэму вядзення блогаў Алісы разбірае ўсе вонкавыя спасылкі з паведамлення Алісы, і знаходзіць http://bob.example.net/ # Foo .
  3. Затым ён просіць першыя 5 кілабайт старонка спасылаецца спасылка.
  4. Гэта выглядае для X-Pingback загаловак, але не можа знайсці.
  5. Яна скануе гэты фрагмент старонкі для Pingback тэг спасылкі, якія яна лічыць, што:
    <link rel="pingback" href="http://bob.example.net/xmlrpcserver">
    Калі гэты тэг не было, якія змяшчаюцца на старонцы, то блог Боба не будзе падтрымліваць Pingback, таму праграмнае забеспячэнне Алісы адмовіліся б тут (перайсці да наступнай спасылцы знойдзеных на кроку 2).
  6. Далей, так як сувязь была там, яна выконвае наступныя XML-RPC выклік http://bob.example.net/xmlrpcserver :
    pingback.ping ('http://alice.example.org/ # p123', 'http://bob.example.net/ # фу')
  7. Паўтарае Алісы сістэму вядзення блогаў крок 3 да 6 для кожнай вонкавай спасылцы, якая была знойдзеная на гэтай пасадзе.

Там сканчаецца праца, якая праводзіцца сістэма Алісы. Астатнія працы выконваюцца блогу Боба.

  1. Блог Боба атрымлівае пінг ад блога Алісы (пінг паслаў за крок 6 вышэй), называючы http://alice.example.org/ # p123 (спасылкі на сайт Боба) і http://bob.example.net/ # Foo (старонка Аліса злучана з).
  2. Блог Боба пацвярджае, што http://bob.example.net/ # Foo на самай справе паведамленне на гэтым блогу.
  3. Затым ён просіць ўтрыманне http://alice.example.org/ # p123 і правярае Content-Type суб'екта вярнуўся, каб пераканацца, гэта тэкст нейкі.
  4. Ён правярае, што гэта змест сапраўды змяшчае спасылку на http://bob.example.net/ # Foo (для прадухілення спаму з Pingbacks).
  5. Блог Боба таксама атрымлівае іншыя дадзеныя, патрабаваныя ад утрымання новага паведамлення Алісы, напрыклад, загаловак старонкі, экстракт змесціва старонкі навакольных спасылкай на паведамленне Боба, любых атрыбутаў паказвае, на якой мове старонка знаходзіцца ў, і так далей.
  6. Нарэшце, пасля Боба запісу Pingback у сваёй базе дадзеных, і аднаўляе статычных старонак спасылкай на паведамленне Боба, так што яны згадваюць Pingback.

А. Літаратура

[RFC 2119]
Ключавыя словы для выкарыстання ў дакументах RFC для ўказання ўзроўню патрабаванняў , С. Браднер. IETF, сакавік 1997 года. RFC 2119 даступны па адрасе http://www.normos.org/ietf/rfc/rfc2119.txt.
[RFC 2396]
Uniform Resource ідэнтыфікатараў (URI): агульны сінтаксіс , Т. Бернерс-Лі, Р. Філдынг, Л. Масинтер. IETF, жнівень 1998 года. RFC 2396 даступны па адрасе http://www.normos.org/ietf/rfc/rfc2396.txt
[XML-RPC]
XML-RPC спецыфікацыі , Д. Вінер. UserLand Software, Inc, чэрвень 1999 года. XML-RPC можна атрымаць на http://www.xmlrpc.com/spec
[FaultCodes]
Спецыфікацыя для кода памылкі ўзаемадзеяння , Д. Ліббі, і соавт. Траўні 2001 года. Спецыфікацыя для няспраўнасцяў Узаемадзеянне кодэкса можна азнаёміцца ​​на http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
Popular Links
Published (Last edited): Jul 15 , source: http://www.hixie.ch/specs/pingback/pingback-1.0