451:對不起,從法律上說,它不存在
緣起
幾年前,英國政府要求 ISP 們對海盜灣的內容進行封擋,Terence Eden 就這個事情寫了一個帖子,建議應該有一個不同的狀態碼來區分禁止訪問的原因。這樣的話,ISP 們就可以向他們的用戶說明為什麼這些資源不能訪問。有人提議使用數字 451 作為狀態碼,也有各種其它的建議。
谷歌的 Tim Bray 受此啟發,於前幾年給 HTTP 工作組 提交了一份提案,他(及很多人)認為應該將由於技術原因的不可見與非技術原因的不可見區分開來:
- 403 狀態碼,用於描述由於技術原因禁止訪問
- 451 狀態碼,則用於描述由於國家法律所要求而禁止訪問
據說,451 這個數字來源於 Ray Bradbury 的一篇小說《 華氏 451 》。
發展
最初,對於這份提案,IETF HTTP 工作組的主席 Mark Nottingham 是拒絕的。因為 HTTP 狀態碼是有限的,雖然說從 400 到 499 有足足一百個位置,但是誰也不知道將來會有什麼需求。而當時也沒有任何需要讓程序/機器來區分禁止訪問的這兩種情形,所以不應該浪費代碼——最多,在 HTTP 首部或頁面上呈現具體原因就可以了。
而 Tim 依舊堅持他的提案,並偶爾更新一下提案內容,和關心這件事的人談論。
有一些站點開始實驗性的使用這個狀態碼,不過這並不足以讓 IESG 同意增加新的狀態碼。但是,隨著網路上的審查的越來越多,比如歐盟政府要求 ISP 禁止對盜版內容的訪問,而韓國、俄羅斯和其它一些國家會限制某些內容的訪問等等,IESG 意識到網站需要能夠區分這其中的不同。
此外,還有一些人希望能夠自動找到和分類哪些內容是被審查的。這就需要一種機器可讀的機制來區分 403 和 451 所代表的不同意義。
451 能做什麼和不能做什麼
雖然 451 狀態碼的原意是用於標示出哪些內容是被法律禁止訪問的,比如可以用在網路設備上(比如防火牆)或 Web 伺服器上。就目前已知的, Github、 Twitter、 Facebook 和 Google 都已經開始使用這個狀態碼來應對各個國家地區的審查要求了。
但是顯然,451 狀態碼並不能標示出所有的被審查的內容,也許有些國家(比如英國)的法律要求不允許使用這個狀態碼。
本文內容編譯自 Mark Nottingham 的博客、維基百科、Solidot 等來源。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive