TrackBack新手指南(編譯) TrackBack ping:在這種情況下,一個(gè)ping就是一條從一個(gè)web服務(wù)器發(fā)送到另一個(gè)服務(wù)器的短消息(a small message)。
什么是TrackBack?簡單說來,TrackBack被設(shè)計(jì)用來提供一種方法以實(shí)現(xiàn)網(wǎng)站之間的互相通告:它是一種方法,能讓甲對乙說(甲、乙指兩個(gè)人,下同),“這篇文章可能是你感興趣的”。要實(shí)現(xiàn)這個(gè)動(dòng)作,甲向乙發(fā)送一個(gè)TrackBack ping即可。TrackBack ping:在這種情況下,一個(gè)ping就是一條從一個(gè)web服務(wù)器發(fā)送到另一個(gè)服務(wù)器的短消息(a small message)。 歷史TrackBack在2002年秋第一次以開放規(guī)范的形式發(fā)布。MT2.2作為一種協(xié)議和一項(xiàng)功能對其進(jìn)行了實(shí)現(xiàn),這是TrackBack的第一個(gè)實(shí)現(xiàn)。由于只有眾多的站點(diǎn)都支持TrackBack,它的真正價(jià)值才能得以體現(xiàn),所以TrackBack從一開始就被設(shè)計(jì)為一個(gè)開放系統(tǒng):一個(gè)其它的blog工具能很簡單地實(shí)現(xiàn)的開放系統(tǒng)。截止目前,已有下列工具支持TrackBack:
如何使用TrackBackTrackBack的使用依賴于具體的blog/trackback工具。下面主要針對MT的TrackBack使用。小書簽(bookmarklet) 在MT中使用TrackBack的最簡單的方法,是借助小書簽,它利用其自動(dòng)發(fā)現(xiàn)功能可以從你正在閱讀的當(dāng)前頁面中找到一組可進(jìn)行TrackBack的文章鏈接。(自動(dòng)發(fā)現(xiàn)意味著你無需做任何相關(guān)的工作,因?yàn)橄到y(tǒng)會(huì)替你完成)。如果你還沒有在MT中設(shè)置過小書簽,則:
在MT的某些漢化版本中,需要將$MTHOME/lib/MT/L10N/zh_cn.pm做如下修改: ‘Post to MT Weblog‘ => ‘‘,
,否則看不到這個(gè)鏈接。改為 ‘Post to MT Weblog‘ => ‘Post to MT Weblog‘, 當(dāng)你閱讀其它blog上感興趣的文章時(shí),點(diǎn)擊“Post to MT Weblog”,如果當(dāng)前頁面中可以TrackBack的文章,它的標(biāo)題將會(huì)自動(dòng)加入到一個(gè)下拉列表中供選擇來ping(如果只有一個(gè)滿足要求的文章,則會(huì)用checkbox選項(xiàng)代替的下拉列表)。頁面上顯示其它元素,都是你在前面配置時(shí)選中的。如果那時(shí)所有項(xiàng)都選擇了,則頁面跟正常的”新增文章”非常相似。相關(guān)的項(xiàng)都輸入完后,點(diǎn)擊“保存”(post),則在重建立文章以后,系統(tǒng)會(huì)自動(dòng)ping你從下拉列表中選中的那篇文章。 這兒有一個(gè)操作演示錄像(9M大?。莔ov格式,需要apple的QuickTime播放器播放。 通過文章編輯表單來TrackBack ping 如果你不想用小書簽,仍可以在MT中使用TrackBack ping功能,只是不是那么簡單而已。這時(shí),需要找到被ping的目標(biāo)文章的TrackBack Ping URL。下面描述一下如何一步步的操作。注意:TrackBack Ping Url不是文章的永久鏈接,而是另外一個(gè)鏈接。
利用”自動(dòng)發(fā)現(xiàn)“功能來發(fā)送”TrackBack Ping” 在MT中,最后一種使用”TrackBack Ping”的方法,是在你的blog設(shè)置中打開“自動(dòng)發(fā)現(xiàn)(TrackBack auto-discovery,也有人譯為自動(dòng)挖掘)”選項(xiàng)。 當(dāng)此選項(xiàng)打開后,MT利用自動(dòng)發(fā)現(xiàn)在功能分析你的文章中的鏈接所對應(yīng)的頁面,是否接收“TrackBack Ping”,如果接收,則自動(dòng)從你的文章發(fā)送一個(gè)”TrackBack Ping”到那個(gè)頁面。此時(shí),你不需要在”Urls to Ping”輸入框中輸入內(nèi)容,也不需要用小書簽來查找可ping的鏈接。
協(xié)議TrackBack是一個(gè)基于REST的點(diǎn)對點(diǎn)(peer-to-peer)通信和網(wǎng)站間通告的架構(gòu)。協(xié)議基于”推送(Push)”的原理,而不是“拉取(pull)”:如果你想和其它站點(diǎn)分享信息,你要初始化連接,而不是等待其它站點(diǎn)發(fā)現(xiàn)你(和你的信息)。借助TrackBack,站點(diǎn)可以交流相關(guān)資源。例如,如果甲想通知乙他寫了一些有意思的/想關(guān)的/震撼性的東東,甲發(fā)送一個(gè)TrackBack ping給乙。這完成了兩件事:
TrackBack協(xié)議對任何blog工具都是開放的,具體規(guī)范參見http://www./cgi-bin/mallgate/20040514/http://www./docs/mttrackback.html, 或我的翻譯. 目前的應(yīng)用遠(yuǎn)程評論目前,TrackBack主要被用作一個(gè)遠(yuǎn)程評論系統(tǒng):如果我在我的blog上發(fā)表了一篇文章來評價(jià)你在你的blog上的文章,我的blog工具會(huì)通報(bào)給你的blog工具以通知你此事。接著你的blog將顯示我的文章的摘錄部分,并提供了一個(gè)回到我的文章的鏈接。這使那些到你的網(wǎng)站的訪問者知道其他人是如何評價(jià)你的文章的--換句話說,就是評論(comment)一樣,只是這評論是在我的網(wǎng)站而不是在你的網(wǎng)站上,而在以前我只是在你的文章后留言評論。這讓我能控制我的文章。如果我想修改一個(gè)打字錯(cuò)誤,或者改變一些措詞,于是我就可以做到。如果我在你的站點(diǎn)上留言,我沒有權(quán)限來修改那些文字。換句話說,TrackBack使你更能控制你的內(nèi)容。 TrackBack ping的威力,在于它創(chuàng)建了你我站間的一個(gè)直接引用。這個(gè)引用可以用來建立一個(gè)分布式的交談(conversation)。例如,另外一個(gè)blogger(女)發(fā)布文章闡述了對我的文章的想法,并發(fā)送給我一個(gè)TrackBack ping.這個(gè)交談(conversation)可從你最初的文章,追蹤到我這兒,再到她那兒。這個(gè)線路可以通過TrackBack的元數(shù)據(jù)自動(dòng)畫出來。請看這個(gè)線路:http://www./cgi-bin/mallgate/20040514/http://www.sixapart.com/safari-thread.html,它開始的文章是http://www./cgi-bin/mallgate/20040514/http://www.sixapart.com/log/2003/01/initial_reactio.shtml.
內(nèi)容聚合
一些以這種方式使用TrackBack的站點(diǎn):
將來可能的應(yīng)用內(nèi)容控制隨著時(shí)間的流失,你在你的blog上的花費(fèi)的時(shí)間越來越多,你的blog的內(nèi)容也越來越充實(shí),你可能想控制所有你在其它的blog或系統(tǒng)中發(fā)布的內(nèi)容。例如,如果你曾就某人的文章在其站點(diǎn)上發(fā)布過自己的想法,他想將這些想法發(fā)布到自己的blog中來,于是你可就可控制它們了?;蛘?,如果你在amazon.com上發(fā)表過評述(review),你可能想把這個(gè)評述組織到你的自己的站點(diǎn)中來。TrackBack有助于做到這些。有個(gè)例子,Matt Haughey的Posted Elsewhere工具條(http://a./),將他在別外寫的內(nèi)容聚合起來。 反過來,TrackBack可以工作:不是在別人的站點(diǎn)上發(fā)表文章,而是作者在自己的blog上發(fā)表文章,然后將TrackBack ping發(fā)往其它站點(diǎn)。例如,如果amazon.com評述可以接收TrackBack ping,你可信息控制在自己的網(wǎng)站上,讓amazon.com連到你這兒。
我的一點(diǎn)想法一個(gè)頁面,要想提高自己在google的pagerank值,關(guān)鍵在于能得到來自高pagerank值的頁面的鏈接。一般說來,這種連接的建立,低值的頁面只能被動(dòng)的接收,而blog工具中的comments和trackback,提供了一種在別人的頁面上主動(dòng)建立連接的方法。如果google沒有針對這種情況調(diào)整算法,這將成為一種快速提升pagerank的途徑。尤其是“自動(dòng)發(fā)現(xiàn)”功能,能自動(dòng)找出鏈接,檢查相關(guān)的頁面是否接收trackback ping,將會(huì)更加劇對這種手段的利用。真的是這樣的嗎? 參考資料 A Beginner‘s Guide to TrackBack http://www./trackback/beginners/ Posted by Hilton at November 6, 2003 04:49 PM | TrackBack Comments
dsfsdfsfsdsd Posted by: dfdf at May 18, 2004 03:04 PMLe Premier ministre Tony Blair avait affirm?mercredi devant la chambre des Communes que ces clich?s ?taient "presque certainement des faux". Posted by: cash advance at May 15, 2004 10:41 AMHi gao, 請問如何在mt.cfg中設(shè)置trackback信息。我的主機(jī)是51.net的。目前的trackback無法實(shí)現(xiàn)。 Thank you for the knowledge you provide! Posted by: xiongzm at February 15, 2004 04:32 AM五:Google的前1,000項(xiàng)搜索結(jié)果 請記?。簡慰縋ageRank是無法使你獲得比較理想的網(wǎng)站排名的。PageRank只是網(wǎng)站排名算法中的一個(gè)乘積因子,若你網(wǎng)站的其它排名因子的得分是零,就算你的PageRank是兩百億,最后的得分還是零。但這并不是說PageRank就毫無價(jià)值,而是在什么情況下PageRank才能完全發(fā)揮其功力。 如果在Google上進(jìn)行廣泛搜索,看起來好象有幾千個(gè)結(jié)果,但實(shí)際顯示最多前1,000項(xiàng)結(jié)果。例如對“car rental”,顯示搜索結(jié)果為5,110,000,但實(shí)際顯示結(jié)果只有826個(gè)。而且用時(shí)只有0.81秒。試想一下,0.84秒的時(shí)間就可以計(jì)算這五百萬搜索結(jié)果的每個(gè)排名因子得分,然后給出最終我們所看到的網(wǎng)站排名結(jié)果嗎? 答案就在于:搜索引擎選取與查詢條件最相關(guān)的那些網(wǎng)頁形成一個(gè)子集來加速搜索的速度。例如:假設(shè)子集中包含2,000個(gè)元素,搜索引擎所做的就是使用排名因子中的兩到三個(gè)因素對整個(gè)數(shù)據(jù)庫進(jìn)行查詢,找到針對這兩三個(gè)排名因子得分較高的前2,000個(gè)網(wǎng)頁。(請記住,雖然可能有五百多萬搜索結(jié)果,但最終實(shí)際顯示的1,000項(xiàng)搜索結(jié)果卻是從這個(gè)2,000頁的子集中提煉出來的。) 然后搜索引擎再把所有排名因子整合進(jìn)這2,000項(xiàng)搜索結(jié)果組成的子集中并進(jìn)行相應(yīng)的網(wǎng)站排名。由于按相性進(jìn)行排序,子集中越靠后的搜索結(jié)果(不是指網(wǎng)頁)相關(guān)性(質(zhì)量)也就越低,所以搜索引擎只向用戶顯示與查詢條件最相關(guān)的前1,000項(xiàng)搜索結(jié)果。 請注意,在搜索引擎生成這2,000項(xiàng)網(wǎng)頁的子集中我們強(qiáng)調(diào)了“相關(guān)性”這個(gè)詞。即搜索引擎找尋的是與查詢條件有共同主題的網(wǎng)頁。如果這時(shí)候我們把PageRank考慮進(jìn)去,就很可能得到一些PageRank很高但主題只是略微相關(guān)的一些搜索結(jié)果。顯然這有違搜索引擎為用戶提供最為相關(guān)和精準(zhǔn)的搜索結(jié)果的原則。 一旦理解了為什么會(huì)如此,就說明了為什么你應(yīng)當(dāng)首先努力在“頁面”因子和錨文本上下足工夫,最后才是PageRank。所以關(guān)鍵在于: 你必須首先在頁面因素和/或錨文本上下足工夫,使這些排名因子能夠獲得足夠的得分,從而使你的網(wǎng)站能夠按目標(biāo)關(guān)鍵詞躋身于這2,000項(xiàng)搜索結(jié)果的子集中,否則PageRank再高也與事無補(bǔ)。 TrackBack技術(shù)規(guī)范原文是TrackBack Technical Specification,此處是譯文。 TrackBack 技術(shù)規(guī)范
名稱mttrackback - TrackBack 技術(shù)規(guī)范
作者Benjamin and Mena Trott,
版本1.1
描述本文描述了TrackBack, 一個(gè)點(diǎn)對點(diǎn)通信和網(wǎng)站間互相通告的框架. TrackBack的中心思想是TrackBack ping的概念, 從本質(zhì)上講,TrackBack ping是一個(gè)請求,通告“資源A與資源B相關(guān),或有鏈接到資源B.” 一個(gè)TrackBack “資源” 用一個(gè)TrackBack Ping URL表示, 這是一個(gè)標(biāo)準(zhǔn)的URI. 利用TrackBack,站點(diǎn)間可以互相通告相關(guān)的資源. 例如,如果博客(weblogger)甲希望通知博客乙他寫了一些有趣的/相關(guān)的/駭人聽聞的文字,甲發(fā)送一個(gè)TrackBack ping給乙。這完成了兩件事:
發(fā)送一個(gè)TrackBack PingTrackBack使用REST(Representational State Transfer,http://www.ics./~fielding/pubs/dissertation/top.htm)模式工作, 請求通過標(biāo)準(zhǔn)的HTTP調(diào)用傳送。要發(fā)送一個(gè)TrackBack ping, 客戶端向服務(wù)器端發(fā)送一個(gè)標(biāo)準(zhǔn)的HTTP請求,然后接收一個(gè)簡單XML格式的應(yīng)答(詳見下述). 在TrackBack系統(tǒng)中,接收TrackBack pings的URL叫TrackBack Ping URL.一個(gè)典型的TrackBack Ping URL如http://www./cgi-bin/mallgate/20040514/http://www./mt-tb.cgi/5, 其中 為了發(fā)送一個(gè)ping, 客戶端發(fā)送一個(gè)POST格式的HTTP請求到TrackBack Ping URL. 請求的內(nèi)容的content type應(yīng)是 POST http://www./mt-tb.cgi/5 Content-Type: application/x-www-form-urlencoded title=Foo+Bar&url=http://www./&excerpt=My+Excerpt&blog_name=Foo 注意: 在舊版本的TrackBack規(guī)范中,ping是用GET格式的HTTP請求發(fā)送的. 這種方式將不再支持; 2003年1月發(fā)布的Movable Type系統(tǒng)將會(huì)去掉對GET方式的支持。. 可能的參數(shù)包括:
在Movable Type系統(tǒng)中, 在上述的參數(shù)中只有 url 是必須的. 如果 title 沒有提供,, url 的值將被用作標(biāo)題. 對上述請求的應(yīng)答信息,以XML格式編排,從而能實(shí)現(xiàn)應(yīng)用層的錯(cuò)誤檢查。(HTTP層的錯(cuò)誤將會(huì)這樣返回--例如,如果TrackBack URL 所指的資源在服務(wù)器上已經(jīng)不存在,狀態(tài)碼 一個(gè)成功的ping將會(huì)返如下應(yīng)答: <?xml version="1.0" encoding="iso-8859-1"?> <response> <error>0</error> </response> 一個(gè)失敗的ping將會(huì)返如下應(yīng)答: <?xml version="1.0" encoding="iso-8859-1"?> <response> <error>1</error> <message>The error message</message> </response> 當(dāng)然,應(yīng)用程序應(yīng)該允許將來根據(jù)需要增加字段,但應(yīng)答的 XML 結(jié)構(gòu)保持不變.
取回TrackBack Pings要取回某個(gè)特定TrackBack Ping URL收到的ping,向它發(fā)一個(gè)GET格式的HTTP請求,請求字符串(query string)是 ?__mode=rss. 在規(guī)范的將來修訂中,--一旦從POST轉(zhuǎn)換到GET的過渡期結(jié)束--這將非常簡單,向TrackBack Ping URL發(fā)送一個(gè)GET請求,將返回一列ping. 一個(gè)GET請求樣例如下:: GET http://192.168.1.103/mt/mt-tb.cgi/3?__mode=rss 對此請求的應(yīng)答,要么返回如上所述的錯(cuò)誤信息,要么返回一列用RSS規(guī)范格式標(biāo)志的TrackBack pings, 整個(gè)應(yīng)答內(nèi)容的覆巢無根元素是 例如: <?xml version="1.0" encoding="iso-8859-1"?> <response> <error>0</error> <rss version="0.91"><channel> <title>TrackBack Test</title> <link>http:///the/trackback/item/link/</link> <description>Description of the TrackBack item</description> <language>en-us</language> <item> <title>TrackBack Demo</title> <link>http:///the/permalink/</link> <description>Excerpt</description> </item> </channel> </rss></response> 在標(biāo)簽
TrackBack Ping URLs的自動(dòng)發(fā)現(xiàn)TrackBack客戶端需要一種方法,來確實(shí)一個(gè)特定的URL或blog文章的TrackBack Ping URL. 服務(wù)器在生成頁面時(shí)應(yīng)內(nèi)嵌RDF; RDF 描述關(guān)于該文章的元數(shù)據(jù),允許客戶端自動(dòng)發(fā)現(xiàn)TrackBack Ping URL. RDF樣例如下:: <rdf:RDF xmlns:rdf="http://www./1999/02/22-rdf-syntax-ns#" xmlns:dc="http:///dc/elements/1.1/" xmlns:trackback="http:///public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www./archive.html#foo" dc:identifer="http://www./archive.html#foo" dc:title="Foo Bar" trackback:ping="http://www./tb.cgi/5" /> </rdf:RDF> 注意: 由目前的檢查器將嵌入XHTML頁面的RDF信息視為不合規(guī)范,要通過檢查需要將上述的RDF信息用注釋符括起來: <!-- <rdf:RDF xmlns:rdf="http://www./1999/02/22-rdf-syntax-ns#" ... </rdf:RDF> --> 這不是一個(gè)完美的解決方案,但是作為一個(gè)臨時(shí)的應(yīng)對措施它可正常工作. 其中的dc: 元素是標(biāo)準(zhǔn)的Dublin Core 元素; trackback:ping元素來自RSS 1.0/2.0的TrackBack模塊,參見http://www./cgi-bin/mallgate/20040514/http:///public/xml/rss/module/trackback/. 給定一個(gè)URL my_url, 客戶按下列步聚來尋找TrackBack Ping URL:
客戶端一旦確實(shí)了TrackBack Ping URL, 它就可以發(fā)送TrackBack ping了 (參見 發(fā)送 TrackBack Ping). 自動(dòng)發(fā)現(xiàn)的代碼樣例參見 例子.
例子
TrackBack實(shí)現(xiàn)樣例為幫助那些有遠(yuǎn)見的開發(fā)人員在他們的系統(tǒng)中實(shí)現(xiàn) TrackBack , 我們發(fā)布了一個(gè)TrackBack的獨(dú)立的實(shí)現(xiàn),它不依賴于Movable Type系統(tǒng). 它可接收通過HTTP請求發(fā)送來的ping, 將ping存放在本地的文件系統(tǒng)中, 且可以返回某個(gè)特定TrackBack項(xiàng)(文章)的一列RDF格式的ping. 如果你要求,它還可以靜態(tài)地產(chǎn)生 RSS文件. 例如,要將最近的15個(gè)ping列在工具條,這項(xiàng)功能就會(huì)?}上用場。 這個(gè)獨(dú)立的TrackBack實(shí)現(xiàn)可從http://www./cgi-bin/mallgate/20040514/http://www./downloads/tb-standalone.tar.gz下載. 它的發(fā)行遵循 Artistic License. Artistic License條款的描述在 http://www./cgi-bin/mallgate/20040514/http://www.perl.com/language/misc/Artistic.html. 它的安裝和使用指令說明在http://www./cgi-bin/mallgate/20040514/http://www./docs/tb-standalone.html.
自動(dòng)發(fā)現(xiàn)的代碼樣例use LWP::UserAgent; sub discover_tb { my $url = shift; my $ua = LWP::UserAgent->new; $ua->agent(‘TrackBack/1.0‘); $ua->parse_head(0); ## So we don‘t need HTML::HeadParser $ua->timeout(15); ## 1. Send a GET request to retrieve the page contents. my $req = HTTP::Request->new(GET => $url); my $res = $ua->request($req); return unless $res->is_success; ## 2. Scan te page contents for embedded RDF. my $c = $res->content; (my $url_no_anchor = $url) =~ s/#.*$//; my $item; while ($c =~ m!(<rdf:RDF.*?</rdf:RDF>)!sg) { my $rdf = $1; my($perm_url) = $rdf =~ m!dc:identifier="([^"]+)"!; next unless $perm_url eq $url || $perm_url eq $url_no_anchor; ## 3. Extract the trackback:ping value from the RDF. ## We look for ‘trackback:ping‘, but fall back to ‘a(chǎn)bout‘ if ($rdf =~ m!trackback:ping="([^"]+)"!) { return $1; } elsif ($rdf =~ m!about="([^"]+)"!) { return $1; } } } 這段Perl定義了一個(gè)過程 discover_tb. 給定一個(gè) URL, 它會(huì)試圖找到與此URL相對應(yīng)的TrackBack Ping URL. 如果找到了,它會(huì)返回 TrackBack Ping URL; 否則返回
變動(dòng)
1.1 (2002年10月10日)
1.0 (2002年8月28日)規(guī)范首次發(fā)布. |
|