• yam天空
  • 天空部落
  • 新聞
  • 登入 註冊 網誌隨便逛
  • 加入天空部落
  • 黃靖倫親自陪你吶喊!

網誌 相簿 影音 PK吧! Honda嬉遊趣
即時新聞 影音新聞 新聞專輯 政治新聞 財經新聞 娛樂新聞 運動新聞 兩岸新聞 科技新聞
管理介面 發表網誌 發表日記 上傳相片 上傳影音 管理留言
推薦這個部落格: 177

卡蘭坦斯蓋普恩基地

Foundation of Alan Krantas - SW, SF, Reading, Translation, Travel, Life | ※科奇幻 / 星戰 / 文學讀後 | 翻譯列表
※建議使用Google Chrome瀏覽本站,有破圖請嘗試Ctrl+F5更新

【基地首頁】 |【留聲迴影】 |【相簿藝廊】 |【訪客足跡】
漫遊德奧捷:旅館、餐廳短記 | 主頁 | 先睹為快:詭計大師(Master of Deception)
November 3, 2007
網站聯合化:RSS的原理、介紹與發展以文找文
krantas 在天空部落發表於16:55:37 | 部落格‧部落客
鼓勵此網誌:0 


在看到PTT部落格板有人提出的一些疑問後,基於自己曾有過研究,本文是給那些對RSS等網站聯合化技術沒有或僅有少數概念的網友,作為原理、介紹與發展方面的一個入門。





什麼是網站聯合化?

網站聯合化(Web syndication)或內容聯合化(content syndication)是一種新型態的網站內容傳播方式。它的基本概念是發佈(publish)和訂閱(subscribe)──使用者無須主動造訪網站,就可以得知各網站的更新內容為何,以及內容在哪裡。

那麼,這跟email的訂閱有什麼不同?

網站聯合化的方式是透過「Web feed」,讓所謂的閱讀器(Reader)讀取資料。一些人以為Web feed是像電視和收音機一樣把資料送過來;但事實上,Web feed只是一個類似網頁的檔案,從頭到尾都放在來源網站上,但會定期把網站的更新內容寫進去。等使用者打開閱讀器時,閱讀器便會讀取feed的內容,再判斷有哪些新的東西存在。

許多關於聯合化技術的介紹會說這是一種推送技術(push technology);也就是網站主動把資料傳給訂閱者,而不是由使用者去尋找資料。不過,網站實際上雖然發佈的文章,卻並不把資料丟給他們,而是讓閱讀器去讀取Web feed。訂閱者所要做的就是記住feed網址就行了。


網站內容發佈,然後輸出XML檔案形式的摘要;訂閱者的閱讀器,也就是資料的整合點再取得這些摘要並顯示給訂閱者看



網站聯合化的好處

透過Web feed訂閱網站的使用者,不需如email般提供自己的位址,免除垃圾與廣告信件的困擾;對內容發佈者而言,feed既然會自動產生,亦無須多花時間把內容主動丟給訂閱者。閱讀器並能按來源網站以一目瞭然的方式列出內容,不想看的大可跳過。若不想再訂閱,只須從閱讀器刪除feed的網址即可。

多方便啊!所有的部落格、線上新聞瞬間一把抓,花更少的時間就能輕易追蹤各站台的動態,減少遺漏任何訊息的機會。



聯合化的更新通知不是自動的

是半自動的。等你登入、打開閱讀器或按下更新(refresh),閱讀器才會抓取可能存在的新內容,所以不能保證資料發佈對你有及時性,除非你隨時都開著並檢查閱讀器的動態。

這也會造成一個潛在的問題:使用者若太久不用閱讀器,就會錯過較早發佈的文章,因為feed的更新範圍有限。見後進一步說明。



Web feed如何讓閱讀器得知網站的內容

目前主要的聯合化規格,包括RSS 2.0、Atom 1.0等,都使用了XML(Extensible Markup Language,延伸標記語言)技術。簡單的說,XML是一種很像HTML的標記語言,用標籤(tag)作為文字資料的解釋性資料。

本質為文字檔案的網頁,之所以能顯示出不同的格式與效果,正是因為瀏覽器解讀了網頁中的HTML標籤所致;XML基本上也是如此,只不過它並不用來顯示網頁,而可用於各種不同的文件,提供遵循特定規格的程式進行解讀、提高資料交換的便利性與效率。

舉例來說,下面這是一本書的標題:

2001: Space Odyssey

