Skip to content
← All articles

HTTP 451 Unavailable For Legal Reasons Explained

HTTP 451 Unavailable For Legal Reasons is a status code a server returns when a resource is blocked for legal reasons, such as a court order, a government demand, or a censorship law. Defined by RFC 7725 in 2016, it clearly separates a legal block from a technical 403 Forbidden or a missing 404 Not Found error.

This guide explains what the 451 status code means under RFC 7725, how it differs from 403 Forbidden, who returns it and when, how the code relates to Roskomnadzor blocks and censorship, how to serve 451 correctly with the Link rel="blocked-by" header, shows nginx and Apache config examples, and demonstrates how to check which code a site actually returns.

What the 451 status code means

Status 451 belongs to the 4xx class — client errors — but semantically it does not signal a malformed request. It says the resource is legally forbidden to serve. A server, proxy, or gateway on the request path refuses to deliver the content because a law, court, or authority requires it. The number 451 references Ray Bradbury's novel Fahrenheit 451 — the temperature at which paper burns, a symbol of censorship.

The core idea of RFC 7725 is transparency. Code 451 exists so that people and automated systems — search crawlers, archives, monitoring tools — understand that the content exists but is legally blocked, rather than deleted or broken. That distinguishes 451 from a silent redirect or a substituted page, where the reason for unavailability stays hidden.

Who returns 451 and when

Any node on the request path that must comply with a legal demand can return 451:

  • The site itself — when the owner is required to restrict access to material by a court order or a regulator's demand in a given jurisdiction.
  • The hosting provider or CDN — the infrastructure provider blocks the resource after receiving an official notice, for example a DMCA request or a court injunction.
  • The ISP or a state gateway — the network operator returns 451 when blocking domains listed in a register of prohibited information.

In practice, 451 is used to remove content that infringes copyright, block pirate resources, restrict material deemed extremist, and enforce regional limits tied to sanctions or local data-protection law.

How 451 differs from 403 Forbidden

Both codes mean access is refused, but the cause and the correct response differ. 403 says the server understood the request but refuses to fulfill it — usually because of permissions, authentication, or configuration. 451 clarifies that the refusal is specifically a legal requirement. Substituting 403 for a legal block deprives the user of information about the block's nature, which contradicts the spirit of RFC 7725.

Criterion403 Forbidden451 Unavailable For Legal Reasons
CauseRefusal due to permissions, authentication, or server policyLegal prohibition: court, regulator, law
Who returns itApplication server, web server, firewallSite, host, CDN, ISP, state gateway
Meaning for the user"Access denied" — you may need to sign in or hold other permissions"Content is legally blocked" — it exists but is unavailable by law
SpecificationRFC 7231RFC 7725
Reason headerNone definedRecommended Link rel="blocked-by"
What to doCheck permissions, sign in, contact the administratorFind out who blocked it and on what grounds; for regional blocks, seek lawful access

How 451 relates to Roskomnadzor blocks and censorship

In Russia, access to resources is restricted through the unified register of prohibited information maintained by Roskomnadzor. Network operators are required to block domains and IP addresses on that register. Technically, the block is most often implemented at the ISP level via DPI, DNS spoofing, or connection reset, rather than through an honest 451 response from the server.

That is why 451 in a censorship context is more of a recommended transparency ideal than a widespread practice. A user hitting a block usually sees an operator stub page, a timeout, or a connection error instead of a 451. Even so, correctly serving 451 remains the proper way to signal a legal restriction when the resource or its infrastructure enforces it. You can check whether a domain is on the register through Roskomnadzor's official service.

How to serve 451 correctly

RFC 7725 defines two requirements for a correct response. First, the response body should include a clear explanation of who imposed the restriction and on what grounds. Second, it recommends a Link header with the rel="blocked-by" parameter identifying the entity responsible for the block. This is a machine-readable signal for crawlers, archives, and monitoring tools.

HTTP/1.1 451 Unavailable For Legal Reasons
Content-Type: text/html; charset=utf-8
Link: <https://spravka.rkn.gov.ru/>; rel="blocked-by"

