Recent from talks
Contribute something
Nothing was collected or created yet.
HTTP 451
View on Wikipedia

| HTTP |
|---|
| Request methods |
| Header fields |
| Response status codes |
| Security access control methods |
| Security vulnerabilities |
In computer networking, 451 Unavailable For Legal Reasons is an HTTP status code used when the user requests a resource which cannot be served for legal reasons, such as a web page censored by a government. The number 451 is a reference to Ray Bradbury's 1953 dystopian novel Fahrenheit 451, in which books are outlawed.[2] 451 provides more information than HTTP 403, which is often used for the same purpose.[3] This status code is currently a proposed standard in RFC 7725, which updated the IANA HTTP Status Codes Registry to include 451.[4]
Examples of situations where an HTTP 451 error code could be displayed include web pages deemed a danger to national security, or web pages deemed to violate copyright, privacy, blasphemy laws, or any other law or court order.
After introduction of the General Data Protection Regulation (GDPR) in the European Economic Area (EEA) it became common practice for websites located outside the EEA to serve HTTP 451 errors to EEA visitors instead of trying to comply with this new privacy law. For instance, many regional U.S. news sites no longer serve web browsers from the EU.[5][6][7]
The RFC is specific that a 451 response does not indicate whether the resource exists but requests for it have been blocked, if the resource has been removed for legal reasons and no longer exists, or even if the resource has never existed, but any discussion of its topic has been legally forbidden (see injunction).[8] Some sites have previously returned HTTP 404 (missing) or similar if they are not legally permitted to disclose that the resource has been removed. It is used in the United Kingdom by some Internet service providers utilising the Internet Watch Foundation blacklist, returning a 404 message or another error message instead of showing a message indicating the site is blocked.[9][10]
The status code was formally proposed in 2013 by Tim Bray, following earlier informal proposals by Chris Applegate[11] in 2008 and Terence Eden[12] in 2012. It was approved by the Internet Engineering Task Force (IETF) on 18 December 2015.[13] It was published as in the Proposed Standard RFC 7725 in February 2016.
HTTP 451 was mentioned by the BBC's From Our Own Correspondent programme, as an indication of the effects of sanctions on Sudan and the inability to access Airbnb, the App Store, or other Western web services.[14]
Usage
[edit]
When an entity intercepts the request and returns status 451, it should include a "Link" HTTP header field whose value is a URI reference identifying itself. The "Link" header field must then have a "rel" parameter whose value is "blocked-by". This is intended to identify the entity implementing the blocking (an ISP, DNS provider, caching system, etc.), not the legal authority mandating the block.[15] At an IETF hackathon, participants used a web crawler to discover that several implementations misunderstood this header and gave the legal authority instead.[16]
Additional uses
[edit]The meaning of "a resource which cannot be served for legal reasons" has been interpreted to extend beyond government censorship:
- When content cannot be shown in the user's country, due to contractual or licensing restrictions with the content owner, for example, a TV program may not be available to users in some countries.[citation needed]
- When a publisher refuses to serve content to a user, because the user's country adds regulatory requirements that the publisher refuses to comply with, e.g. websites based outside of the EU may refuse to serve users in the EU because they do not want to comply with the GDPR.[citation needed]
Example
[edit]
HTTP/1.1 451 Unavailable For Legal Reasons
Link: <https://search.example.net/legal>; rel="blocked-by"
Content-Type: text/html
<html>
<head><title>Unavailable For Legal Reasons</title></head>
<body>
<h1>Unavailable For Legal Reasons</h1>
<p>This request may not be serviced in the Roman Province
of Judea due to the Lex Julia Majestatis, which disallows
access to resources hosted on servers deemed to be
operated by the People's Front of Judea.</p>
</body>
</html>
See also
[edit]References
[edit]- ^ "Attorney General Shapiro, Governor Wolf, State Police Successfully Block Access to 3D Downloadable Guns in Pennsylvania" (Press release). Pennsylvania Office of Attorney General. 29 July 2018.
- ^ Flood, Alison (22 June 2012). "Call for Ray Bradbury to be honoured with internet error message". The Guardian. Retrieved 22 June 2012.
- ^ Ducklin, Paul (19 August 2013). "HTTP error code 451: "Unavailable For Legal Reasons"". Naked Security. Sophos. Archived from the original on 6 May 2021. Retrieved 29 November 2018.
- ^ "Hypertext Transfer Protocol (HTTP) Status Code Registry". IANA. ICANN. 13 November 2024. Retrieved 3 February 2025.
- ^ Matt Burgess (29 August 2018). "The tyranny of GDPR popups and the websites failing to adapt". WIRED. Retrieved 1 October 2018.
- ^ "More than 1,000 U.S. News sites are still unavailable in Europe, two months after GDPR took effect". www.niemanlab.org.
- ^ "Major US news sites are still blocking Europeans due to GDPR". Engadget. 9 August 2018. Retrieved 27 July 2023.
- ^ Bray, Tim (February 2016). "451 Unavailable For Legal Reasons". An HTTP Status Code to Report Legal Obstacles. sec. 3. doi:10.17487/RFC7725. RFC 7725.
- ^ "Cleanfeed". ORG Wiki. Open Rights Group.
If the request is for the blocked content then the proxy server will return a 404 error page to the customer
- ^ Arthur, Charles (8 December 2008). "How the IWF blacklist stops you seeing the Scorpions' album cover". Technology blog, The Guardian.
TCP Reset is sent back to the customer instead of content.
- ^ Applegate, Chris (9 December 2008). "There is no HTTP code for censorship". qwghlm.co.uk. Archived from the original on 19 April 2021. Retrieved 23 December 2015.
- ^ Byrne, Michael (21 December 2015). "The HTTP 451 Error Code for Censorship Is Now an Internet Standard". Vice. Retrieved 3 July 2020.
- ^ Nottingham, Mark (18 December 2015). "Why 451?". mnot’s blog. Retrieved 20 December 2015.
- ^ Sally Hayden (28 September 2017). From Our Own Correspondent (radio). BBC Radio 4.
- ^ Bray, Tim (February 2016). "Identifying Blocking Entities". An HTTP Status Code to Report Legal Obstacles. sec. 4. doi:10.17487/RFC7725. RFC 7725.
- ^ Stéphane Bortzmeyer (11 November 2017). "RFC Errata Report". IETF Tools. Retrieved 3 December 2018.
External links
[edit]HTTP 451
View on GrokipediaDefinition and Purpose
Technical Definition
HTTP status code 451, designated "Unavailable For Legal Reasons", is a 4xx client error response code standardized in RFC 7725, published by the Internet Engineering Task Force (IETF) on February 14, 2016.[5] It signifies that the server is denying access to the requested resource specifically as a consequence of a legal demand imposed on the server operator.[5] This demand may arise from legislation, regulation, or policy enforcement, such as court orders, national security directives, or intellectual property restrictions, and applies not only to origin servers but also to intermediaries like content delivery networks, ISPs, or search engines that block access.[5] The code is intended to promote transparency in cases of legally mandated unavailability, distinguishing it from technical or authorization failures.[5] Servers returning 451 SHOULD generate a response body containing a human-readable explanation of the legal obstacle, including details such as the demanding party (e.g., government agency), the cited legislation or court decision, and the specific resources or persons affected.[5] Furthermore, servers SHOULD include aLink header field with a rel="blocked-by" relation pointing to a resource identifying the blocking entity, facilitating automated detection and analysis of censorship patterns.[5]
Responses with 451 are cacheable by default under the rules of RFC 7234, unless overridden by cache-control directives, allowing intermediaries to store and reuse the denial without repeated legal consultations.[5] The code does not imply the resource's existence or non-existence; access might fail for other reasons even absent legal barriers, and it differs from 403 Forbidden by explicitly attributing denial to legal causes rather than general prohibition.[5]
Historical Inspiration and Rationale
The designation of 451 as the status code draws direct inspiration from Ray Bradbury's 1953 dystopian novel Fahrenheit 451, in which the temperature 451°F represents the auto-ignition point of paper, symbolizing the state's systematic burning and outlawing of books to suppress knowledge and enforce ideological conformity.[3][6] This literary reference underscores the code's intent to highlight content suppression by legal or governmental authority, paralleling the novel's theme of censorship disguised as protection.[7] The proposal originated in June 2012 from Tim Bray, then an Android advocate engineer at Google, who drafted an initial specification for "451 Unavailable For Legal Reasons" to address the opacity of existing HTTP error codes like 403 Forbidden when applied to legally mandated blocks.[8] Bray's rationale stemmed from observations of real-world practices, such as British Internet service providers returning generic 403 responses for sites blocked under court orders related to copyright infringement or child protection laws, which obscured the legal basis for denial and hindered public awareness of censorship.[9] By introducing a dedicated code, the intent was to enable servers to transparently signal that access denial resulted from "a legal demand," distinguishing it from technical failures, voluntary restrictions, or non-legal prohibitions, thereby fostering accountability and potentially deterring overreach by making such interventions visible to users and researchers.[3][9] This approach aligned with broader advocacy against untransparent internet filtering, including campaigns by groups like the Open Rights Group, which in 2012 petitioned for a similar code to expose blocks imposed without clear justification.[8] The rationale emphasized empirical transparency over evasion: unlike ambiguous codes that could mask state or corporate compliance with dubious laws, 451 would provide diagnostic value, allowing clients to infer legal causation without requiring additional probing, while avoiding endorsement of the underlying restrictions.[7] Initial resistance from the Internet Engineering Task Force (IETF) in 2013 cited concerns over politicizing protocol semantics, but growing instances of global online censorship—such as blocks in authoritarian regimes or under intellectual property regimes—ultimately supported its standardization in RFC 7725 by 2015.[3]Development and Standardization
Initial Proposal
The initial informal calls for a dedicated HTTP status code to denote legal unavailability emerged in response to opaque content blocking practices. In December 2008, web developer Chris Applegate highlighted the absence of a specific code for censorship in a blog post critiquing aggressive blacklisting by authorities and ISPs, which often masked restrictions behind generic errors like 403 Forbidden.[10] The explicit proposal for code 451 originated in June 2012 from British technologist Terence Eden, who encountered a UK court-ordered ISP block on The Pirate Bay site, enforced via a nondescript 403 response that obscured the legal basis. Eden's blog post argued for a new status code, 451 "Unavailable For Legal Reasons," to enable transparent signaling of such interventions, allowing users and researchers to distinguish censorship from technical or access-denied issues without relying on custom error messages prone to variation or suppression. He suggested the code could include headers detailing the legal authority, jurisdiction, and rationale, facilitating automated detection and analysis of blocks.[11] Concurrently, in June 2012, Tim Bray, a software engineer at Google, advanced the idea by authoring an IETF Internet-Draft titled "An HTTP Status Code to Report Legal Obstacles." Bray's draft specified 451 as a 4xx client error for resources denied due to legal demands, explicitly excluding voluntary publisher choices or intellectual property enforcement to focus on governmental or third-party mandates. He selected 451 to evoke Ray Bradbury's 1953 novel Fahrenheit 451, wherein firemen burn prohibited books, underscoring the code's intent to highlight suppression of information. The proposal recommended optional response details, such as a human-readable explanation and links to legal documents, while cautioning against overuse that might enable mass circumvention or invite retaliation against publishers.[8][12] Bray's effort built on Eden's suggestion amid rising global instances of mandated blocks, including UK high court rulings against file-sharing sites and similar actions elsewhere, where generic codes hindered transparency and empirical tracking of censorship patterns. The draft emphasized first-principles utility: enabling servers, proxies, and clients to programmatically identify and respond to legal barriers, potentially aiding compliance, research, or policy scrutiny without embedding political advocacy in the protocol itself. Initial discussions in technical forums noted risks, such as governments pressuring implementers to avoid the code, but proponents argued its value in fostering accountability outweighed such concerns.[13]IETF Approval and RFC Publication
The draft document specifying HTTP status code 451, authored by Tim Bray and titled "An HTTP Status Code to Report Legal Obstacles," progressed through the IETF's review process, including discussions within the HTTPBis Working Group on reviving and refining the proposal amid concerns over its potential to enable or highlight censorship. [14] On December 18, 2015, the Internet Engineering Steering Group (IESG) approved the draft for publication following last-call reviews and consensus evaluation, marking the culmination of standardization efforts initiated in earlier individual submissions dating back to 2012.[15] [16] RFC 7725 was formally published in February 2016 as a Proposed Standard, defining the 451 status code for scenarios where legal restrictions prevent resource access, distinct from general access denials.[1] [17] This advancement elevated the code from experimental status to an official IETF recommendation, enabling broader implementation in HTTP servers and intermediaries.[1]Technical Specifications
Core Requirements from RFC 7725
RFC 7725 defines the HTTP 451 status code, "Unavailable For Legal Reasons," for use by servers or intermediaries to indicate that a requested resource cannot be served due to a legal demand, such as government censorship or court orders prohibiting disclosure.[1] This code applies regardless of whether the denying entity is the origin server, and it promotes transparency by signaling that the denial stems from legal constraints rather than technical issues or discretionary access controls.[1] Servers returning a 451 response SHOULD include a human-readable explanation in the response body, specifying details of the legal demand, including the demanding party, the relevant legislation or regulation, and the persons or resources affected by the restriction.[1] For example, a compliant response might useHTTP/1.1 451 Unavailable For Legal Reasons followed by a Content-Type: text/[html](/page/HTML) body describing the block, such as compliance with national security laws.[1] This explanation aids users in understanding the basis for denial without necessarily revealing the resource's existence, which the code deliberately avoids to prevent aiding circumvention attempts.[1]
To further identify the blocking entity, servers SHOULD include a Link HTTP header field with a rel parameter value of "blocked-by", linking to a URI describing the implementer of the block (e.g., the ISP or platform enforcing it), though this must not point to the mandating authority itself if distinct.[1] The header format follows RFC 5988, such as Link: <https://example.blocker/policy>; rel="blocked-by".[1] This requirement enhances traceability while protecting against misuse.
451 responses are cacheable by default under the rules of RFC 7234, permitting intermediaries to store and reuse them unless overridden by cache-control directives.[1] Clients receiving 451 may employ technical workarounds like VPNs or anonymization tools, but the code itself imposes no mandatory client behaviors beyond standard HTTP processing.[1] Unlike 403 Forbidden, which signals general authorization failures without specifying cause, 451 explicitly denotes legal barriers to encourage public awareness of such restrictions.[1]