可是接收的程式不能直接曉得這幾個字代表著什麼。但是若是這樣:

<booktitle>2001: Space Odyssey</booktitle>

只要閱讀器的程式事先曉得「booktitle」標籤的意義,它便能知道夾在這標籤內的文字指的是一本書的標題。進一步地,標籤可以用更複雜的巢狀形式組合:

<book>
    <title>2001: Space Odyssey</title>
    <arthur>Arthur C. Clarke</arthur>
    <publishyear>1968</publishyear>
    <type>science fiction</type>
</book>

在「book」的標籤裡面,包含了一本書的標題、作者、出版年與類型的子標籤。

RSS 2.0與Atom 1.0都使用XML標籤來指示網站內容的各項資料,方法相當類似,只不過在標籤的定義上有所差異。我們在後面會以最普遍的RSS 2.0為例解說。



網站聯合化技術與規格簡史

聯合化技術的前身源自1996年,Ramanathan Guha在蘋果電腦公司發展了後設內容架構(Meta Content Framework,MCF)。1997年Guha轉到網景(Netscape)任職後,他將之發展為資源描述架構(Resource Description Framework,RDF);而網景的Dan Libby便以RDF為基礎,於1999年推出了第一代使用XML的RSS──RDF Site Summary,版本編號RSS 0.9。

UserLand公司的Dave Winer曾發展了類似頻道定義格式(Channel Definition Format,CDF)的scriptingNews發佈技術;CDF由微軟在97年發展,但從未推廣起來。隨RSS 0.9的推出,Dave Winer向網景提出了多次建議;Dan Libby於是參考這些建議與scriptingNews的部分特色,推出更簡潔的RSS 0.91,縮寫也改名為豐富站台摘要(Rich Site Summary)。

網景逐漸對網站聯合化失去了興趣,不過RSS的發展大戰才正要開打。2000年,一個名為RSS-DEV的小組制定了RSS 1.0;問題是,這個技術延續的不是RSS 0.91,而是較早的RSS 0.9。認為對方破壞版本演進的Dave Winer不甘示弱,繼續以RSS 0.91改良出RSS 0.92──以及今日廣為使用的,2002年的RSS 2.0。

2003年,有鑑於RSS版本的混亂,以及UserLand公司對RSS 2.0的著作權控制,一群網路使用者合作發展了開放性的Atom 0.3規格;這項規格於05年改良為Atom 1.0,並被納入為網際網路工程工作特別小組(Internet Engineering Task Force,IETF)的標準之一。同樣在2005年,RSS 1.0也升級成RSS 1.1,延續其有別於RSS 2.0的路線。

Google自己發展了一種稱為GData的東西,合併了RSS 2.0以及Atom 1.0的特色,用於自己提供之服務的對外應用。



RSS 2.0 vs. Atom 1.0

其實這兩種規格大同小異,只不過Atom 1.0在部分功能上比RSS 2.0更豐富、延伸性更強。儘管如此,RSS 2.0的使用仍更普遍,一部分或許和出現的時間較早有關;它也足以滿足一般部落格、新聞的基本需求。

有些人以為Atom是RSS的一種;這點是錯誤的。



RSS 2.0規格簡介

你可以從你自己的部落格打開RSS 2.0的文件,或者觀看官方的範例。下面我以敝人的部落格為例說明。

第一行告訴瀏覽器這是個XML文件,編碼為utf-8:(所以你會看到瀏覽器以顏色顯示標籤)

<?xml version="1.0" encoding="utf-8" ?>

第二行指出這個XML文件使用RSS 2.0的規格:(後面通常有一串網址,那是給設計者參考規格之來源文件用的)

<rss version="2.0">

接下來的「channel」標籤指出來源站台的基本資料:

<channel>
    <title>卡蘭坦斯蓋普恩基地</title>
    <link>http://blog.yam.com/krantas</link>
    <description>Blog of Alan Krantas - SW‧SF‧Reading‧Travel‧Life</description>
    <language>zh-tw</language>
    <generator>blog.yam.com</generator>
    <copyright>All Rights Reserved</copyright>
    ...
</channel>

如果你了解之前的例子,應該可以看出這部分指出了站台標題、網址、描述(介紹或副標題)、文件產生者等資訊。

緊接著基本資訊、也包含在「channel」標籤內的則是「item」項目:

<item>
    <title>丹‧西蒙斯:海柏利昂(與試閱)</title>
    <description>
