rfc-7725

An HTTP Status Code to Report Legal Obstacles

T. Bray
date2016-02 streamIETF areawit wghttpbis statusPROPOSED STANDARD pages5 canonicalhttps://www.rfc-editor.org/rfc/rfc7725 doi10.17487/RFC7725 errataview
This document specifies a Hypertext Transfer Protocol (HTTP) status code for use when resource access is denied as a consequence of legal demands.

Extracted elements (14)

design-rationale §1

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.

http, censorship

design-rationale §3

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.

http, censorship

design-rationale §3

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.

http, censorship, dns

design-rationale §4

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.

http, censorship

interoperability-note §3

A 451 response is cacheable by default unless otherwise indicated by the method definition or explicit cache controls, per RFC 7234.

http, censorship

interoperability-note §3

In many cases clients can still access a resource denied with 451 by using technical countermeasures such as a VPN or the Tor network.

http, censorship, vpn, privacy

normative-requirement §3 SHOULD

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.

http, censorship

normative-requirement §4 SHOULD

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.

http, censorship

normative-requirement §4 MUST

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, censorship

protocol-element §3

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.

http, censorship, security

protocol-element §4

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.

http, censorship

registry §6

The HTTP Status Codes Registry is updated with code 451, description 'Unavailable For Legal Reasons', referencing RFC 7725.

http, registry, censorship

registry §6

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.

http, registry, censorship

security-consideration §5

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.

security, censorship, http