<html>
  <head><title>Unavailable For Legal Reasons</title></head>
  <body>
    <h1>Unavailable For Legal Reasons</h1>
    <p>This resource is unavailable due to a demand from a regulator based on a court order.</p>
  </body>
</html>

Example nginx configuration

In nginx you can return the non-standard 451 code directly in a return directive and serve a custom body page:

location /blocked-article/ {
    add_header Link '<https://spravka.rkn.gov.ru/>; rel="blocked-by"' always;
    return 451 'Unavailable For Legal Reasons';
}

# Custom HTML page for 451
error_page 451 /451.html;
location = /451.html {
    internal;
    add_header Link '<https://spravka.rkn.gov.ru/>; rel="blocked-by"' always;
}

Example Apache configuration

<Location "/blocked-article/">
    Redirect 451 /451.html
</Location>

<Files "451.html">
    Header always set Link "<https://spravka.rkn.gov.ru/>; rel=\"blocked-by\""
</Files>

After configuring, make sure the server truly returns status 451 and does not wrap the request in a 302 or 403 because of an earlier rule.

How to check which code a site returns

Before concluding that a site is blocked, it helps to learn the real response code. You can do this quickly two ways on enterno.io:

  • HTTP response code checker — enter a URL and see the exact status (200, 403, 451, 404) together with response headers, including Link rel="blocked-by".
  • Roskomnadzor block checker — find out whether a domain or IP is on the register of prohibited information.

You can also read the response code from the command line:

curl -sI https://example.com/blocked-article/ | head -n 1
# HTTP/1.1 451 Unavailable For Legal Reasons

# Show the blocked-by header
curl -sI https://example.com/blocked-article/ | grep -i '^Link:'

Sources and further reading

Related deep dives: how Roskomnadzor blocking works, how to check a site against the RKN register, the full HTTP status code reference, and how to fix the 403 Forbidden error.

Frequently Asked Questions

Is 451 a server error or a client error?

Formally, 451 belongs to the 4xx client-error class. But that does not mean the request is wrong: the resource exists and is technically reachable, and the refusal comes from a legal requirement. The server signals that it cannot serve the content because of a law, court order, or regulator demand, not because of an error in the request.

How does 451 differ from 403?

403 Forbidden means refusal based on permissions, authentication, or server policy. 451 specifies the cause — a legal prohibition. When a site is blocked by a court order or a regulator's demand, it is semantically correct to return 451 rather than a generic 403, so the user understands the nature of the restriction and can learn who imposed it.

Is the blocked-by header mandatory?

Under RFC 7725 the Link header with rel="blocked-by" is recommended but not mandatory. It identifies the entity responsible for the block and acts as a machine-readable signal for crawlers and archives. The response body should still contain a human-readable explanation of who restricted access to the resource and on what legal grounds.

Does Roskomnadzor always return 451?

No. In Russia, blocks are usually enforced at the ISP level via DPI, DNS spoofing, or connection reset, so users see an operator stub page, a timeout, or a connection error rather than an honest 451. Code 451 remains the recommended way to signal a legal restriction transparently, but it has not yet become common practice in censorship enforcement.

How do I know if a site returns 451?

Check the real response code with enterno.io's HTTP header checker or the command curl -sI URL. If the status is 451, inspect the Link header and the response body — they should name the entity and the grounds for the block. To check the RKN register, use the dedicated tool.

Does 451 affect SEO and indexing?

Yes. For search crawlers, 451 signals that a page is legally unavailable, and it may be dropped from the index in the affected regions. Unlike 404 or 410, code 451 does not always mean full content removal: it can apply only in a specific jurisdiction, so the page can stay reachable and indexable in other countries.

Check your website right now

Check your site's HTTP status →
More articles: HTTP
HTTP
HTTP 502 Bad Gateway: What It Means and How to Fix
15.04.2026 · 239 views
HTTP
HTTP/2 vs HTTP/3: Differences and Performance Comparison
13.03.2026 · 175 views
HTTP
HTTP Headers: The Complete Guide
10.03.2025 · 202 views
HTTP
HTTP 503 Service Unavailable: Causes and Solutions
15.04.2026 · 172 views