丹‧西蒙斯(Dan Simmons)的1989年重量級作品《海柏利昂》(Hyperion),中文版即將於11/1問世。<br />
<br />
<img src="http://pics5.blog.yam.com/4/userfile/k/krantas/blog/1472190211b827.jpg" alt="" style="border-width: 0; float: left; margin: 0.7em 1.4em 0.7em 0;" /><br />
    </description>
    <link>http://blog.yam.com/krantas/article/12289931</link>
    <category>中譯科奇幻出版報導</category>
    <pubDate>Fri, 26 Oct 2007 15:06:34 +0800</pubDate>
</item>

以部落格來說,一個「項目」就是一篇文章、一項資料內容,有標題、描述、分類、網址、發佈日期等等。閱讀器抓的就是這些東西,程式遵循RSS 2.0文件的格式解讀對應的標籤,然後排列顯示給使用者看。

有興趣的人可從官方的RSS 2.0定義文件找到進一步的說明。除了既有的標籤種類不得更改外,RSS 2.0允許設計者加上額外的標籤以提供額外資訊。



Web feed的更新與輸出方式

Web feed文件的產生方式大致有三種,一種是來源網站定期地讀取資料庫後產生一份新的文件;二是這個文件本身就是個程式(如ASP、JSP等),在使用者讀取時才動態地抓取最新的文章。第三種是feed並不由來源網站提供,而是如Feedburner等第三方以其它方式抓取(「燒」)而產生的,讓本身沒提供feed的網站(如Blogger)也能提供訂閱。

不過,雖然之前我提到Web feed能顯示網站更新,feed文件顯示的其實只是「本文件更新時該站最新的N篇文章」。閱讀器之所以能指出哪些文章是新的,或者你尚未瀏覽過,是因為閱讀器幫你記錄了站台的閱讀歷程;天空部落內建的陽春型RSS閱讀器,或是嵌在部落格邊欄的聯播列表等,就能原封不動地顯示feed的目前所有內容。



我可以選擇Web feed輸出符合想要條件的內容嗎?

不行,因為feed文件的產生,以及會抓哪些文章是事先設計好的。一個Web feed通常會包含十到三十篇最新的內容,而這和在某些欄位會丟什麼樣的資料,都由文件的產生網站或程式設計者決定;例如,文章的描述欄可能是整篇文章的內容,也可能只是一部份的摘要。

只顯示摘要是比較合理的,因為這能減少閱讀器顯示的資訊,也能避免網站失去該有的點閱量。不過目前為止,RSS等技術本身仍缺乏針對個別訂閱者需求調整的能力,多半還是得倚賴閱讀器。



Web feed與email的再次比較

由於Web feed包含的篇幅數量有限,過舊的文章會從來源站台的feed文件裡消失;訂閱者若太久不開閱讀器,就會因而錯過了內容。相反的,email就算沒有收取,也會儲存在使用者於郵件伺服器的空間內,直到空間被塞滿為止。

一般來說,網路聯合化適用於尋常性、經常性、非對象性的網站更新:email則適合作為緊急性、高時效性,以及有對象性的通知。



如何知道一個站台有沒有提供RSS或Atom?

在站台中尋找例如 、 、 或 等類似的連結圖案。一些瀏覽器如Internet Explorer 7與Firefox也擁有內建偵測Web feed是否存在的功能。

某些閱讀器也會提供搜尋功能,這對尋找未顯示出來或不屬於來源站台的第三方feed(如Feedburner)尤其好用。



如何訂閱RSS或Atom

網路上的教學文章很多,在此便不多介紹;基本上只要找個閱讀器,例如Google Reader,把要看的站台的feed網址丟進去就行了。現在許多閱讀器都支援多種聯合化輸出規格,而且可以對feed進行分類、標記等,還有分析、追蹤等額外功能。

訂閱前請先注意feed的內容:現在除了部落格、新聞等本文之外,連迴響、相簿、播客(podcast)等都可能有獨立的feed。網路書櫃aNobii甚至可提供全站推薦書籍資訊的feed。

天空部落一陣子前開啟的Bloglive!也是閱讀器的一種。差別只在於,它提供了圖形化介面、交友和訊息流通的功能。



閱讀器間的訂閱清單轉移

大多閱讀器可以用OPML檔案格式輸出/輸入訂閱清單,很輕鬆地便能轉移,不必再花時間重複設定訂閱站台。



為什麼有時候閱讀器會抓到重複的文章?

