公众号旧文
微信群二维码实际上是一个链接
是不是你也以为微信群二维码就是微信群二维码。
扫码、确认、进群。
整个过程理所当然。
但刚刚再一次扫码加群时,我才第看到了微信群二维码背后的真实模样。
一、一次意外的扫码失败
刚看到一个微信群二维码。
在电脑上右键扫一扫。
本以为会像平时一样直接弹出入群页面。
结果却出现了一行让我有些意外的提示:
无法访问此网站
weixin://jump/mainframe/56041916690@chatroom
ERR_INVALID_URL

相信你看到这个界面的第一反应也会是:
微信群二维码怎么会变成一个网址?
而且还是一个看起来完全不像网址的网址。
二、微信群二维码本质上是一个链接
很多人以为二维码里面存储的是某种特殊数据。
实际上,大多数二维码只是把一段文字编码进去。
比如:
https://www.example.com
扫码后浏览器打开网页。
再比如:
mailto:test@example.com
扫码后打开邮件客户端。
微信群二维码也是同样的原理。
只不过它存储的内容类似于:
weixin://jump/mainframe/56041916690@chatroom
看到这里就能理解了。
二维码并不是群本身。
二维码只是一个入口。
真正起作用的是这个链接。
三、什么是 weixin://
大家最熟悉的是:
http://
https://
浏览器认识这些协议,能够正常访问网页。
而微信使用的是自己的协议:
weixin://
类似的协议很多:
steam://
qq://
alipay://
mailto:
tel:
这些协议都不是网页地址。
而是告诉操作系统:请启动对应的软件,并执行某个动作。
因此:
weixin://jump/mainframe/56041916690@chatroom
翻译一下就是:打开微信,然后进入指定群聊。
四、为什么平时看不到这个链接
因为绝大多数情况下,人们是在微信里面扫码。
流程大概是:
微信扫一扫
↓
识别二维码
↓
发现是 weixin:// 链接
↓
微信直接处理
↓
显示入群页面
整个过程都在微信内部完成。
用户根本不会看到二维码真实存储的内容。
所以很多人一直不知道微信群二维码是链接。
五、浏览器为什么会报错
这次之所以看到错误页面,是因为扫码工具把二维码内容交给了浏览器。
浏览器看到的是:
weixin://jump/mainframe/56041916690@chatroom
但浏览器只认识:
http://
https://
对于:
weixin://
浏览器自己不会处理。
于是直接返回:
ERR_INVALID_URL
从浏览器角度来看,这不是一个可以访问的网站。
六、微信群二维码并不神秘
进一步思考会发现,不仅微信群二维码如此。
微信生态里的很多二维码本质都差不多。
例如:
- 微信好友二维码
- 微信群二维码
- 微信收款码
- 微信公众号二维码
- 小程序二维码
它们最终都对应某种内部标识。
二维码只是把这些标识编码出来。
扫码后再由微信解释这些数据。
换句话说,二维码本身不是功能,二维码只是入口。
真正提供功能的是微信客户端。
七、从这件小事看到的互联网真相
很多人每天都在扫码。
但很少有人会去思考二维码里面到底存储了什么。
事实上,大多数二维码都没有想象中那么神秘。
它们往往只是:
- 一段网址
- 一段文字
- 一个电话号码
- 一个邮箱地址
- 一个应用程序链接
微信二维码也是如此。
只不过微信把这些细节隐藏得很好。
以至于绝大多数用户一辈子都不会看到:
weixin://jump/mainframe/56041916690@chatroom
这样的内容。
而这次因为浏览器无法识别微信协议,反而让我看到了微信群二维码背后的真实面貌。
有时候,错误提示比成功页面更有意思。
因为成功的时候,人们只会得到结果。
而失败的时候,往往能看到系统是如何工作的。