ブログ情報伝達を加速するトラックバック、pingdev blog/CMS:ブログを支えるテクノロジー(3/5 ページ)

» 2005年07月20日 08時30分 公開
[大澤文孝,ITmedia]

 最近では、商用サイトでもpingサーバを活用し、いわゆる広告塔の役割を持たせるところも増えている。

 もちろんブログを更新していないにもかかわらず、更新pingを送り続けて自サイトが上位にくるようにするといったあからさまな不正をするのは良くないだろう。しかし、常識の範囲での更新情報は、pingサーバに伝えてこそ周知のものになるという密接な関係になっている。

トラックバックで自らのブログの言及投稿を伝える

 冒頭で少し触れたように、ブログは、互いのブログ投稿に対して言及し合うことができる。その仕組みが「トラックバック」だ。言及した本文は、自らのサイト上に位置し、言及した事実だけを通知する、という機能になっている。このため、ブログ投稿ページそのものに書き込む「コメント」とどのような違いがあるのか? と迷うことがあるかもしれない。

 ブログ投稿それぞれには、固有のトラックバックURLが割り当てられており、このURLに対してトラックバックping送信をすると、相手側のブログシステムは自動的にトラックバックのリンク表示を生成する

 たとえば、2005年5月1日で1つ目の投稿記事には「http://www.example.co.jp/myblog/20050501#01」、2つ目の記事には「http://www.example.co.jp/myblog/20050501#02」といったURLが割り当てられる(もちろんどのようなURL書式となるのかは、ブログシステムによって異なる)。このような、記事に対応したURLのことを特に「Permanent link」と呼ぶ

 他人(他システム)からのトラックバックを受け付けたい場合には、このPermanent linkと1対1で対応した「トラックバックping URL」というURLを用意することになる。

 たとえば、「http://www.example.co.jp/myblog/20050501#01」というPermanent linkに対するトラックバックping URLとして「http://www.example.co.jp/myblog/trackback/20050501#01」といったURLを用意するのだ。Permanent linkとトラックバックping URLとは1対1で対応すればよく、URLの書式や名前は任意である(つまりブログシステムによって、書式が異なる)。

 トラックバックping URLの正体は、トラックバックの通知を受信して処理するWebアプリケーションだ

 記事にコメントを付けたいユーザーは、トラックバックping URLに向けて、自分の記事の「タイトル」「概要」「自身のPermanent Link」などを送信する。この送信データのことを「トラックバックping」と言う(トラックバックpingは、先に説明した更新pingとはまったくの別物なので注意)。トラックバックpingを受けとったWebアプリケーションは、そのデータを解析し、ブログに「コメント」としてそのリンクを埋め込む。これによって、図2のように、人の手を介さずにシステムが相互に理解してリンクが実現する。

図2■トラックバックの仕組み

トラックバックpingの構造

 トラックバックの仕様は、「TrackBack Technical Specification」に記載されている(関連リンク)

 トラックバックpingは、自分の記事の概要やPermanent linkをまとめてPOSTメソッドで送信するだけの単純なものだ。トラックバックpingに含むことができるパラメータを表1に示す。

 トラックバック仕様では、それぞれのパラメータの長さに関する制限はない。しかし長すぎる場合には、トラックバックpingを受け取ったブログシステム側で、後ろが適時切り捨てられることがほとんどだ。

表1■トラックバックpingのパラメータ
パラメータ名 内      容
title 自分の記事のタイトル。省略可能
excerpt 自分の記事の概要(記事を短縮した文章)。省略可能
url 自分の記事のPermanent link。必須
blog name 自分の記事のブログ名。省略可能

 トラックバックpingは、先に説明した更新pingとは違い、データはXML形式ではなく、単純な<FORM method="POST">で示される「application/x-www-form-urlencoded」形式のデータで構成される。そのため原理的には、次のような入力フォームを使って、簡単にトラックバックpingを送信できる。


<HTML>
<BODY>
  <FORM method="POST" enctype="application/x-www-form-urlencoded; charset=utf-8"
    action="相手のブログのトラックバックping URL">
  タイトル:<INPUT type="TEXT" name="title"><BR>
  概要:<INPUT type="TEXT" name="excerpt"><BR>
  自分のURL:<INPUT type="TEXT" name="url"><BR>
  ブログ名:<INPUT type="TEXT" name="Blog_name"><BR>
  <INPUT type="SUBMIT">
</FORM>
</BODY>
</HTML>

 実際に送信されるデータは、たとえば次のようになる。


Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 下記データのバイト数
title=タイトル&excerpt=概要&url=自分のブログのPermanent link&blog_name=ブログ名

 送信する文字コードは、Content-Typeヘッダのcharset部分で指定する。しかし文字コードに関する規定は、2004年8月に提唱されたバージョン1.2で明記されたものであり、それまでは、文字コードに関する規定はなかった。そのため、文字コードを見ない(自動判定する)システムも、未だ多い。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