請正確使用http狀態碼,謝謝!

最近,由於某些特別原因。打開一些網址一直顯示404,

想請問下,xx站的程序員,能不能按照http協議來返回呢?

什麼是HTTP狀態碼451?

根據定義,HTTP 451錯誤代碼狀態出現,不代表這個地址是否存在,而代表該網頁可能對於國家安全產生危險,或是該網頁可能違反著作權、隱私權、褻瀆神明或其他法律或法院命令。

該響應代碼有如下的性質:

除非另外指明,否則這個響應代碼是可以被緩存的。

必須攜帶一個帶有一個Link頭部,列出要求封禁該地址的實體URI;且應帶有一個"rel"欄位,值應為"blocked-by"[1]。

簡單的講 就是由於某些政治原因,所以,該頁面不予訪問

HTTP451的來源

本代碼於2013年由提姆·布雷(Tim Bray)正式提出,主要基於博客Terence Eden的文章所提出的非正式提案[2]。2015年12月18日,此代碼由國際網路工程研究團隊通過[3]。

451這個代碼源於1953年的反烏托邦小說《華氏451度》(紙的燃點為華氏451度),在這部小說中,所有書籍是違禁品[4]。相比較HTTP 403代碼,451可更好描述一種由於法律規定或受權威部門要求而導致的封禁狀態[5]

一個示例

某地一用戶以GET方式請求http://example.org的/index.php路徑:

GET /index.php HTTP/1.1Host: www.example.org

由於用戶所在地的某項法律規定,網站不可以向該地區用戶返回這個頁面,所以伺服器做出回應,設置了有效期為一年的緩存頭部,並在Link頭部中加入了指定的政府部門URL「http://www.xxx.gov.tld」:

HTTP/1.1 451 Unavailable For Legal ReasonsLink: <http://www.xxx.gov.tld>; rel="blocked-by"Cache-control: max-age=31536000; publicContent-Type: text/html; charset=utf-8<html><head><title>因法律原因不可用</title></head><body><h1>HTTP/1.1 451 因法律原因,本頁面不可用</h1><p>根據《某法》第某條之規定,本網站頁面對來自某地的訪客不可用。</p></body></html>

文章參考於 維基百科 zh.wikipedia.org/wiki/H

RFC 7725 - HTTP 451的正式RFC文件

歡迎關注本人的微信公眾號獲取更多Python爬蟲相關的內容

(可以直接搜索「Python爬蟲分享」)

推薦閱讀:

HTTP伺服器的本質:tinyhttpd源碼分析及拓展
一步一步教你 https 抓包
淺談HTTP緩存

TAG:爬虫计算机网络 | HTTP2 | HTTP |