451 Unavailable For Legal Reasons
使い方
451 Unavailable For Legal Reasons ステータスコードは、リソースの存在を肯定も否定もしません。サーバーは法的要求によりアクセスを拒否しており、その旨を表明することが認められています。
そのリソースは検閲によってブロックされています。この HTTP ステータスコードは、レイ・ブラッドベリの小説『華氏 451 度』へのオマージュです。
451 Unavailable For Legal Reasons のレスポンスが適用される例は、アクセス元の国の法律によって異なります。一般的なケースには、著作権侵害、プライバシー侵害、ギャンブルサイトなどがあります。報道禁止令などの裁判所命令が関わるあらゆる状況で、このコードが妥当となります。403 レスポンスは、このエラーのより一般的な版です。
このコードの透明性により、検閲によって取り下げられたサイトの数やカテゴリーに関する統計を第三者が収集できるようになります。
場合によっては、クライアントは別の手段でリソースにアクセスします。VPN や Tor ネットワークは発信元を覆い隠し、プロキシサーバーはブラウザのトラフィックを別の国へ転送します。
レスポンスの一部として、サーバーはリクエストをブロックしている主体を示す Link ヘッダーを含めます。これはコンテンツのブロックを実施している側であり、ブロックを命じた側ではありません。方針を定めた側に関する情報はメッセージボディに記載されます。
SEO への影響
Google のような検索エンジンは、451 Unavailable For Legal Reasons のレスポンスステータスを持つ URL をインデックスしません。このコードを返す、以前にインデックスされていた URL は検索結果から削除されます。
Microsoft Exchange ActiveSync での用法
451 Redirect のエラーメッセージは、クライアントが誤ったサーバーに接続していることを意味します。ユーザーのメールボックスがこのサーバーからアクセスできないか、より効率的なサーバーが存在するかのいずれかです。
レスポンスに X-MS-Location ヘッダーが含まれる場合、以降のリクエストはそのヘッダーのアドレスを使います。X-MS-Location ヘッダーがない場合は、完全な Autodiscover の処理が実行されます。
例
クライアントがリソースを要求し、サーバーは 451 Unavailable For Legal Reasons で応答します。Link ヘッダーが、コンテンツのブロックに責任を持つ主体を示します。
リクエスト
GET /tech-trial-updates HTTP/1.1
Host: example.com
レスポンス
HTTP/1.1 451 Unavailable For Legal Reasons
Link: <https://example.com/legaldept>; rel="blocked-by"
Content-Type: text/html
Content-Length: 174
<html>
<head>
<title>Publication Ban</title>
</head>
<body>
<p>The requested content is unavailable due
to a government-ordered publication ban.</p>
</body>
</html>
対処方法
クライアント側に技術的な対処方法はありません。法的要求により制限が求められているため、サーバーがアクセスをブロックしています。リソース自体はサーバー上に残っていますが、配信されません。
レスポンスの Link ヘッダーを読み取ります。rel=“blocked-by” の関係は、ブロックを命じた法的権限ではなく、ブロックを実施している主体(ISP、DNS プロバイダー、ホスティングプラットフォーム)を示します。要求の詳細については、ブロックを実施している主体に問い合わせてください。
法的根拠、要求を行った当事者、該当する法令や規則の説明について、レスポンスボディを読んでください。サーバーはこの情報を含めることが推奨されています。
場合によっては、別の地域からのアクセスによって地域固有の法的ブロックを回避できます。VPN や Tor ネットワークは、その制限が適用されない法域を経由してリクエストを転送します。
サーバー運用者向け
ブロックの実施に責任を持つ主体を指す rel=“blocked-by” を伴う Link ヘッダーを返します。
Link: <https://legal.example.re>; rel="blocked-by"
レスポンスボディには、具体的な法律、要求を行った当局、影響を受けるコンテンツや人物の区分といった、法的要求に関する明確な説明を含めます。
適切なキャッシュヘッダーを設定します。リソースの法的状態が頻繁に変わる場合は Cache-Control: no-store を追加します。
Microsoft Exchange ActiveSync 向け
Exchange からの 451 Redirect は、クライアントが誤ったサーバーに接続したことを意味します。レスポンスの X-MS-Location ヘッダーを確認し、以降のリクエストを指定されたアドレスへリダイレクトします。X-MS-Location ヘッダーがない場合は、正しいメールボックスサーバーを見つけるために完全な Autodiscover の処理を再実行します。
コードリファレンス
.NET
HttpStatusCode.UnavailableForLegalReasons
Rust
http::StatusCode::UNAVAILABLE_FOR_LEGAL_REASONS
Rails
:unavailable_for_legal_reasons
Go
http.StatusUnavailableForLegalReasons
Symfony
Response::HTTP_UNAVAILABLE_FOR_LEGAL_REASONS
Python3.5+
http.HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus
.SC_UNAVAILABLE_FOR_LEGAL_REASONS
Angular
@angular/common/http/HttpStatusCode
.UnavailableForLegalReasons