An HTTP Status Code to Report Legal Obstacles
Extracted elements (14)
A new status code was needed because the existing 403 (Forbidden) was not suitable for the legal-demand scenario; 403 does not convey the legal nature of the restriction or provide transparency about why access is denied.
The 451 status code implies neither the existence nor nonexistence of the requested resource: even if the legal demand were removed, a request for the resource might still not succeed.
The blocking entity returning 451 might not be the origin server; ISPs, cache providers, and DNS servers are examples of intermediaries that could deny access and return this status code.
The 'Link' header's 'blocked-by' relation is intended to identify the entity actually implementing the blockage; discussion of administrative and policy mandates belongs in the human-readable response body, not the header.
A 451 response is cacheable by default unless otherwise indicated by the method definition or explicit cache controls, per RFC 7234.
In many cases clients can still access a resource denied with 451 by using technical countermeasures such as a VPN or the Tor network.
Responses using status code 451 SHOULD include an explanation in the response body detailing the legal demand: the party making it, the applicable legislation or regulation, and what classes of person and resource it applies to.
When an entity blocks access and returns status 451, it SHOULD include a 'Link' HTTP header field whose value is a URI reference identifying itself as the blocking entity.
When the 'Link' header field is used to identify the blocking entity in a 451 response, it MUST have a 'rel' parameter whose value is 'blocked-by'.
HTTP status code 451 'Unavailable For Legal Reasons' is defined for use when a server operator has received a legal demand to deny access to a resource or set of resources that includes the requested resource.
The 'blocked-by' link relation type identifies the entity that blocks access to a resource following receipt of a legal demand. It is intended to identify the entity actually implementing the blockage, not any entity mandating it.
The HTTP Status Codes Registry is updated with code 451, description 'Unavailable For Legal Reasons', referencing RFC 7725.
The Link Relation Type Registry is updated with relation name 'blocked-by', described as identifying the entity that blocks access to a resource following receipt of a legal demand, referencing RFC 7725.
Clients cannot rely upon the use of the 451 status code: certain legal authorities may wish to avoid transparency and demand that blocking be concealed, meaning the absence of a 451 response does not indicate the absence of a legal block.