Edzy_Java

            BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
            58 隨筆 :: 12 文章 :: 11 評論 :: 0 Trackbacks

          三大核心功能:

          • RSS
          • Permalink
          • Trackback Pin

          RSS
          ??????? 首先談RSS,RSS其實很多朋友都已有了解。RSS是站點用來和其他站點之間共享內容的一種簡易方式(也叫聚合內容),通常被用于新聞和其他按順序排列的網站,一段項目的介紹也可以是包含新聞的全部介紹等。或者僅僅是額外的內容或者簡短的介紹。這些項目 的鏈接通常都能鏈接到全部的內容。網絡用戶可以借助RSS Reader在不打開網站內容頁面的情況下閱讀支持RSS輸出的網站內容。網站提供RSS輸出,有利于讓用戶發現網站內容的更新。

          ??????? 現在很多站點都有RSS Feed,那么為什么是Blog的核心呢?RSS 本質上中是一種遵循W3C RDF規范的XML格式,Blog和RSS結合十分緊密,自Blog一誕生以來,標準的Blog站點都支持RSS技術規范,能夠包含網站的Logo、Link、標題、內容等等。

          Permalink

          ??????? 中文翻譯一般叫做固定鏈接,其實我覺得翻譯成靜態鏈接更為貼切。下面切入正題:

          ??????? 不得不承認,將動態網頁鏈接rewriting成靜態鏈接是最保險和穩定的面向搜索引擎優化方式。

          ??????? 此外隨著互聯網上的內容以驚人速度的增長也越來越突出了搜索引擎的重要性,如果網站想更好地被搜索引擎收錄,網站設計除了面向用戶友好(User Friendly)外,搜索引擎友好(Search Engine Friendly)的設計也是非常重要的。進入搜索引擎的頁面內容越多,則被用戶用不同的關鍵詞找到的幾率越大。在Google的算法調查一文中提到一個站點被Google索引頁面的數量其實對PageRank也是有一定影響的。由于Google 突出的是整個網絡中相對靜態的部分(動態網頁索引量比較小),鏈接地址相對固定的靜態網頁比較適合被Google索引(怪不得很多大網站的郵件列表歸檔和BLOG按日期歸檔的文檔很容被搜的到),因此很多關于面向搜索引擎 URL設計優化(URI Pretty)的文章中提到了很多利用一定機制將動態網頁參數變成像靜態網頁的形式:

          實現方式主要有2種:

          ??????? 具體實現細節不是本文重點,不再細述。很多BLOG程序后臺都能打開此功能,也要注意WEB服務器的設置,使用虛擬主機無法設置服務器的朋友請參考path_info的一些資料。

          靜態地址還有什么好處:

          • 隱藏后臺實現:這在后臺應用平臺的遷移時非常有用:當從asp遷移到java平臺時,對于前臺用戶來說,根本感受不到后臺應用的變化;
          • 簡化數據校驗:比如我們需要將應用從news.asp?id=234遷移成news.php?query=234時,前臺的表現可以一直保持為 news/234.html。從實現應用和前臺表現的分離:保持了URL的穩定性,而使用WEB服務中的mod_rewrite甚至可以把請求轉發到其他后臺服務器上。

          ??????? 從技術層面來講,論壇如果想被搜索引擎更多的關注的話,同樣可以實現Permalink。

          Trackback

          ??????? TrackBack最早是Movable上的一個小功能。可以說就是這個小功能在blog界卻掀起了一場革命。

          ??????? TrackBack為將全世界無數個blog連接起來的功能。例如,當你讀了某個網站的文章,想對此寫下自己的感想。這個時候利用網站準備的討論功能進行留言是很最常見的做法。但這樣只是把自己的評論意見寫下來向別人的網站投稿,而你自己手里卻什么也沒留 下。

          ??????? TrackBack 則與之有很大的區別。可以把評論寫到自己網站上。然后向原始文章的服務器發送該網頁的URL及標題、部分正文、網站名稱等信息(注)。盡管這一過程只是稱之為“發送TrackBackPing”,但通過這種辦法,在原始文章的地方就留下了你的評論的URL 、標題等部分信息。當然別人也可以向原始文章發送TrackBack Ping,所以在原始文章中就將包括你的TrackBack Ping在內的所有評論都記錄了下來。

          ??????? 此外,如果你在自己網站上也設置了TrackBack Ping功能的話,那么誰都可以通過TrackBack Ping來發表針對你的意見了。這樣,多家網站就通過相關話題而聯接起來。各種評論在因特網上就像網眼一樣聯接起來。這樣就創造出了與日記網站完全不同的文化。
          ??????? 注:發送地址采用原始文章指定的URL,這一URL就稱為“TrackBack Ping URL”。TrackBack的技術標準刊登在“LowLife.jp”的blog網站上。

          ??????? 如果你使用的是服務商提供的Blog服務,服務商沒有提供Trackback怎么辦?或者你的空間不足以放下太多的Trackback回復,又怎么辦?到HaloScan.com去看看。

          ??????? 什么是Trackback呢? http://www.donews.net/weaver2000/archive/2004/12/08/197144.aspx

            簡單說來,Trackback是網站與網站之間互相通告的一種方法。它能讓甲對乙說:“這篇文章可能是你感興趣的”,要實現這一動作,甲向乙發送一個Trackback Ping(引用通告)即可。在這種情況下,一個ping就是一條從一個web服務器發送到另一個服務器的短消息(a small message)。

            Trackback Ping是由Moveable Type發明的規范,他們說Trackback是"a framework for peer-to-peer communication and notifications between web sites"。這里是他們的Trackback技術規范文檔:http://www.movabletype.org/docs/mttrackback.html

            舉個例子來說明一下。比如我在魚頭的Blog中看了一篇我感興趣的文章,對這篇文章我自己有一些看法,如果按照傳統BBS的做法,我需要在魚頭這篇文章下發表自己的評論,但這樣做的話我的文字只能存在于魚頭的網站上,我無法再維護自己的這篇評論。另一個情況是我在自己的Blog中也在寫一篇相類似的文章,我希望魚頭也能來看一看我的這篇,傳統BBS的習慣還是得到魚頭的文章下發一篇回復,把我的URL貼過去。

            但有了Trackback Ping,我們的Blog不再需要這樣做。

            Blog跟BBS有點重要的不同,Blog是一種個人創作,用Blog來發表自己的東西,保存自己的東西,即使是對他人Blog文章的評論也要在自己的Blog中永久保留下來。通過Trackbak,我就可以在自己的Blog中發表文章,同時把自己這篇文章的URL地址Ping到魚頭的那篇文章上去。這樣,所有閱讀魚頭文章的人也能通過Trackback順藤摸瓜地來我的Blog看我的文章。

            所以,當我們的Blog有了Trackback Ping功能,那么誰都可以通過Trackback Ping來發表意見和評論了。這樣,多家Blog網站就通過相關話題而聯接起來。各種評論在Internet上相互連接而織成一張大網。因此,可以說,Trackback創造出了Blog與BBS、Diary完全不同的文化,Blog的世界通過Trackback而變成真正的無限互連。

            作為Blogger,讓我們習慣于這樣討論問題和做評論吧:把內容寫在自己的Blog里面,Trackback Ping到別人的Blog。這個概念是論壇模式里從來沒有的,稱為Remote Commenting。

            如何在Blog中實現Trackback?

            在有Trackback功能的Blog系統中,每篇Blog文章都有兩個URL,一個是要訪問這篇文章所使用的URL,另一個就是Trackback Ping URL(引用通告地址),它是用來接受來自其他Blog網站Trackback Ping的程序。當我發表文章的時候,想要通知魚頭的話,只需要把魚頭那篇文章的Trackback Ping URL貼到我這邊文章中來,我提交文章時,系統就會按照這個URL發送一個Ping給魚頭的那篇文章。而魚頭則將在自己的文章下看到類似這樣的一個引用通告:

            標題: Joyhero的文章
            來自: Joyhero的Blog
            摘要: Joyhero的文章內容摘要...
            地址: http://joyhero的文章地址

            這個Trackback Ping是通過標準的HTTP協議從我的Blog發送到魚頭的Blog的,我的Blog發送一個POST格式的HTTP請求到魚頭那篇文章的Trackback Ping URL。這個請求的content type是application/x-www-form-URLencoded,它大概是這個樣子的:

            POST http://魚頭文章的TrackbackPingURL
            Content-Type: application/x-www-form-URLencoded
            title=Joyhero的文章&url=http://Joyhero的文章地址&excerpt=Joyhero的文章摘要&blog_name=Joyhero的Blog

            早期版本的Trackback規范中,Ping是GET方式的HTTP請求,現在不再支持GET方式,只能用POST方式。參數包括:

            title - 文章的標題
            excerpt - 文章的摘要。在Movable Type系統中,如果摘錄信息超過255個字符將會被截斷為252個字符,并在后面增加...三個字符
            url - 文章的永久連接。象其它永久連接一樣,這個連接應可能準確地在頁面中定位文章的入口,因有疑問時這個鏈接會用到
            blog_name - 發表文章的blog的名稱
            在上述的參數中只有url是必須的。如果title沒有提供,url的值將被用作標題。

            當我的Blog發出這個Trackback Ping后,將接收一個簡單的XML格式應答,如果Ping成功,那么應答的格式如下:
            
            <?xml version="1.0" encoding="iso-8859-1"?>
            <response>
            <error>0</error>
            </response>

            而失敗應答的格式為:
            <?xml version="1.0" encoding="iso-8859-1"?>
            <response>
            <error>1</error>
            <message>The error message</message>
            </response>

            TrackBack 的簡單概念和實現架構

            TrackBack 初看起來很難理解, 不過理解之后就不會有問題了.
            基本上它的構想如下:

          1. 某個Blog A 上有你感興趣主題, 你想在自己的 Blog B 上發一個相關的主題, 并且希望發表的內容和回復自動發到Blog A 上.
          2. 這時你就可以復制 A 上面相關的 TrackBack 鏈接, 輸入到你的 Blog B 中的那個主題的 TrackBack URL 框中.
          3. 之后你的主題和后面所有回復的摘要都會自動發往 Blog A 的那個主題中.

            說白了, 就是一個跨站點的留言系統. (希望算是比較正確的描述 )

          TrackBack 的實現有兩個重點:
          1. 作為 Blog 服務端時(也就是 Blog A), 需要能接收到各個使用了 TrackBack 連接的 Blog 發送到自己這里的信息并發回反饋.
          需要解析發來的數據, 不過這個很容易實現.
          2. 作為客戶端時(Blog B), 需要在有新的回復時通過指定的鏈接發出內容摘要給服務端.
          目前官方文檔定義了兩種方式:
          1) 通過 QueryString (正在逐步廢除)
          2) 通過 Post Form 格式 (通過 HTTP Header 模擬的 Form Post)
            PHP 可以通過 fopen 實現. ASP 可以通過 ServerXMLHTTP 實現(老的 XMLHTTP 性能和功能不理想). PERL 的請參考 MovableType.

            其它的就是 TrackBack List RSS 和 AutoDiscovery. 前者我實現了, 后者沒有打算, 雖然還算簡單.
          Trackback List 沒多大用處, 只是用 XML 列出所有發到此 URL 的所有 Trackback 罷了.

          AutoDiscovery 其實就是在頁面里面隱藏一段代碼, 給 Trackback 客戶端自動尋找到 Trackback URL 而已(有人說 AutoDiscovery 會毀了 TrackBack 的實用性, 我深以為然, 因為這會給 spam robot 可乘之機).

            但是目前 Trackback 還存在編碼不同的問題, 因為規范里面沒有規定. 例如我的 Blog 是 GB2312 而別人的是 UTF-8, 那么發過去就是亂碼. 要把 Blog 轉成 UTF-8 就需要 Windows 2000 Server 及更高版本的服務器了. 為此猶豫中.



          最后用一句話總結這三大功能:
          • RSS:能讓用戶更方便的訂閱
          • Permalink:能更好的讓你的文章被搜索引擎關注
          • Trackback:能更好的與其他Blog進行交流、討論、溝通
          posted on 2006-11-15 18:14 lbfeng 閱讀(259) 評論(0)  編輯  收藏 所屬分類: 新技術雜談
          主站蜘蛛池模板: 从江县| 文昌市| 电白县| 建平县| 巴塘县| 台中县| 五莲县| 江西省| 夏津县| 昌平区| 乐至县| 泰安市| 大埔区| 蒲江县| 砀山县| 宜宾市| 青岛市| 比如县| 镇宁| 巴林左旗| 武隆县| 磴口县| 孟州市| 比如县| 孟连| 枣强县| 宝丰县| 陕西省| 鹿泉市| 永清县| 鸡泽县| 阿拉善左旗| 镇平县| 安化县| 盐城市| 民勤县| 铜川市| 佛冈县| 牙克石市| 余姚市| 莎车县|