何が起きたのか?
403 は「リソースは確かに存在するけれど、あなたにはアクセスする権限がない」という拒否のサインです。 教室で言えば、職員室の前に立って「中を見せて」と頼んだとき、先生が「ここは生徒は入れない部屋なんだ」と扉を閉めるような状況です。
401(認証されていない)と違って、サーバーは「あなたが誰かは分かっている。その上で許可しない」と言っています。ログインし直しても解決しないのが 403 の特徴です。
黒板からのひとこと
教室には、先生用の引き出しや、特定のクラブの部室など、入れる人が決まっている場所があります。誰かを締め出すためではなく、役割の違いから生まれる仕切りです。
403 もそれと同じです。意地悪をされているのではなく、「いまのあなたの立場ではここは見えないことになっている」のです。立場を変える(権限を上げてもらう)か、別の入り口を探すのが解決の道です。
解決への歩み
大丈夫、次はこうしてみよう:
- 正しいアカウントでログインしているか確認:別のロールのアカウントが必要かもしれない
- 権限を持つ人に申請する:管理者やリソース所有者に「これにアクセスしたい」と相談
- URL/操作が本当に必要かを問い直す:別の正規ルートで同じ目的を達成できる場合がある
- サーバー設定を確認(管理者向け):ファイル権限、ロール定義、WAFルール、IP allow/denyを順に確認
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 403 Forbidden
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>403 Forbidden</h1></body></html>