可怕的“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工作期间,创建了一个基于超文本传输协议、用于浏览及传递信息的新系统。为响应不同的请求,他们必须手动分配文件,并通过网络加以传输。

404为什么是404?_架构师

© 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?_架构师_02

© Pinterest

当时我正在看一篇与航空史相关的文章,突然之间,我发现谜底就在那里,藏在显而易见的地方。

我想一定有人也揭开了谜底。于是我打开谷歌,希望搜到若干与我不谋而合的人。但我一无所获!都市传说狂热爱好者和力破谣言者都在错误的圈子里兜兜转转,试图破解404之谜。

可怕的404航班

罗伯特表示404号房纯属无稽之谈后,我认为我不能再有意识地理解这一代码的来源。虽然数据科学家的大脑像个超级驱动器,但日常生活和潜意识因素仍会发挥重要的作用;毕竟科学家也是人。

我相信在网络诞生之初,新闻中已满是404的踪迹。1989年,蒂姆·伯纳斯·李发明了万维网,而那年404航班恰好失踪了。

——巴基斯坦国际航空公司的404航班

1989年8月25日,PK404航班起飞没多久就消失了。这架福克F27友谊式客机于7点35分从巴基斯坦吉尔吉特起飞,将于巴基斯坦首都伊斯兰堡降落。

404为什么是404?_公众号_03

一架类似事故飞机的PIA F27。© wikipedia

几分钟后,飞行员于7点40分照例进行了无线电通话,随后飞机就从雷达上消失了——这是最后一次通信。专家认为该客机已在喜马拉雅山坠毁,但直至今日,人们也没找到飞机残骸;404航班找不到了。

你能想到蒂姆和罗伯特看过多少次相关的新闻吗?他们可能根本就没有刻意关注过“404航班无法找到”的消息。搜索公众号互联网架构师复“2T”,送你一份惊喜礼包。

——意大利航空公司404航班(AZ404/AZA404)

1990年11月14日坠毁的意大利航空公司404航班是一架国际客机,原计划从米兰利纳特机场飞往瑞士苏黎世机场。这架由意大利航空公司运营的道格拉斯DC-9–32型客机在苏黎世机场附近的魏阿赫林地坠毁,机上46人全部遇难。

404为什么是404?_架构师_04

涉事飞机,于1990年8月(事故前3个月)在巴黎夏尔·戴高乐机场拍摄。© wikipedia

写到这里,相信已有读者心中有数——魏阿赫和互联网诞生地CERN只相距150英里左右。新闻媒体很可能会将这场悲剧与PK404航班联系在一起。因此,我们可以假设404已存在于每个人的潜意识中。

综述

回顾互联网诞生的历史,我认为是一系列灾难性事件,即所谓的“祸不单行”,催生了404状态码。我很困惑为什么直到今天只有我把以下线索联系起来了:

1989年8月PK404航班起飞没多久就失踪了。

1990年10月蒂姆·伯纳斯·李为了开发客户端程序(即浏览器/编辑器,他将其称之为万维网),开始在新配备的NeXT电脑上编写代码。

1990年11月意大利航空公司404航班于瑞士坠毁。

1990年12月第一个网站nxoc01.cern.ch诞生了。

404为什么是404?_公众号_05

© Lifewire

蒂姆和罗伯特始终保持沉默,没有解释过为什么要用404当错误状态码。但正如上文所述,他们可能根本没意识到404就在他们的潜意识中。所以,这个代表“网页已死”的报错页面还将继续气坏网络用户,直到时间终结的那天。

文/Rui Alves

译/antusen

校对/Yord

文章仅为作者观点,未必代表利维坦立场

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。

    · END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

正文结束