HTTP 451
HTTP/HTTPS |
---|
版本 |
請求方法 |
報文主體 |
頭欄位 |
狀態碼 |
相關主題 |
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錯誤代碼的網站