网址里那两个斜杠,其实没什么用

网址里那两个斜杠,其实没什么用
知识混子每天在地址栏敲 https://,中间那俩斜杠到底图什么?
我学网络的时候,协议、域名、端口都讲过,唯独没人提过这一茬,好像它天经地义就该在那儿。
真相有点反常识:这两个斜杠基本没有实际功能,连发明者本人都承认是个错误。
一、当时顺手加的,后来改不掉
1990 年,蒂姆·伯纳斯-李在 CERN 那台 NeXT 电脑上搭万维网,顺手定下了网址的写法。
他的想法是借用大家眼熟的形式:协议名后面加个冒号,再加 // 表示「后面跟着的是主机地址」。
问题在于,冒号本身已经把协议和后面的内容分开了,再塞两个斜杠纯属重复。
2009 年 10 月,他在美国的一个科技会议上公开承认,说双斜杠「没有必要」。
二、斜杠本身不背锅
这里得说清楚:没用的是那两个「固定前缀」,不是斜杠这个字符。
单个斜杠在网址里干的是正经活——标示层级。/blog/url-structure 这种路径全靠它分段,少一个都不行。
后来的标准把 // 正式定义为「权威组件(authority)」的开头,从 RFC 1738、RFC 2396 一路写到 RFC 3986。
换句话说,它本来可有可无,可一旦写进标准、被全世界的浏览器和服务器实现,就再也摘不掉了。
这就是典型的历史包袱:不是技术改不动,是已经跑在地球上的几十亿台设备改不动。
三、歪打正着的一个用法
不过它倒是留下了一个挺实用的副产品:协议相对地址。
以 // 开头的链接,不带协议名,浏览器会自动沿用当前页面的协议:
1 | <script src="//cdn.example.com/lib.js"></script> |
在 http 往 https 迁移的那几年,很多人特意这么写,好让同一份代码在两种协议下都能用。
现在这个写法基本被 https:// 取代了,但在一些老项目里还能看到。
四、地址栏已经把它藏起来了
你今天在 Chrome 或 Edge 里其实看不到这俩斜杠——浏览器早就默认隐藏,只有点进地址栏编辑时才露出来。手机上连 www 都懒得显示。
厂商用这种方式,默默给当年的设计打了个补丁。
这类「祖传设计」其实到处都是:键盘为什么是 QWERTY 而不是更顺手的布局,邮件头里为什么还供着 Received 这一长串跳转记录,某些编程语言为什么把数组下标从 0 开始数——都是当年的一个决定,后来没人敢动。
这些约定铺开的速度,永远比「想清楚再定」的速度快。
五、写代码久了的体会
写代码越久越能体会:代码里最贵的从来不是写下来的逻辑,而是那些「当时觉得合理、后来没人敢动」的决定。
一个 1990 年顺手敲下的字符,三十多年后还印在每一份技术文档、每一本教科书的每一页上。





