HTTP 451
HTTP 451是HTTP协议中的一个状态码。HTTP 451的描述短语是“Unavailable For Legal Reasons”,当使用者请求存取某个经政府审核等查核方法后认定不合法的来源时,就会显示这个错误代码。
该状态码定义于RFC 7725中,与HTTP协议其他的状态码不同。
定义
根据定义,HTTP 451错误代码状态出现,不代表这个地址是否存在,而代表该网页可能违反基于法律违规主张的要求。
该响应代码有如下的性质:
引入
本代码于2013年由提姆·布雷(Tim Bray)正式提出,主要基于部落格Terence Eden的文章所提出的非正式提案[2]。2015年12月18日,此代码由国际网路工程研究团队通过[3]。
451这个代码源于1953年的反乌托邦小说《华氏451度》(纸的燃点为华氏451度),在这部小说中,所有书籍是违禁品[4]。相比较HTTP 403或404代码,451可更好描述一种由于法律规定或受权威部门要求而导致的封禁状态[5]。
演示示例
在本章节中,将对于HTTP 451的响应的返回、缓存的设置和Link头部的设置做出范例。
某地一用户以GET方式请求example.org的/index.php路径:
GET /index.php HTTP/1.1
Host: www.example.org
服务器响应
由于用户所在地的某项法律规定,网站不可以向该地区用户返回这个页面,所以服务器做出回应,设置了有效期为一年的缓存头部,并在Link头部中加入了指定的法律文本URL“http://www.xxx.gov.tld/law.html”:
HTTP/1.1 451 Unavailable For Legal Reasons
Link: <http://www.xxx.gov.tld>; rel="blocked-by"
Cache-control: max-age=31536000; public
Content-Type: text/html; charset=utf-8
<html>
<head><title>因法律原因不可用</title></head>
<body>
<h1>HTTP/1.1 451 因法律原因,本页面不可用</h1>
<p>根据《某法》第某条之规定,本网站页面对来自某地的访客不可用。</p>
</body>
</html>
非服务器实体
根据RFC文档第3节和第4节,作出回应的服务器不一定是源服务器,也可能是ISP或其他实体的服务器向用户返回HTTP 451。该文档第四节进一步说明,回应中的blocked-by对应之头部应链接至实际执行此次封锁的实体,而不是作出决定的实体。假设某网络主管部门要求这些运营商的防火墙服务器对所有访问某站点特定内容之请求均返回451,则防火墙服务器可以这样回应用户:
HTTP/1.1 451 Unavailable For Legal Reasons
Link: <https://www.isp-firewall.tld/about.html#filtered_by_451>; rel="blocked-by"
Cache-control: max-age=86400; public
Content-Type: text/html; charset=utf-8
<html>
<head><title>因法律原因不可用</title></head>
<body>
<h1>HTTP/1.1 451 因法律原因,本页面不可用</h1>
<p>应有关部门要求,根据相关法律、法规,网页未予显示。</p>
</body>
</html>
现实案例
Github
2016年6月8日,中国网络空间安全协会用英文致信GitHub,称其平台上的开源项目“Zhao”诽谤现任中国共产党中央委员会总书记习近平,要求立刻删除。三天后,GitHub在专门公布各国政府发出的移除要求的版面上,公布了这封信件[6][7]。
据信件所描述,GitHub用户Programthink创建的代码仓库“Zhao”中出现了一篇用户名为“CMB-news”的帐号发布的“问题”(Issue),声称习近平涉及一桩命案[8],故引发相关部门“强烈关切”。根据GitHub公布的信息显示,这是2014年10月以来,GitHub公布的第6项“删除特定项目要求”,也是第一个来自中国政府相关方请求,此前5项都来自俄罗斯[9][需要非第一手来源]。
后来,GitHub对于访问该仓库的中国大陆用户返回451代码,并链接向上述投诉信件;但在海外的用户仍能顺利打开。 GitHub给出的原因是“这个项目被中国政府列入黑名单”[注 1]。GitHub称,虽无法认同政府审查,但为让更多人可以正常使用网站服务,他们会在确认有关要求来自政府之后,在指定区域内满足政府的要求,同时会公开来自政府的要求文件[7]。
参见
注释
- ^ 原文:Repository unavailable because of the Chinese Internet Blacklist
参考文献
- ^ RFC 7725 - An HTTP Status Code to Report Legal Obstacles. datatracker.ietf.org. [2017-08-06]. (原始内容存档于2018-09-14) (英语).
- ^ Byrne, Michael. The HTTP 451 Error Code for Censorship Is Now an Internet Standard. Vice. 2015-12-21 [2015-12-21]. (原始内容存档于2015-12-22).
- ^ Why 451?. 2015-12-18 [2015-12-20]. (原始内容存档于2015-12-29).
- ^ Flood, Alison. Call for Ray Bradbury to be honoured with internet error message. The Guardian. 2012-06-22 [2012-06-22]. (原始内容存档于2012-06-22).
- ^ Ducklin, Paul. HTTP error code 451: "Unavailable For Legal Reasons". Naked Security. Sophos. 2013-08-19. (原始内容存档于2016-02-20).
- ^ gov-takedowns: Text of government takedown notices as received. GitHub does not endorse or adopt any assertion contained in the following notices. Github. GitHub. 2017-08-01 [2017-08-06]. (原始内容存档于2019-02-16).
- ^ 7.0 7.1 吴嫱. 開源「趙家人」名單,GitHub激怒中國網安協會首出拳. 端传媒. 2016-06-28 [2023-02-10]. (原始内容存档于2020-03-27).
- ^ Horwitz, Josh. China’s fierce censors try a new tactic with GitHub—asking nicely. Quartz. [2022-03-21]. (原始内容存档于2022-03-26) (英语).
- ^ gov-takedowns: Text of government takedown notices as received. GitHub does not endorse or adopt any assertion contained in the following notices. GitHub. GitHub. 2017-08-01 [2017-08-06]. (原始内容存档于2017-09-12).
外部链接
- RFC 7725 - HTTP 451的正式RFC文件
- 451unavailable.org(页面存档备份,存于互联网档案馆) 一个介绍HTTP 451错误代码的网站