404

404状态码或服务器无良行径的历史

1985年10月,正式的 FTP 规范出台。

1990年,Tim Berners-Lee 根据 FTP 的状态码定义了 HTTP 的状态码。

这里不得不多谈一谈 Sir Timothy “Tim” John Berners-Lee,这位大牛提出了以超文本为基础的 Web 原型,在1991年8月6日建立了第一个网站,又写出了第一个网页浏览器 WorldWideWeb,弄出了第一台 Web 服务器 httpd,并在1994年10月创立了 World Wide Web Consortium (W3C)
说白了,这位大牛就是如假包换的 World Wide Web 之父,按道上的话来说,就是“此路是我开,此树是我栽”。一些 WWW 教教徒尊称他为“那位使一切成为可能的大牛”,因此坊间有传言说他是 Adidas 和 Li Ning 的幕后黑手。

1992年,W3C 确定的 HTTP 0.9 规范中包含了 HTTP 状态码的定义,一直延续到今天

那么其中的404状态码表示什么呢?

首先,第一位的4表示客户端有错误,也就是说服务器厚颜无耻地把一切责任都推得一干二净,而且仅用了1个数字就打发了!
如果这个数字是5的话,则表示服务器好歹承认了自己的人品有那么一点点问题(但不要妄想它是真诚的),如果你多试几次,可能就能够正常访问了。

中间那一位0代表的含义比较宽泛,可能是表示拼写有错误。据说这一位原本是1的,因为拼写错了才写成0,可见服务器是多么不可靠,连短短的错误代码也需要冗余码校验才能保证质量。

40x 家族里面还有其他的兄弟,呃,或者姐妹,如400表示 Bad Request,401表示 Unauthorized,我想这是因为大部分人都不会授权给四月的愚人。
而本文的主角404就是 Not Found,即找不到页面了。

实际上根据 W3C 制定的标准,404仅仅表示服务器找不到客户端请求访问的地址或者无法确定其状态。如果是页面被永久性地移走或感动了,则应该返回 301 Moved Permanently,如果是被删除了,则应该返回 410 Gone 代码。这些都可以在服务器的设置文件中进行设置,但一般服务器端都不会进行设置,因为它们耻于承认是自己把客户端需要的什么东西弄丢了,或者不愿正视自己被私奔的页面文件抛弃的尴尬事实,所以统统都返回一个404错误代码。这种没有职业道德的行径由于服务器掌握了绝对的话语权,反而受到支持和吹捧,甚至还出现了404研究实验室和404亚文化,妄图用考虑周到的404页面拉拢天真单纯的访问者!
呜呼,真是世风日下,人心不古啊~

以上内容部分翻译自:
404 Research Lab 的《History of 404》一文
维基百科404 errorTim Berners-Lee 的条目。

Happy the day of “404 Not Found”!

posted: 2006/04/04
under: 软硬挨踢