「404」错误已成为网络终极谜题和虚无主义悖论。

来源:利维坦(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 错误」已成为网络终极谜题和虚无主义悖论。然而,与其说有人精心设计,倒不如说它出于偶然,我可能已经找到了答案。

© Pinterest

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

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

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

404 为什么是 404?相关推荐

  1. 发布到服务器接口404_新版本永雾林渊周五来袭,404战队真的404了

    不知不觉来到了V社口中的"12月中旬".虽然昨天没有看到新版本正式登陆,但是知道了确切的更新时间,让在老版本里苦苦挣扎数月之久的我们终于有了盼头! 昨天下午DOTA2官博发布公告: ...

  2. 什么是404页面,404有什么做用,网站做404有什么好处?

    什么是404页面? 404页面是客户端在浏览网页时,服务器无法正常提供信息,又不知情况,所返回的页面.很多用户访问错误网页时就会经常出现这个404页面. 所谓404页面主要指的是在运营网站的过程中,当 ...

  3. 缤纷多彩的404页面(404.html)

    文章来源:https://www.skyqian.com/archives/404-Pages.html 一般而言,第一时间会在博客更新,CSDN随缘更新. 引言 别离滋味浓于酒.著人瘦.此情不及墙东 ...

  4. 服务器里这么修改404页面,网站404页面怎么做

    网站404页面怎么做?谈及网站404页面,诸多站长在网站运营的过程中,难以避免404页面的出现.404页面意味着网站存在死链接,当搜索引擎蜘蛛爬取此类网址的时候,应当反馈404状态吗,告知此URL网址 ...

  5. php代码返回404,php--------返回404状态

    1. 页面没找到 Not Found header('HTTP/1.1 404 Not Found'): 2. 用这个header指令来解决URL重写产生的404 header header('HTT ...

  6. php网站404页面302,404页面该怎么做?

    建立404页面的方法是:在".htaccess"文件中加入"ErrorDocument 404/Error.html"代码:然后建立一个简单的html的404页 ...

  7. 虚拟主机linux系统404,虚拟主机404页面的设置方法!

    原标题:虚拟主机404页面的设置方法! 对任何一个网站的SEO而言,404页面都极其重要,这不仅是避免被引擎惩罚的一种方式,也是避免用户损失的牵引流量方法. 虚拟主机404页面的设置方法! 当我们的网 ...

  8. php 404页面设置,ThinkPHP 404页面的设置方法

    在很多网站中都会有使用404页面的时候,在ThinkPHP框架中该如何设置呢,接下来我介绍其中一种方法 1.首先要在Lib/Action 下建立EmptyAction.class.php模块 内容如下 ...

  9. IIS发布问题:HTTP错误404.17和404.2

    今天给客户部署项目的时候,遇到了两个关于IIS服务器的小问题,在此记录一下. 一.HTTP 错误 404.17 HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由 ...

最新文章

  1. 「x is All You Need」,当学术论文开始标题党……
  2. Linux安装卸载mysql
  3. Java知识点总结(JavaIO- System类对IO的支持与Scanner类 )
  4. Python命名空间
  5. 苏州科技大学计算机学院 李双娴,苏州大学计算机科学与技术学院第十二次研究生代表大会顺利召开...
  6. 基片集成波导原理_第5讲基片集成波导.ppt
  7. myeclipse编程技巧--中编辑器输入任何字母都出现提示功能
  8. FISCO BCOS 跨链WeCross ppt
  9. 转载:SQL入门教程
  10. S@Kura的PHP进阶之路(三)
  11. 可能是最好的设计模式入门教程——里氏替换原则
  12. 七尺男惨遭毒手变侏儒 痴情女真情不变仍同居
  13. 人工智能6-GA遗传算法
  14. 英特尔推出首款采用3D Xpoint存储技术的SSD硬盘
  15. keil与proteus联调方法如下
  16. 深度学习笔记(一)——感知机模型(Perceptron Model)
  17. wps演示中在任务栏中显示所有窗口怎么设置
  18. 前端开发实习生面试总结
  19. 百度地图设置卫星、矢量模式,球模型和瓦片模型加载
  20. “黑客”分为哪几种?《你安全吗?》中秦淮到底是哪种黑客?

热门文章

  1. Docker 常用命令,还有谁不会?
  2. 参数 中_理解JavaScript中函数的参数
  3. LeetCode 126 单词接龙 II
  4. 面试题59 - I. 滑动窗口的最大值/239. 滑动窗口最大值
  5. Python离线安装PIL 模块(pillow、沙箱、照相)
  6. Java继承 implements 与 extends 总结
  7. Linux远程拷贝scp命令
  8. 基于墨刀的轻音乐播放器——乐享APP原型设计
  9. 【Alpha 冲刺】 1/12
  10. C++的new和delete