关于协议注册的更多信息,请参考如下链接:
特定的 URL 伪协议需安装特定软件才有效。
特定的协议某些浏览器不支持。
所有浏览器 |
---|
百科全书对协议的定义是:"在两个计算端点之间建立或控制连接、通信或数据传输的约定或标准" 。实际上这些端点可以是两个单独的计算机,也可以是一个计算机中两个单独的点。
例如,从内存读取数据时,计算机必须访问硬盘上的存储区,通过数据总线将数据转移到内存,然后再将其传送至处理器。在每个端点,数据必须具有某种形式,以便发送方和接收方都能够恰当地处理数据。在最底层,数据就是一堆比特位的集合。只有在某个上下文中理解,这些比特集合才具有含义。如果发送方和接收方端点不能就上下文达成一致,那么被传输的数据就是无意义的。因此,协议是数据传输的基础。
我们常用类型的协议包括:IP TCP HTTP FTP Telnet POP3 SOAP SMTP SSH 等。
协议的运作,必须由特定的处理器与之关联。该处理器可以是软件程序,硬件,或软硬件结合体。
在 Windows 系统中,协议和它的处理器之间的关系,由注册表描述。也就是说,在一个协议可用前,我们必须先在注册表中注册,以描述该协议关联的处理器。
如下,是一个 ".reg" 文件,它描述了 "foo" URL协议,以及它的处理器 "program.exe"。
REGEDIT4 [HKEY_CLASSES_ROOT\foo] @="URL:foo Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\foo\shell] [HKEY_CLASSES_ROOT\foo\shell\open] [HKEY_CLASSES_ROOT\foo\shell\open\command] @="\"C:\\Program Files\\Application\\program.exe\" \"%1\""
双击运行该 ".reg" 文件,即可注册 "foo" URL协议。类似此类自定义的,非公共(如: HTTP )的协议,我们称之为伪协议。如果是自定义的 URL 协议,我们可称之为 URL 伪协议。
协议 "tencent://" 和 "msnim:chat" 是安装了 QQ 或 MSN 应用程序后,注册到本地系统的 URL 伪协议。要使其能正常运行,需在本地系统安装
QQ 或 MSN 应用程序。
请参考上一章中关于 URL 伪协议的说明,再观察如下腾讯的 Tencent://Message 协议的注册表文件(".reg")
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Tencent] @="TencentProtocol" "URL Protocol"="D:\\Program Files\\Tencent\\QQ\\Timwp.exe" [HKEY_CLASSES_ROOT\Tencent\DefaultIcon] @="D:\\Program Files\\Tencent\\QQ\\Timwp.exe,1" [HKEY_CLASSES_ROOT\Tencent\shell] [HKEY_CLASSES_ROOT\Tencent\shell\open] [HKEY_CLASSES_ROOT\Tencent\shell\open\command] @="\"D:\\Program Files\\Tencent\\QQ\\Timwp.exe\" \"%1\""
在浏览器地址栏中输入 "tencent://message/?uin=123",要打开本地 QQ 聊天窗口,首先是要在注册表中找到 "Tencent" 协议,然后调用
Timwp.exe 文件,并传入参数( uin=123 ),如果 QQ 帐号有效则弹出 QQ 聊天窗口。
根据以上的分析,要想打开 "tencent://" 之类的协议地址,必须要在本地安装相应的应用程序,以注册相关的协议,否则无法打开。
某些协议是由特定的厂商自定义的,如:"tencent://" 和 "msnim:chat" 之类,需安装特定的客户端软件以注册该类伪协议,方可正常使用。例如,安装 QQ 或 MSN 应用程序。
操作系统版本: | Windows 7 Ultimate build 7600 |
---|---|
浏览器版本: |
IE6
IE7 IE8 Firefox 3.6 Chrome 4.0.302.3 dev Safari 4.0.4 |
测试页面: | |
本文更新时间: | 2010-06-18 |
协议 伪协议 URL encent msnim:chat