可能是原作者對文章事後作了修改,或者Web feed在重新產生時修改了某些資訊,以致閱讀器認為那是不同的文章。這種情況是沒辦法處理的,除非你能說服網站管理者修改feed文件的產生程式。



閱讀器可以備份他人的文章嗎?

如Google Reader等的閱讀器會紀錄你瀏覽過的所有摘要,但並不會保存原始的來源文章。



RSS可以用來備份自己的網站?可以但不實際

有些部落格、像天空可以用RSS的格式輸出站台內容,並儲存XML文件在使用者的電腦上。事實上,XML的用途本來就使用在文件與資料上,能當作某種資料庫使用,也已有許多用於商業自動化資料交換的例子,如電子企業延伸標記語言(Electronic Business using eXtensible Markup Language,ebXML)與延伸商務報告語言(Extensible Business Reporting Language,XBRL)等。

從天空的情況來看,RSS備份只不過是讓你把目前的Web feed產出文件存起來而已,本質上沒什麼備份的效果;尤其,這份文件涵蓋的文章數有限,也只包含了文章的摘要。這樣的話,用別種形式的XML格式來備份(若網站能夠支援),大概還比較有用吧。





暫時先寫到這裡,有想到別的再補充吧。



留言 (0) | 引用 (0) | 人氣 () | 轉寄
此分類上一篇:小圈圈、社群與部落格 | 主頁 | 此分類下一篇:2007全球華文部落格大獎入圍宣告
引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
留言 (0筆)
發表你的留言 (字數限制 最多 2000 個中文字)
私密留言: 是 否
Name:





是 否
內容:
系統公告
卡蘭坦斯
個人圖檔
ID:krantas
暱稱:卡蘭坦斯
地區:臺北市
  • 訂閱 |
    • 我要訂閱此部落格的
    • 日記
    • 網誌
    • 相簿
  • 好友 |
    • 好友功能
    • 觀看好友列表
    • 觀看人緣列表
  • 人氣 |
  • 簡介 

蓋普恩基地部落格
書蟲,部落客,科幻小說迷,譯者。

krantas@gmail.com



本部落格屬於中華民國(台灣)

留言管理原則

亞汶四號學院
  • 【Star Wars】 (6)
    • 星戰出版碎碎念 (32)
    • 星戰出版新聞 (132)
    • 星戰訪談錄 (9)
    • 艾倫星戰專欄 (17)
    • 星戰影視 (33)
    • 星戰文錄 (20)
  • 【科幻研究】 (5)
    • 科幻研究文錄 (18)
    • 中譯科奇幻出版報導 (39)
    • 科幻讀者的隨寫 (24)
    • 科奇幻電影消息/雜談 (9)
    • . (4)
  • 【閱讀書札】 (8)
    • 星戰小說讀後 (44)
    • 科幻小說讀後 (185)
    • 奇幻小說讀後 (31)
    • 科奇幻中短篇讀後 (3)
    • 文學小說讀後 (63)
    • 非小說文學讀後 (3)
    • 非文學的角落 (2)
    • 圖像小說讀後 (1)
  • 【翻譯檔案夾】 (9)
    • 翻譯檔案夾:中短篇 (9)
    • 翻譯檔案夾:帝國闇影 (4)
    • 翻譯檔案夾:生存者的考驗 (27)
    • 翻譯檔案夾:亡靈代言人 (19)
    • 翻譯檔案夾:衝出黑暗天 (12)
    • 翻譯檔案夾:戰士學徒 (11)
    • 翻譯檔案夾:武器浮生錄 (30)
    • 翻譯檔案夾:垂幕戰爭 (15)
    • 翻譯檔案夾:算計的上帝 (12)
  • 【部落與生活】 (4)
    • 部落格‧部落客 (21)
    • 音樂留聲機 (10)
    • 沉默電影院 (70)
    • 亡靈紀念誌 (4)
  • 【寫,故我在】 (4)
    • 翻譯記事 (1)
    • 時事雜評 (14)
    • 隨筆記事 (29)
    • 私人塗鴉簿 (12)
  • 【屬於旅行】 (5)
    • 2006 紐西蘭之旅 (23)
    • 2007 冬戀義大利 (51)
    • 2007 漫遊德奧捷 (39)
    • 2008 埃及足跡 (26)
    • 內湖─大直基隆河畔 (4)
