• HTTP 451はpageを消した理由でなく法的なアクセス停止と説明の担当を分けて返す

HTTP 451はpageを消した理由でなく法的なアクセス停止と説明の担当を分けて返す

公開日: 執筆:佐藤

HTTP 451は、法的な要求の結果としてresourceへのアクセスを拒むときのstatusです。pageを削除した、移転先がない、設定を間違えたという理由には使いません。法的な理由で公開を止める必要が生じた場合も、statusを返す作業と、何を止めるかを判断する作業、画面で何を説明するか、誰が問い合わせを受けるかを分けます。法律上の判断は、site制作だけで決めません。

RFC 7725は、legal demandによってserverがresourceまたはresource群へのaccessを拒むときにHTTP 451を使うと定めています。response bodyには、要求したparty、適用されるlawまたはregulation、どの人やresourceに及ぶかを説明することが推奨されています。実際にblockを行うentityを示すために、blocked-byを関係名とするLink headerを使う方法も定めています。

451と404、410、403を同じ公開停止に使わない

pageが開けないとき、statusには異なる意味があります。404はrequestされたURLに対応するresourceが見つからない場合に使います。410は、そのresourceがなくなり、戻す予定がないと決めた場合に使います。403はserverがrequestを理解したがaccessを拒む場合に使います。451は、legal demandの結果としてaccessを拒むことを示します。

たとえば、古いサービス案内を終了し、今後戻さないと決めたなら、451を選びません。削除なのか、別のpageへ移すのか、一定期間だけ非公開にするのかを決めます。fileを誤って消してpageが見つからないなら、まず復旧またはURL設定を確認します。staff向けの資料を公開URLから外したいなら、誰が読めるようにするかを設定します。どの場合も、legal demandによるaccess停止とは別です。

説明用の仮例として、事業者が外部からの正式な要求を受け、特定の資料pageを公開停止にする必要がある場合を考えます。まず、その要求がどのURLまたはどの範囲に及ぶのか、いつからいつまで止めるのか、copyやPDFも対象か、site内検索やlinkから外すかを確認します。制作会社へ「pageを消してください」とだけ頼むと、対象外のpageまで消したり、必要な記録まで失ったりするおそれがあります。

451を返すことは、resourceが存在することも、存在しないことも示しません。RFC 7725も、legal demandがなくなったとしてもrequestが成功するとは限らないと説明しています。したがって、停止後にpageを復活させるか、別のURLへ移すか、完全に削除するかは、451のstatusだけから決まりません。公開停止の判断と、contentを残す判断を分けます。

停止の根拠と画面に出す説明を分ける

451のresponse bodyには、accessを止める理由を説明することが推奨されています。しかし、法律上の要求文をそのまま公開画面へ貼ればよいわけではありません。公開できる範囲、相手方の情報、問い合わせ先、誤解を招かない表現は、要求内容と事業者の判断を確認して決めます。制作会社がHTMLを用意することと、説明内容に責任を持つことは別です。

仮例では、画面に「このpageは現在表示できません」とだけ書くと、利用者はtemporaryな障害なのか、URLが変わったのか、公開停止なのかを判断できません。一方で、根拠が未確認のまま、特定の相手や法令を断定して書くことも避けます。誰が公開文を承認し、どの連絡先へ質問を集め、いつ内容を見直すかを決めます。

RFC 7725は、blockを実装するentityを識別するため、rel="blocked-by"を付けたLink headerを推奨しています。これは、blockを要求したすべてのentityを表すためではなく、実際にaccessを止めるentityを示すためのものです。hosting service、cache provider、DNS serviceなど、requestの経路には複数のentityが関わる場合があります。どこで止めたのかを確認しないまま、origin serverの設定だけを替えて解決しようとしません。

公開画面の説明とHTTP headerも、同じ人が必ず担当するとは限りません。法務または事業責任者が説明文を承認し、hosting serviceを管理する人がserver設定を替え、制作会社がpageの表示を実装することがあります。役割を分けたうえで、どのURLにどのresponseが返るかを実際に確認します。画面に説明が出ても、HTTP statusが200のままなら、access停止として意図した状態とは言えません。

URL、copy、cacheを分けて確認する

一つのcontentがarticle page、PDF、画像、印刷用pageなど複数のURLにある場合、どこまで停止するかを列挙します。article pageだけを451にしても、添付PDFや画像が公開のままなら、同じ内容にaccessできることがあります。反対に、関係のない一覧pageや他の記事まで止める必要があるとは限りません。対象URLを一つずつ決めます。

451 responseは、特別なcache controlを指定しなければcacheできるstatusです。公開停止を変更したあとに古いresponseが残る可能性もあるため、server、CDN、browser cacheの扱いを確認します。cacheの設定を制作会社が変える場合、いつからどう直したか、どのURLを再確認するかを記録します。statusを変える作業と、利用者が実際に受け取るresponseを確認する作業を分けます。

site内のmenu、関連記事、sitemap、検索結果、外部へ渡したURLも見ます。451を返すURLへ読者を案内し続けることが必要か、代わりに見せる案内pageがあるか、linkを外すかを決めます。検索エンジンの扱いを期待してstatusを選ぶのではなく、公開停止の理由と利用者への案内を先に整えます。

実務では、要求の有効性や法律上の義務をsite制作者だけで判断しません。要求書、契約、法令、地域、権利関係などを確認する必要がある場合は、事業者が適切な専門家へ確認します。451は、その判断の結果をHTTP responseで表すためのstatusです。判断そのものを代わりに行うものではありません。

最初の一手は、止める必要があるURLと、停止の根拠を確認する責任者を分けて書くことです。次に、HTTP status、画面の説明、Link header、cache、site内linkを誰が確認するかを決めます。451は削除buttonの代わりではありません。

戻る