Web技術の基礎
会員制のWebサイトで、ログインしている一般の会員が、管理者だけに許されたページを要求した。サーバは利用者がだれかを確認できているが、このページへのアクセスは許可しない。このとき返すステータスコードとして最も適切なものはどれか。
- A401 Unauthorized
- B403 Forbidden
- C404 Not Found
答えと解説を見る
正解:B. 403 Forbidden
403 Forbidden は、サーバがリクエストを理解したうえで、アクセスを許可しないことを示します。401 Unauthorized は名前に反して、認証の情報がない、または正しくないことを示すコードで、WWW-Authenticate ヘッダで認証の方法を伝えます。この場面では利用者がだれかは確認できており、足りないのは権限(認可)なので、403が当てはまります。管理画面があること自体を知られたくない場合に、あえて404を返す設計もありますが、状況をそのまま表すのは403です。
- A. 401は、認証の情報がない、または正しくない場合に使います。この利用者は認証を済ませています。
- B. 正しい。認証は済んでいて、権限がないことを示します。
- C. 404は資源が見つからないことを示します。存在を隠すために使う設計もありますが、状況をそのまま表すのは403です。