図解・トラックバック処理
「トラックバック」とは Web サイト間のピアツーピア通信/通知のためのフレームワークです。
もう少し分かりやすく説明すると、
リンク元サイトに「このような記事からリンクを張った」という情報を通知する仕組み
です(これも分かりにくいですが)。
ちなみに「トラックバック Ping」とは「トラックバック Ping URL に対する HTTP POST リクエスト」です。
それはともかく、ブログを始めた時に最初に戸惑うのがこの「トラックバック」で、実際にトラックバック機能を利用して一番不思議に思われる事象が、
- 「エラーになったのに相手のブログにちゃんと送信されている」
ことではないでしょうか。
その結果、誤解してトラックバックを重複送信したり、Movable Type では送信失敗したトラックバックURLを再送信用に保存するため、それに気づかず記事を再保存すると、誤って送信するといったケースが絶えません。*1
このエントリーでは、そのようなケースを引き起こす原因を理解できるよう、トラックバックの動作について図解します。
1.トラックバック処理(正常)

ブログAからブログBにトラックバックを送信すると、ブログBはトラックバック受信処理を開始します。送信したブログAはタイマを起動して、ブログBからの完了通知を待ちます。
ブログBが受信処理を終えるとブログAに完了通知を送信します。ブログAがタイマ起動中に完了通知を受信するとタイマを解除し、ブログAは「トラックバックを正常に送信した」と判断します。
2.トラックバック処理(異常)

ブログAからブログBにトラックバックを送信して、何らかの原因でブログBにトラックバックが到達しなかった場合、ブログAが起動したタイマがタイムアウトし、その契機にブログAは「トラックバックを正常に送信できなかった」と判断します。このケースではブログBは何も受信していません。
3.トラックバック処理(準正常1)

このケースは、ブログAからブログBにトラックバックを送信して、1と同様にブログBでトラックバック受信処理を開始、完了通知を送信したにもかかわらず。何らかの原因でブログAに完了通知が到達しなかった場合です。
ブログAが起動したタイマがタイムアウトし、その契機にブログAは「トラックバックを正常に送信できなかった」と判断します。ただしこのケースでは、ブログAには「エラー」と見えるにも関わらずブログBはトラックバックを正常に受信しています。
4.トラックバック処理(準正常2)

3のケースとほぼ同じですが、ブログBの処理が遅延してブログAのタイムアウトにひっかかってしまう場合です。「エラーになったのに相手のブログに送信されている」というのは、このケースが一番多いのではないでしょうか。
その他、トラックバック先のファイルが見つからない、ブログBで受信してエラーレスポンスを返却した等のケースが考えられます。
なお説明では便宜上、「正常・異常・準正常」と分けていますが、個人的な解釈に基づいています。
*1:ただし自ブログで「トラックバック成功」と認識させるには、重複送信する手しかありません(ブログによって動作は異なるかもしれません)
- 当ブログのダウンロード数ランキング30
- ブログ開設7周年
- 2010年ブログ総括(アクセスの多かったエントリーベスト30など)
- ネットで成功しているのは〈やめない人たち〉である
- ブログを訪れる人が使っているブラウザの推移を調べてみた
- ブログ開設6周年
- 2009年ブログ総括
- ブログ開設5周年記念・【TB企画】あなたのおすすめブログツール・ブログサービス
- 2008年ブログ総括
- ブログの単位・ブログ記事の単位
- ブログ開設4周年記念・【TB企画】あなたのおすすめブログ
- 2007年ブログ総括
- MovableType コンテスト 2007
- 高品質な音楽を配信する音楽版 YouTube 「Blogmusik」
- feed meter「ランキング Top 300」で一番多く使われているブログは何か?
- ブログを続けるための3つのポイント
- ブログ開設3周年記念・【TB企画】あなたのおすすめサービス・ツール
- Technorati 「リンクカウントグラフ」で被リンク数の推移をブログに表示する
- Scuderia Ogapietti
- Movable Type コンテスト 2006 入賞
- HighSlide JS と prototype.js の競合を解消する
- いつまで経っても
- Highslide JS でサムネイル画像を拡大表示する
- ブログを続けるための3つのポイント
- Movable Type 4 のテンプレート構造
- HighSlide JS の onclick 属性を JavaScript で登録する
- prototype.js と pngfix.js の競合を解消する
- Lightbox JS で画像を表示する
- Movable Type 4 ベータ版情報(その2:Movable Type 3.3 との機能差分)
- Movable Type 4 ベータ版情報(ブログ画面・テンプレート構成・追加テンプレート・タグ)
