403エラー 【HTTP 403 Forbidden】
概要
403エラー(HTTP 403 Forbidden)とは、Webサーバで起きるエラーの種類の一つで、アクセスしようとした資源や実行しようとした操作に対して適切な権限が与えられていないことを示すもの。WebサーバとWebブラウザなどのクライアントの間ではHTTP(Hypertext Transfer Protocol)という通信規約(プロトコル)でデータ伝送を行っている。クライアントからの要求(リクエスト)に対してサーバは応答(レスポンス)を返すが、その際に現在の状態を示すHTTPステータスコードを通知する。
ステータスコードの400番台は要求に応じられなかったエラーを表しており、403番のエラーメッセージは “Forbidden” (禁止されている)である。認証が必要な領域に未認証の利用者がアクセスしようとしたり、アクセスが禁じられている領域であることを示している。
例えば、イントラネットからのみアクセス可能に設定してある社内向けのページにインターネットからアクセスしようとした場合や、管理者のみが操作できる画面に一般の閲覧者がアクセスしようとした場合、何らかの理由で管理者によりアクセスを禁じられた利用者などに403エラーが返される。
似たステータスコードに「401エラー」(HTTP 401 Unauthorized)がある。これは認証画面などで入力したIDやパスワードが間違っている場合など、ユーザー認証に失敗した場合に返される。「WWW-Authenticate」ヘッダで再認証のための制御情報が案内される。
(2023.12.12更新)
HTTPステータスコード一覧
コード | 意味 | 初出 |
---|---|---|
100番台:Informational (情報) | ||
100 Continue | 継続 | HTTP/1.1 |
101 Switching Protocols | プロトコル切替 | HTTP/1.1 |
102 Processing | 処理中 | RFC 2518 |
103 Early Hints | 予想ヘッダの先行送信 | RFC 8297 |
200番台:Success (成功) | ||
200 OK | 成功 | HTTP/1.0 |
201 Created | 作成完了 | HTTP/1.0 |
202 Accepted | 受理 | HTTP/1.0 |
203 Non-Authoritative Information | 非公式な情報 | HTTP/1.1 |
204 No Content | 内容が空 | HTTP/1.0 |
205 Reset Content | 表示を初期化せよ | HTTP/1.1 |
206 Partial Content | 内容の一部を送る | HTTP/1.1 |
207 Multi-Status | 複数ステータスが混在 | RFC 4918 |
208 Already Reported | 以前に通知済み | RFC 5842 |
226 IM Used | 差分符号化されている | RFC 3229 |
300番台:Redirection (転送) | ||
300 Multiple Choices | 複数の候補がある | HTTP/1.1 |
301 Moved Permanently | 恒久的に移転 | HTTP/1.0 |
302 Found *1 | 別の場所で見つけた | HTTP/1.0 |
303 See Other | 別の場所を探せ | HTTP/1.1 |
304 Not Modified | 変更なし | HTTP/1.0 |
305 Use Proxy | 中継サーバを通せ | HTTP/1.1 |
307 Temporary Redirect | 一時的な転送 | HTTP/1.1 |
308 Parmanent Redirect | 恒久的な転送 | RFC 7538 |
400番台:Client Error (クライアントエラー) | ||
400 Bad Request | 不正なリクエスト | HTTP/1.0 |
401 Unauthorized | 未認証 | HTTP/1.0 |
402 Payment Required | 有料である | HTTP/1.1 |
403 Forbidden | アクセス権がない | HTTP/1.0 |
404 Not Found | 存在しない | HTTP/1.0 |
405 Method Not Allowed | そのメソッドは不可 | HTTP/1.1 |
406 Not Acceptable | 受理不可 | HTTP/1.1 |
407 Proxy Authentication Required | プロキシの認証が必要 | HTTP/1.1 |
408 Request Timeout | 時間切れ | HTTP/1.1 |
409 Conflict | 競合 | HTTP/1.1 |
410 Gone | 消滅した | HTTP/1.1 |
411 Length Required | 長さを指定せよ | HTTP/1.1 |
412 Precondition Failed | 前提条件不整合 | HTTP/1.1 |
413 Content Too Large *2 | 受信データが長すぎる | HTTP/1.1 |
414 URI Too Long *3 | URIが長すぎる | HTTP/1.1 |
415 Unsupported Media Type | データ形式非対応 | HTTP/1.1 |
416 Range Not Satisfiable *4 | 要求範囲が誤っている | HTTP/1.1 |
Expectヘッダの処理に失敗した | HTTP/1.1 | |
(かつてジョークRFCで使われた) | RFC 2324 | |
送信先が間違っている | HTTP/2 | |
受信データは処理できない | RFC 4918 | |
要求リソースはロックされている | RFC 4918 | |
依存関係の解決に失敗 | RFC 4918 | |
TLSのEarly-Data処理に失敗 | RFC 8470 | |
新しいバージョンのHTTPを使え | HTTP/1.1 | |
条件付きリクエストにせよ | RFC 6585 | |
短時間に要求を送りすぎである | RFC 6585 | |
長過ぎる要求ヘッダ項目がある | RFC 6585 | |
法的な理由で拒否 | RFC 7725 | |
500番台:Server Error (サーバエラー) | ||
500 Internal Server Error | サーバ内部のエラー | HTTP/1.0 |
501 Not Implemented | 機能が未実装 | HTTP/1.0 |
502 Bad Gateway | 中継サーバのエラー | HTTP/1.0 |
503 Service Unavailable | サービス停止中 | HTTP/1.0 |
504 Gateway Timeout | 中継サーバの要求が時間切れ | HTTP/1.1 |
505 HTTP Version Not Supported | HTTPバージョンが非対応 | HTTP/1.1 |
506 Variant Also Negotiates | 版指定で循環参照が発生 | RFC 2295 |
507 Insufficient Storage | ストレージ容量が不足 | RFC 4918 |
508 Loop Detected | 要求処理中に無限ループが発生 | RFC 5842 |
510 Not Extended | HTTP拡張機能には非対応(廃止済み) | RFC 2774 |
511 Network Authentication Required | キャプティブポータルで認証を受けよ | RFC 6585 |
*2 413はHTTP/1.1では「Request Entity Too Long」、RFC 7231では「Payload Too Long」だった。
*3 414はHTTP/1.1では「Request-URI Too Long」だった。
*4 416はHTTP/1.1では「Requested Range Not Satisfiable」だった。
*5 418は1998年エイプリルフールのジョークRFC 2324で「I'm a teapot」として定義されていた。