我们来详细解释一下计算机中的“伪协议”(Pseudo-Protocol)。
简单来说,伪协议是一种在特定上下文(最常见的是在浏览器或操作系统中)使用的、不以传统网络传输为目的的特定指令格式。它通常以
开头,但并不用于在互联网上发送数据包,而是用来触发本地应用程序的特定功能。
协议名://
核心特征与目的
不进行网络通信:与
、
http://
等真实网络协议不同,伪协议不会通过网卡向远程服务器发送请求。它的操作完全在本地完成。
ftp://
触发本地动作:它的主要作用是调用操作系统或应用程序(如浏览器、邮件客户端、资源管理器)内置的功能。
特定的格式:通常遵循
的格式,参数部分根据协议的不同而有很大差异。
<协议名>:<参数>
常见的伪协议示例
1. 在 Web 开发与浏览器中
这些协议常用于 HTML 中的链接 (
标签) 或 JavaScript 中,以实现一些交互功能。
<a>
javascript:
作用:执行一段 JavaScript 代码。
示例:
<a href="javascript:alert('Hello World!');">点击我</a>
在浏览器地址栏输入
会弹出一个警告框。
javascript:alert('test');
注意:由于安全和用户体验原因,在现代 Web 开发中,不推荐在 HTML 中使用
伪协议,更推荐使用
javascript:
等方法来绑定事件。
addEventListener
mailto:
作用:启动默认的邮件客户端,并预填充收件人、主题、正文等信息。
示例:
<a href="mailto:someone@example.com">发送邮件</a>
<a href="mailto:someone@example.com?cc=another@example.com&subject=Hello&body=This is a test">发送复杂邮件</a>
tel:
作用:在移动设备上,提示用户拨打指定的电话号码。
示例:
<a href="tel:+86123456789">拨打客服电话</a>
data:
作用:将小块数据直接内嵌在 URL 中,而不是从外部服务器加载。这通常用于嵌入图片或其他小文件。
示例:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...">
2. 在 Windows 操作系统中
Windows 系统也使用了一些伪协议来访问 shell 功能或系统文件夹。
file:
作用:用于访问本地文件系统上的文件。虽然它确实指定了一种“文件”协议,但其操作范围是本地,因此常被归为伪协议讨论。
示例:
(在浏览器中打开会显示该文本文件的内容)
file:///C:/Users/YourName/Document.txt
(Resource)
res:
作用:用于访问可执行文件(如
,
.exe
)内部嵌入的资源(如图标、位图、字符串)。
.dll
示例:过去在旧版 Windows 中用于访问系统图标。
shell:
作用:在 Windows Explorer 中打开特殊的 shell 文件夹。
示例:
:直接打开“下载”文件夹。
shell:Downloads
:打开“回收站”。
shell:RecycleBinFolder
:打开桌面。
shell:Desktop
你可以在 Windows 的运行对话框(Win + R)中直接输入这些命令来快速访问这些位置。
和
ms-setting:
ms-windows-store:
作用:在 Windows 10/11 中,用于深层链接到系统设置页面或 Windows 应用商店的特定页面。
示例:
:直接打开“设置”->“网络和 Internet”->“WLAN”页面。
ms-settings:network-wifi
:打开应用商店中某个特定产品的页面。
ms-windows-store://pdp/?productid=9WZDNCRFHVJL
3. 在其他软件中
许多应用程序也定义了自己的伪协议来实现与其他程序的交互。
:用于从网页浏览器中启动 Steam 客户端并执行特定操作,如安装游戏或添加好友。
steam:
示例:
(启动并运行CS:GO)
steam://run/730
:用于深层链接到 Spotify 客户端中的歌曲、专辑或播放列表。
spotify:
:用于从网页或电子邮件中快速启动并加入 Zoom 会议。
zoommtg:
安全考虑
伪协议虽然方便,但也带来了安全风险:
滥用与网络钓鱼:恶意网站可能通过伪协议调用本地安装的应用程序,或者尝试用令人困惑的对话框欺骗用户。
命令执行:某些伪协议(如果设计不当)可能被用来执行系统命令,从而导致安全漏洞。
应用程序劫持:如果某个应用程序注册了一个伪协议(如
),恶意软件可能会抢先注册相同的协议名,从而劫持本该由合法程序处理的请求。
myapp://
因此,浏览器和操作系统会对伪协议的使用进行限制,例如在用户点击链接时弹出确认对话框,或者完全禁止某些高风险的操作。
总结
特性 | 真实协议 (如 http, ftp) | 伪协议 (如 javascript, mailto) |
---|---|---|
目的 | 在网络上传输数据 | 触发本地应用程序的特定功能 |
通信 | 通过网卡与远程服务器通信 | 无网络通信,仅在本地处理 |
示例 |
|
|
上下文 | 主要用于网络 | 主要用于浏览器、操作系统、特定软件 |
总而言之,伪协议是一套指令系统,它借用类似URL的格式来“命令”本地软件做某件事,而不是去某个地方获取资源。