404 为什么是 404?
阅读本文大概需要 5 分钟。
来源:利维坦(ID:liweitan2014)
文 / Rui Alves
译 / antusen
校对 / Yord
可怕的「404 页面不存在」错误代码已经在电脑屏幕上阴魂不散了几十年。尽管许多网民根本不了解这一错误代码的来龙去脉,但过去 30 年里,由于出现的频次太高,「404 页面不存在」已经跻身流行文化,成了线上终极都市传奇之一。
我们并没有刻意关注它,但由于多数网站每天都有新的失效链接,这些错误页面被点击了无数次。此外,点击 2005 年以前的网页后,我们会直接进入名叫「HTTP 404 页面不存在」的「墓地」。在那些并非四季常青的「草场」上,404 们的墓碑林立成行,其数量之多,今人可想而知。
如今,404 已成为世界各地突显各种未知事物的、有影响力的符号。
你知道警察经常用 404 指代「未知的麻烦」吗?
「404 页面不存在」背后的故事
我们都见过 404 页面,但它为什么会出现呢?404 是一种 HTTP 状态码。当用户访问网页时,设备会基于超文本传输协议(Hypertext Transfer Protocol)向服务器请求数据。
之后,万维网的「齿轮」开始转动,我们会意识到互联网其实是基于数据交换的(一种数据传输依赖于另一种数据传输)。在网页跳出前,服务器已经发送了包含状态码的 HTTP 头域,我们的浏览器也会以头域回应。如果数据交换成功了,就会有代表状态正常的代码:「200 OK」,即「请求数据成功」。
我们看不到这个状态码,因为在这种情况下,服务器只会发送请求页面的内容。只有遇到错误时,页面才会显示相应的状态码。
「404 页面不存在」——当请求页面不存在或已被删除时,就会出现这种提示。这一情况很常见,可能发生在任何网站上。
打破关于 404 号房的流言
1981 至 1992 年,万维网的发明者蒂姆·伯纳斯·李(Tim Berners-Lee)及联合开发者罗伯特·卡里奥(Robert Cailliau)在 CERN 工作期间,创建了一个基于超文本传输协议、用于浏览及传递信息的新系统。为响应不同的请求,他们必须手动分配文件,并通过网络加以传输。
© Kidschoolz
没过多久,他们便不堪重负,无法响应通过网络发送的所有请求。很多用户输入的数据不正确,因此无法发送正确的文件名。
这种情况一而再、再而三,二人不得不为此更新系统,以便向那些文件名编辑错误的用户发送以下信息:
「404 号房:文件不存在」。
见过这个信息的人越来越多。1992 年,万维网联盟(W3C)引入了 1990 年开发的 HTTP 状态码。
蒂姆和罗伯特在四楼办公。据称,万维网的中央数据库就在同一楼层的 404 号房。作为第一台网络服务器的所在地,即万维网的发源地,人们自然而然将 404 号房变成了都市传奇:
「诞生于 CERN 的第一个网站——也是全世界第一个网站,原本仅服务于万维网项目,且只存在于蒂姆的 NeXT 电脑上。2013 年,CERN 启动了恢复这一初始网站(即 info.cern.ch)的项目。」
后来,罗伯特·卡里奥打破了「404 页面因 404 号房而得名」的流言。CERN 的四楼根本就没有 404 号房:
但很奇怪,四楼没有 404 号房。四楼的房间号实际上是从 410 编起的,且逐渐递增——我也不知道为什么会这样。抱歉让你们所有人失望了,但 CERN 真没有 404 房,它根本就不存在,更不可能是「万维网诞生的地方」。
罗伯特·卡里奥在某次采访中确认了这一点:
「404 这个数字和 CERN 的房间号或任一实体地点压根没关系。那就是个流言。」
被问及如何看待人们痴迷于破解 404 含义的行为,罗伯特回答道:
「这种猜测毫无意义。创造流言的人可能不够理性,不愿意摆事实讲证据,相对于现实,更偏爱不实之词。这种人很常见。」
揭开 404 的谜
「404 错误」已成为网络终极谜题和虚无主义悖论。然而,与其说有人精心设计,倒不如说它出于偶然,我可能已经找到了答案。
当时我正在看一篇与航空史相关的文章,突然之间,我发现谜底就在那里,藏在显而易见的地方。
我想一定有人也揭开了谜底。于是我打开谷歌,希望搜到若干与我不谋而合的人。但我一无所获!都市传说狂热爱好者和力破谣言者都在错误的圈子里兜兜转转,试图破解 404 之谜。
可怕的 404 航班
罗伯特表示 404 号房纯属无稽之谈后,我认为我不能再有意识地理解这一代码的来源。虽然数据科学家的大脑像个超级驱动器,但日常生活和潜意识因素仍会发挥重要的作用;毕竟科学家也是人。
我相信在网络诞生之初,新闻中已满是 404 的踪迹。1989 年,蒂姆·伯纳斯·李发明了万维网,而那年 404 航班恰好失踪了。
——巴基斯坦国际航空公司的 404 航班
1989 年 8 月 25 日,PK404 航班起飞没多久就消失了。这架福克 F27 友谊式客机于 7 点 35 分从巴基斯坦吉尔吉特起飞,将于巴基斯坦首都伊斯兰堡降落。
一架类似事故飞机的 PIA F27。© wikipedia
几分钟后,飞行员于 7 点 40 分照例进行了无线电通话,随后飞机就从雷达上消失了——这是最后一次通信。专家认为该客机已在喜马拉雅山坠毁,但直至今日,人们也没找到飞机残骸;404 航班找不到了。
你能想到蒂姆和罗伯特看过多少次相关的新闻吗?他们可能根本就没有刻意关注过「404 航班无法找到」的消息。
——意大利航空公司 404 航班(AZ404/AZA404)
1990 年 11 月 14 日坠毁的意大利航空公司 404 航班是一架国际客机,原计划从米兰利纳特机场飞往瑞士苏黎世机场。这架由意大利航空公司运营的道格拉斯 DC-9–32 型客机在苏黎世机场附近的魏阿赫林地坠毁,机上 46 人全部遇难。
涉事飞机,于 1990 年 8 月(事故前 3 个月)在巴黎夏尔·戴高乐机场拍摄。© wikipedia
写到这里,相信已有读者心中有数——魏阿赫和互联网诞生地 CERN 只相距 150 英里左右。新闻媒体很可能会将这场悲剧与 PK404 航班联系在一起。因此,我们可以假设 404 已存在于每个人的潜意识中。
综述
回顾互联网诞生的历史,我认为是一系列灾难性事件,即所谓的「祸不单行」,催生了 404 状态码。我很困惑为什么直到今天只有我把以下线索联系起来了:
1989 年 8 月,PK404 航班起飞没多久就失踪了。
1990 年 10 月,蒂姆·伯纳斯·李为了开发客户端程序(即浏览器/编辑器,他将其称之为万维网),开始在新配备的 NeXT 电脑上编写代码。
1990 年 11 月,意大利航空公司 404 航班于瑞士坠毁。
1990 年 12 月,第一个网站 nxoc01.cern.ch 诞生了。
© Lifewire
蒂姆和罗伯特始终保持沉默,没有解释过为什么要用 404 当错误状态码。但正如上文所述,他们可能根本没意识到 404 就在他们的潜意识中。所以,这个代表「网页已死」的报错页面还将继续气坏网络用户,直到时间终结的那天。
原文:historyofyesterday.com/the-history-behind-the-404-error-missing-link-4f8824d63154
推荐阅读:
2021 年 6 月程序员工资统计,反作弊算法工程师太可怕了。。
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级......等技术栈!
⬇戳阅读原文领取! 朕已阅