451:对不起,从法律上说,它不存在

451:对不起,从法律上说,它不存在

2015年12月23日1 次浏览来源:Linux中国阅读原文

上周五,IESG( 互联网工程指导委员会 ( Internet Engineering Steering Group ) )批准了一个新的互联网标准,为 HTTP 增加了一个新状态码:451 Unavailable For Legal Reasons。还需要一点点工作就会发布为正式的 RFC ,不过现在已经可以用了。

缘起

几年前,英国政府要求 ISP 们对海盗湾的内容进行封挡,Terence Eden 就这个事情写了一个帖子,建议应该有一个不同的状态码来区分禁止访问的原因。这样的话,ISP 们就可以向他们的用户说明为什么这些资源不能访问。有人提议使用数字 451 作为状态码,也有各种其它的建议。

谷歌的 Tim Bray 受此启发,于前几年给 HTTP 工作组 HTTP Working Group 提交了一份提案,他(及很多人)认为应该将由于技术原因的不可见与非技术原因的不可见区分开来:

  • 403 状态码,用于描述由于技术原因禁止访问
  • 451 状态码,则用于描述由于国家法律所要求而禁止访问

据说,451 这个数字来源于 Ray Bradbury 的一篇小说《 华氏 451 ( Fahrenheit 451 ) 》。

发展

最初,对于这份提案,IETF HTTP 工作组的主席 Mark Nottingham 是拒绝的。因为 HTTP 状态码是有限的,虽然说从 400 到 499 有足足一百个位置,但是谁也不知道将来会有什么需求。而当时也没有任何需要让程序/机器来区分禁止访问的这两种情形,所以不应该浪费代码——最多,在 HTTP 首部或页面上呈现具体原因就可以了。

而 Tim 依旧坚持他的提案,并偶尔更新一下提案内容,和关心这件事的人谈论。

有一些站点开始实验性的使用这个状态码,不过这并不足以让 IESG 同意增加新的状态码。但是,随着网络上的审查的越来越多,比如欧盟政府要求 ISP 禁止对盗版内容的访问,而韩国、俄罗斯和其它一些国家会限制某些内容的访问等等,IESG 意识到网站需要能够区分这其中的不同。

此外,还有一些人希望能够自动找到和分类哪些内容是被审查的。这就需要一种机器可读的机制来区分 403 和 451 所代表的不同意义。

451 能做什么和不能做什么

虽然 451 状态码的原意是用于标示出哪些内容是被法律禁止访问的,比如可以用在网络设备上(比如防火墙)或 Web 服务器上。就目前已知的, GithubTwitterFacebookGoogle 都已经开始使用这个状态码来应对各个国家地区的审查要求了。

但是显然,451 状态码并不能标示出所有的被审查的内容,也许有些国家(比如英国)的法律要求不允许使用这个状态码。

本文内容编译自 Mark Nottingham 的博客、维基百科、Solidot 等来源。

分享
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

About

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools