公众号旧文

微信群二维码实际上是一个链接

作者:胖子阅读 —

是不是你也以为微信群二维码就是微信群二维码。

扫码、确认、进群。

整个过程理所当然。

但刚刚再一次扫码加群时,我才第看到了微信群二维码背后的真实模样。

一、一次意外的扫码失败

刚看到一个微信群二维码。

在电脑上右键扫一扫。

本以为会像平时一样直接弹出入群页面。

结果却出现了一行让我有些意外的提示:

无法访问此网站
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

这样的内容。

而这次因为浏览器无法识别微信协议,反而让我看到了微信群二维码背后的真实面貌。

有时候,错误提示比成功页面更有意思。

因为成功的时候,人们只会得到结果。

而失败的时候,往往能看到系统是如何工作的。