坦提斯山儲藏庫
  • 【科奇幻/星戰小說讀後列表】
  • 【翻譯列表】
  • 【埃及足跡】遊記
  • 【漫遊德奧捷】遊記
  • 【冬戀義大利】遊記
  • 【紐西蘭之旅】遊記
消失的卡米諾
搜尋:
小雅加閱讀欄

塔圖音日晷



Google Analysis
蓋普恩基地 - Technorati
蓋普恩基地 - HEMIDEMI
蓋普恩基地 - funP推推王
蓋普恩基地 - plurk
我的書櫃 - aNobii

Plurk.com

亞拉基信標
尼布隆報日誌
當日人次:
累積人次:
krantas的共和參議院大廳
  • 珍:
    我想問一下洗禮堂與鐘塔...
  • 小土豆:
    版主您好: ...
  • seraphpiyochan:
    個人覺得Lord of...
  • yang:
    比較好奇的是拿光劍的是...
  • IVY:
    請問 I`ll...
  • Vivienne:
    製連結語法後,請按滑鼠...
  • 小馬:
    這種內容還蠻特別的,有...
  • vivienne:
    版主您好~~~ ...
  • Coco神話:
    我們班現在也在讀這篇&...
  • Vivienne:
    你講得好仔細喔~真厲害...
海狄恩航道
  • 《REPLAY》試讀心得收集
  • [試讀]...
  • 意第緒語的冷硬是什麼?...
  • 讀《午間女人》,聽見無...
  • 午間女人試讀心得收錄
  • 科幻小說《時間迴旋》:...
  • 試讀心得PART3
  • 諸神水滸。尼爾R...
  • 我們讓你和他互毆:《美...
  • 莎拉杜南特《維納斯的誕...
絕地聖殿典藏館
  • 卡蘭坦斯星戰網
  • 星際大戰官方網站
  • TheForce.net
  • 非官方星戰百科辭典
  • 銀河帝國:星戰軍武資料庫
  • 星戰技術評論研究
  • 非官方複製人戰役網
  • Wookieepedia - Star Wars Wiki
  • 星戰官方外傳新聞區
  • TheForce.net 出版品年表
  • New Jedi Order 外傳百科
  • Del Rey 星戰出版區
  • 盧卡斯藝術
歐伯拉史蓋圖書館
  • Classic Science Fictions
  • Fantastic Fiction
  • Locus Online
  • SF Site
  • SFReviews.net
  • SFRevu
  • *SF Signal - A Science Fiction Blog
  • 電腦叛客特區
  • 百萬年的孤寂
  • *灰鷹巢城
  • *科幻國協新聞中心
  • *科幻國協在台辦事處
  • *Yenchin's Lair
  • *Imagination, runs wild.
  • *中時開卷部落格
  • *全球科奇幻評論部落格與網站列表
  • *《時間迴旋》中文官方部落格
  • *ACROSS - 馥林文化
  • *A M E R I C A N G O D S - 《美國眾神》官方部落格
  • *遠流好書伸展台
  • *獨小說刺蝟的優雅 (商周)
  • *商周出版
  • *不獨小說
  • *皇冠讀樂Club
  • *繆思出版
  • *漫遊者槅
  • *木馬文化部落格
  • *麥田文學部落格
  • *太陽社
  • *【READ, or DIE:不讀會死毒舌俱樂部】
  • *讀爽
  • 故事說不完
  • *薛曼夢工廠
超空間全像網
  • IMDB 電影資料庫
  • *藍藍的 movie blog
  • *亂字訣
  • *quickest girl in the frying pan
  • Filmtracks 電影配樂評論
  • *soundtrack weekly
  • iWant 銀河網路西洋音樂
  • 呆伯特與他的朋友
  • BBS 中文新聞網
  • *波羅日報
  • 西方藝術風格
科瑞利安貿易航線
  • Amazon.com
  • 博客來網路書店
  • 誠品網路書店
  • 金石堂網路書店
  • 胡思二手書店
馬爾寇五號堡壘
  • 台北市公車動態資訊系統
  • 線上英漢字典
  • Webster's Online Dictionary
  • Google 字典
  • Google Reader
  • Google Translate
  • 維基百科 (英文版)
  • 偽基百科 (中文版)
  • YouTube
  • 偷玩小遊戲
  • 天空知識首頁
  • Star Wars Books Online
  • The Locus Index to SF Awards
RSS 訂閱
RSS2
ATOM
贊助商
CC授權
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam 天空 本身立場。
POWERED BY
POWERED BY 天空部落
會員登入│免費註冊