每天在地址栏里敲 https:// ,你有没有想过,中间那两个斜杠到底图什么?当年学计算机网络时,老师把协议、域名、端口讲了个遍,却没提过这茬,好像它天生就该在那儿。真相挺反常识:这两个斜杠基本没有实际功能,连发明者本人也承认是个错误。
几天拍脑袋,三十年还账
1990 年,蒂姆·伯纳斯·李在 CERN 那台 NeXT 电脑上折腾万维网,顺手定下了网址的写法。他当时想借用大家眼熟的形式,于是在协议名后面加了冒号,又加了 // 表示“后面跟着的是主机地址”。

问题在于,冒号本身已经把协议和后面的内容分开了,再塞两个斜杠纯属重复。2009 年 10 月,他在华盛顿的一次活动上亲口认账,说双斜杠“既没意义也没必要”,是他唯一想改掉的设计。据公开资料,他当时还算了一笔账:这些年人类为了敲这两个多余的斜杠,浪费了大量时间和纸张。
斜杠本身不背锅
得说清楚,没用的是那两个“固定前缀”,不是斜杠这个字符。单个斜杠在网址里干的是正经活——标示层级,/blog/url-structure 这种路径全靠它分段。

后来的标准把 // 正式定义为“权威组件(authority)”的开头,RFC1738、RFC2396一路写到RFC3986。换句话说,它本来可有可无,可一旦写进标准、被全世界的浏览器和服务器实现,就再也摘不掉了。这就是典型的历史包袱:不是改不动技术,是改不动已经跑在地球上的几十亿设备。
有意思的是它歪打正着留下个用法——以 // 开头的“协议相对地址”,能让浏览器自动沿用当前是 http 还是 https。早些年做网站运维,HTTP 往 HTTPS 迁移那阵子,不少人还特意这么写来兼容两种情况。
地址栏里的活化石
如今你在 Chrome、Edge 里根本看不见这俩斜杠,浏览器早就默认把它藏了,只在你点进地址栏编辑时才露出来。手机上更是连 www 都懒得显示。厂商用这种方式默默给当年的设计打了补丁。

同类的“祖传设计”还有不少。他后来还吐槽过域名里用点分隔也是败笔,理想形态本该是 http:com/example/www/... 这种全斜杠写法。听着是不是有点眼熟?键盘的 QWERTY 布局、邮件里那堆祖传头字段,全是一个路数——约定一旦铺开,就硬生生成了标准。
干这行越久越能体会,代码里最贵的从来不是写下来的逻辑,而是那些“当时觉得合理、后来没人敢动”的决定。你还知道哪些看似天经地义、其实是历史意外的技术细节?欢迎来 云栈社区 一起聊聊。
|