可扩展消息与存在协议:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(机器人:删除2个模板:WebCite、​Webarchive)
(机器人:清理不当的来源、移除无用的模板参数)
 

(未显示同一用户的2个中间版本)

第5行: 第5行:
{{网络协议}}
{{网络协议}}
[[File:XMPP logo.svg|缩略图|200px|可擴展消息存在協議標誌]]
[[File:XMPP logo.svg|缩略图|200px|可擴展消息存在協議標誌]]
'''可扩展消息与存在协议'''({{lang-en|E'''x'''tensible '''M'''essaging and '''P'''resence '''P'''rotocol}},缩写:'''XMPP''';前稱'''Jabber'''<ref>{{Cite web |url=http://www.jabber.com/CE/AboutUs |title=Jabber Inc. - About Us |accessdate=2009-09-14 |archive-date=2007-07-03 |archive-url=https://web.archive.org/web/20070703003323/http://www.jabber.com/CE/AboutUs |dead-url=yes }}</ref>)是一种以[[XML]]為基礎的開放式[[即時通訊]]協定,是經由網際網路工程工作小組([[IETF]])通過的[[網際網路]]標準。XMPP因为被[[Google Talk]]应用而被广大网民所接触。
'''可扩展消息与存在协议'''({{lang-en|E'''x'''tensible '''M'''essaging and '''P'''resence '''P'''rotocol}},缩写:'''XMPP''';前稱'''Jabber'''<ref>{{Cite web |url=http://www.jabber.com/CE/AboutUs |title=Jabber Inc. - About Us |accessdate=2009-09-14 }}</ref>)是一种以[[XML]]為基礎的開放式[[即時通訊]]協定,是經由網際網路工程工作小組([[IETF]])通過的[[網際網路]]標準。XMPP因为被[[Google Talk]]应用而被广大网民所接触。


== 歷史 ==
== 歷史 ==
第11行: 第11行:
[[Jeremie Miller]]于1998年开始了这个项目。第一个公开版本于2000年5月发行。这个项目的主要产品是[[jabberd]],XMPP的服务器端软件。它既可以创建私人的XMPP网络,也可以加入全球的公共XMPP网络。XMPP的關鍵特色是,[[分散式]]的即時通訊系統,以及使用[[XML]]串流。
[[Jeremie Miller]]于1998年开始了这个项目。第一个公开版本于2000年5月发行。这个项目的主要产品是[[jabberd]],XMPP的服务器端软件。它既可以创建私人的XMPP网络,也可以加入全球的公共XMPP网络。XMPP的關鍵特色是,[[分散式]]的即時通訊系統,以及使用[[XML]]串流。


Jabber已经由[[IETF]] XMPP协议([https://web.archive.org/web/20100126233405/http://www.ietf.org/rfc/rfc3920.txt RFC3920])标准化。
Jabber已经由[[IETF]] XMPP协议([http://www.ietf.org/rfc/rfc3920.txt RFC3920])标准化。


Jabber是一個開放源碼形式組織產生的網絡即時通信協議。XMPP原本是為即时通讯而量身定製,但由於XML Stanza本身是XML元素,在基於XML靈活發展的特性下,使得XMPP也可以適用其他方面,已經得到了IETF的批准。XMPP與[[IMPP]]、[[PRIM]]、[[会话发起协议|SIP]]([[SIMPLE]])合稱四大IM協議主流,在此4大协议中,XMPP是最灵活的。
Jabber是一個開放源碼形式組織產生的網絡即時通信協議。XMPP原本是為即时通讯而量身定製,但由於XML Stanza本身是XML元素,在基於XML靈活發展的特性下,使得XMPP也可以適用其他方面,已經得到了IETF的批准。XMPP與[[IMPP]]、[[PRIM]]、[[会话发起协议|SIP]]([[SIMPLE]])合稱四大IM協議主流,在此4大协议中,XMPP是最灵活的。


2005年,[[Google]]发布了[[Google Talk]],這是一個[[IP電話]]及即時通訊的服務,即时通讯功能採用了開放的XMPP。预计这将对XMPP社区起很大的推动作用。初期此服務不支援伺服器到伺服器的通讯功能,所以未能完全發揮XMPP的分散式特色;雖然任何XMPP[[客戶端]]都能連接到Google Talk,但是用戶若欲登入Google Talk,必須擁有Google Talk帳號(即[[Gmail]]帳號),而用戶也無法與公共XMPP網路的用戶對談。自2006年1月17日起,伺服器到伺服器的通訊啟用了,Google Talk用戶可與其他XMPP公共網路的用戶對談。2013年5月,Google Talk升级为Hangouts,不再支持服务器到服务器的通讯。<ref>{{Cite web |url=http://tech.slashdot.org/story/13/05/20/2315216/google-drops-xmpp-support |title=Google drops XMPP support |access-date=2013-06-23 |archive-date=2019-10-02 |archive-url=https://web.archive.org/web/20191002034453/https://tech.slashdot.org/story/13/05/20/2315216/google-drops-xmpp-support |dead-url=no }}</ref>
2005年,[[Google]]发布了[[Google Talk]],這是一個[[IP電話]]及即時通訊的服務,即时通讯功能採用了開放的XMPP。预计这将对XMPP社区起很大的推动作用。初期此服務不支援伺服器到伺服器的通讯功能,所以未能完全發揮XMPP的分散式特色;雖然任何XMPP[[客戶端]]都能連接到Google Talk,但是用戶若欲登入Google Talk,必須擁有Google Talk帳號(即[[Gmail]]帳號),而用戶也無法與公共XMPP網路的用戶對談。自2006年1月17日起,伺服器到伺服器的通訊啟用了,Google Talk用戶可與其他XMPP公共網路的用戶對談。2013年5月,Google Talk升级为Hangouts,不再支持服务器到服务器的通讯。<ref>{{Cite web |url=http://tech.slashdot.org/story/13/05/20/2315216/google-drops-xmpp-support |title=Google drops XMPP support |access-date=2013-06-23 }}</ref>


2007年,2001年成立的Jabber軟件基金會更名為XMPP標準基金會<ref>[http://xmpp.org/xsf/press/2007-01-16.shtml Jabber Software Foundation Renamed to XMPP Standards Foundation] 1月16日2007年 - [http://www.jabber.org/ jabber.org] 仍旧被维护</ref>。
2007年,2001年成立的Jabber軟件基金會更名為XMPP標準基金會<ref>[http://xmpp.org/xsf/press/2007-01-16.shtml Jabber Software Foundation Renamed to XMPP Standards Foundation] 1月16日2007年 - [http://www.jabber.org/ jabber.org] 仍旧被维护</ref>。
第89行: 第89行:


== XMPP協議通過HTTP運輸 ==
== XMPP協議通過HTTP運輸 ==
在原來的規格,XMPP協議可以使用HTTP的方式有兩種:輪詢(polling)<ref>{{Cite web |url=http://xmpp.org/extensions/xep-0025.html |title=XEP-0025: Jabber HTTP Polling |access-date=2009-09-08 |archive-date=2020-10-29 |archive-url=https://web.archive.org/web/20201029115103/https://xmpp.org/extensions/xep-0025.html |dead-url=no }}</ref>與綁定(binding)<ref name="autogenerated1">{{Cite web |url=http://xmpp.org/extensions/xep-0124.html |title=XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) |access-date=2009-09-08 |archive-date=2021-02-13 |archive-url=https://web.archive.org/web/20210213223032/https://xmpp.org/extensions/xep-0124.html |dead-url=no }}</ref>。輪詢現在不推薦,基本上,輪詢意味著HTTP郵件存儲在伺服器端的資料庫上,客戶端必須一再地以HTTP的GET和POST的方式去抓取(以及刊出)其中的訊息。然而使用綁定的方式時,客戶端會保留一個長存的HTTP連線,等待一旦伺服器有新的訊息時,就立刻接收訊息。因為輪詢的結果往往是伺服端沒有新訊息,這種推送的通知模式比輪詢的方式更有效率。
在原來的規格,XMPP協議可以使用HTTP的方式有兩種:輪詢(polling)<ref>{{Cite web |url=http://xmpp.org/extensions/xep-0025.html |title=XEP-0025: Jabber HTTP Polling |access-date=2009-09-08 }}</ref>與綁定(binding)<ref name="autogenerated1">{{Cite web |url=http://xmpp.org/extensions/xep-0124.html |title=XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) |access-date=2009-09-08 }}</ref>。輪詢現在不推薦,基本上,輪詢意味著HTTP郵件存儲在伺服器端的資料庫上,客戶端必須一再地以HTTP的GET和POST的方式去抓取(以及刊出)其中的訊息。然而使用綁定的方式時,客戶端會保留一個長存的HTTP連線,等待一旦伺服器有新的訊息時,就立刻接收訊息。因為輪詢的結果往往是伺服端沒有新訊息,這種推送的通知模式比輪詢的方式更有效率。


由於客戶端使用HTTP,大多數防火牆允許客戶端獲取和留言沒有任何障礙。因此,即使使用XMPP協議的TCP端口被攔截,伺服器也能正常地傾聽一般的HTTP端口,其上的訊息也能保持暢通。還有一些網站更允許大眾經由瀏覽器登入進XMPP。尤有甚者,還有一些公共的伺服器同時擁有標準HTTP(80埠)和HTTPS(443埠),因此又有助於通過防火牆。
由於客戶端使用HTTP,大多數防火牆允許客戶端獲取和留言沒有任何障礙。因此,即使使用XMPP協議的TCP端口被攔截,伺服器也能正常地傾聽一般的HTTP端口,其上的訊息也能保持暢通。還有一些網站更允許大眾經由瀏覽器登入進XMPP。尤有甚者,還有一些公共的伺服器同時擁有標準HTTP(80埠)和HTTPS(443埠),因此又有助於通過防火牆。
第113行: 第113行:
* [http://xmpp.org/ XMPP Standards Foundation]
* [http://xmpp.org/ XMPP Standards Foundation]
* [https://xmpp-servers.404.city Open list of public XMPP servers]
* [https://xmpp-servers.404.city Open list of public XMPP servers]
* [https://web.archive.org/web/20171017022544/https://ulloo.net/ For your XMPP servers]
* [https://ulloo.net/ For your XMPP servers]
* [http://wiki.xmpp.org/web/XMPP_Case_Studies XMPP Case Studies]
* [http://wiki.xmpp.org/web/XMPP_Case_Studies XMPP Case Studies]
* [https://web.archive.org/web/20091024103254/http://xmpp.org/xsf/press/2004-10-04.shtml IETF Publishes XMPP RFCs]
* [http://xmpp.org/xsf/press/2004-10-04.shtml IETF Publishes XMPP RFCs]
* [https://web.archive.org/web/20060819034447/http://www.jabber.org/ Jabber.org]
* [http://www.jabber.org/ Jabber.org]
* [https://web.archive.org/web/20110811172434/http://archive.jabber.org/userguide/ Jabber User Guide] - End user introduction to XMPP (archive)
* [http://archive.jabber.org/userguide/ Jabber User Guide] - End user introduction to XMPP (archive)
* [http://imfreedom.org/ IM Protocol Wiki]
* [http://imfreedom.org/ IM Protocol Wiki]
* [http://twit.tv/floss49/ Podcast: FLOSS 49: XMPP] {{lang|en|Peter Saint-Andre}} interviewed by {{link-en|Randal Schwartz|Randal Schwartz}}和{{link-en|Leo Laporte|Leo Laporte}}
* [http://twit.tv/floss49/ Podcast: FLOSS 49: XMPP] {{lang|en|Peter Saint-Andre}} interviewed by {{link-en|Randal Schwartz|Randal Schwartz}}和{{link-en|Leo Laporte|Leo Laporte}}