ping, pingback, trackback в wordpress- взгляд изнутри: что это такое и как оно работает
19.01.2008
Наконец таки, после нескольких дней настройки wordpress и плагинов к нему, я могу приступить к вкусному - xml-rpc и удаленный вызов процедур в Интернете. В первую очередь хотелось разобраться с
пингами и трекбэками. До знакомства с wordpress я не подозревал о их существовании. Когда я настраивал свой первый блог на wordpress Лавка снов, я как
сомнамбула делал необходимые настройки в панели управления - добавил pings.txt - список сайтов для пинга (74 сайта в
текстовом файле для скачивания)
в панели управления / настройки / написание. Я тогда доверился утверждению, что это очень хорошо для блога.
Так что же такое ping? Запрос в гугле дает такие ссылки как: Что такое ping и traсkbaсk? - на сайте уважаемого макса, чьей
русификацией wordpress я пользуюсь. Прочитав статью в голове немного прояснилось, но вот полного понимания не наступило. Такое понимание у меня может наступить только при детальном ознакомлении
оригинальной документации или исходников, реализующих это. Ничтоже сумнятеже я полез в исходник wordpress - файл xmlrpc.php, ссылку на который, кстати говоря, wordpress вставляет в заголовок
серверного ответа всех страниц блога. Пролистав до секции функций с пингами (PingBack functions), в комментариях обнаруживаю ссылку на http://www.hixie.ch/specs/pingback/pingback. естественно иду по ссылке, где оказывается, что существует куча версий этих самых пингбеков - но
мне то все они зачем? Хватит самой последней версии 1.0
И первым делом читаю в абстрактном предисловии, что такое ping и pingback:
pingback это метод для вэбмастера уведомить его о новых ссылках на его страницы. Обычно это делают программы на web серверах - в вольном переводе, ну скажите как перевести "web
publishing software"? Что собственно не проясняет ситуацию. Авторы документации это понимают и поэтому сразу приводят пример работы пингов. Перескажу его своими словами:
Алиса написала в свой блог, Боб прочитал ее статью и написал у себя заметку про ее статью, указав ссылку на статью Алисы. Движок блога у Боба автоматически информирует блог Алисы о ссылке на ее
статью на блоге Боба. Движок блога Алисы может поместить в комментариях ссылку на заметку у Боба. в Общем получается круговая порука. Стоит сразу заметить, что такая система открыта для спама,
как впрочем и помогает поисковым роботам найти на вашем блоге новую статью.
Итак перейду к техническим подробностям. Механизм пингбеков использует http заголовок или элемент <link> в одиночных xml-rpc вызовах для информирования. Ресурсы, которые поддерживают
механизм pingback должны отдавать в заголовках X-Pingback с полным адресом сервера или (можно и оба) в самом html документе элемент <link>. Пример в секции head html документа: <link
rel="pingback" href="pingback server" />. Понятно, что урлы должны совпадать в обоих случаях и проще использовать серверный ответ, так как парсить html документ еще та задача. xml-rpc
клиент, если находит X-Pingback в ответе, то он должен его использовать, иначе искать среди html документа адрес для пинга. В документации указано регулярное выражение для поиска необходимого
урла в html:
<link rel="pingback" href="([^"]+)" ?/?>
После того как найден урл xml-rpc сервера для пинга, клиент вызывает на сервере функцию с названием "pingback.pin" с двумя параметрами -абсолютные адреса страницы, на которой находится ссылка и
адрес самой ссылки. Функция с сервера возвращает строку в случае успеха. Конкретно xml-rpc сервер wordpress возвращает следующее:
sprintf(__('Pingback from %1$s to %2$s registered. Keep the web talking! :-)'), $pagelinkedfrom, $pagelinkedto);
в случае ошибки - соответствующий fault код и комментарий к нему. xml-rpc клиент может что угодно делать с ответом xml-rpc сервера, например использовать ответ для отладки. Естественно xml-rpc
сервер проверяет урлы - а туда ли они попали. Wordpress также выцепляет участок текста возле пингуемого урла и вставляет выцепленный текст в виде комментария.
Одно непонятно мне осталось - а где же trackback? В оригинальной документации используется слово pingback, а слова trackback отсутствует. Стал копать исходники и ддоку wordpress и относительно
быстро нарыл следующее: pingback и trackback имеют мало общего, кроме слова back. Если ping, pingback - это одно и тоже, что выполняют xml-rpc клиент и сервер, то trackback это всего лишь
одиночный html запрос, в котором методом post передаются данные о новой записи в wordpress. Пинг - он интеллектуален: проверяет кучу всего, запрашивает и получает ответы. Трекбэк прост и груб
как обыкновенный запрос методом пост - трекбэк не интересует ответ, он всего лишь информирует, а уж что там будет с запросом его вовсе не интересует. Одним словом забейте на трекбэки - ничего
интересного в нем нет.
Wordpress имеет еще одну интересную функцию доступную по протоколу xml-rpc - "pingback.extensions.getPingbacks". Эта функция возвращает список всех удачно пропингованных урлов - их wordpress
сам вставил в виде комментариев. Есть и еще одна xml-rpc функция - "mt.getTrackbackPings". Она возвращает список трекбэков к записи, думаю не актуальна из за самого трекбэка.
Мой блог находят по следующим фразам
• удалить плагины
• удаление плагина
• несколько wordpress на одной бд
• сортировка в utf
• удалить плагин бесплатного доступа на сайт
• Скачать Ворд
Комментарии (4) на запись “ping, pingback, trackback в wordpress- взгляд изнутри: что это такое и как оно работает”
Пингбеки
- в помощь ищущему - часть 1 | Программы для блогов
- openid - что это такое | Программы для блогов
- ответы ищущим - част 2 | Программы для блогов
- Красотки чародейки или кросспостинг через неделю | Программы для блогов
- Webmoney как конец Интернета для меня | Программы для блогов
- Поиск в блог и коммент клиенте | Программы для блогов
- Планы по развитию коммент клиента | Программы для блогов
- Проверка грамматики в тексте с html тегами | Программы для блогов
- создание нового поста в дневнике на livejournal на php | Программы для блогов
- listview в делфи с xml | Программы для блогов
- commentclient.ru - мой новый блог для коммент клиента | Программы для блогов
- drag&drop для комментариев wordpress | Программы для блогов
- Клиент для комментариев wordpress | Программы для блогов
- сценарий поддверждения удаленных вызовов через xml-rpc | Программы для блогов
- Карта сайта - нужен ли подобный плагин | Программы для блогов
- ссылка на подписку на rss2email.ru одним кликом | Программы для блогов
- 5 книг блогеру | Программы для блогов
Думаю тоже внести свой вклад, я собрал самый полный список пинг сервисов(181). Хочется узнать ваше мнение.
http://blog.codingclub.ru/vordpress/spisok-ping-servisov.html