🫖

HTML ステータスコードについて

に公開

はじめに

お疲れ様です。件の新卒新米インフラエンジニアです。
研修でLinuxを用いてWebサーバーを構築していた際、403エラーが発生しました。これはForbiddenと呼ばれるもので、権限不足が原因となって起こるエラーです。
ふと、これ以外にHTMLのステータスコードはほかにどのようなものがあるのか気になったのでまとめてみました。


200番台

成功レスポンスと言われるコードで、一般的に確認する必要はありません。

200 OK

リクエストが成功したことを示します。
GETメソッドではリソースが読み込まれ、メッセージ本文で転送された際、HEADメソッドではメッセージ本文がなく、表現ヘッダーがレスポンスに含まれている際、PUTあるいはPOSTでは操作の結果を表すリソースがメッセージ本文で送信された際、TRACEではメッセージ本文にサーバーが受け取ったリクエストメッセージが含まれている際に示されます。

201 Created

リクエストが成功し、新しいリソースが作成されたことが示されています。
一般的にPOSTリクエストや、一部のPUTリクエストを送信した際に表示されるレスポンスになります。

300番台

リダイレクトメッセージといわれるメッセージで、遷移の際のメッセージなどがこれに該当します。

301 Moved Permanently

URLが永遠に変更された際にこのメッセージが表示されます。
レスポンスで新しいURLが与えられ、自動的に遷移します。
ハイパーリンクなどで古いページを参照してしまった際に見ることになるだろうと思います。

302 Found

404とは逆のメッセージですが、恐らく一時的に違うURLにリダイレクトした際に利用されるメッセージです。
ただし、今後も直接アクセスしたURLにアクセスするべきです。

400番台

クライアントエラーレスポンスと呼ばれるコードで、有名なNot Foundなどはここに該当します。

401 Unauthorized

このメッセージではUnauthorized、不許可となっていますが、実際の意味としてはUnauthenticated、未承認です。
つまり、クライアントとなる端末がレスポンスを得るには認証を受けなければいけません。

403 Forbidden

クライアントにコンテンツのアクセス権がなく、サーバーがレスポンスを拒否しています。
HTMLファイルのオーナー情報が正しいかなどを確認してみましょう。
401 Unauthorizedとは異なり、クライアントのIDがサーバーに知られているようです。

404 Not Found

もはや説明不要ですが、一応解説しておこうと思います。
リクエストしたリソースが発見できなかった際に送られるメッセージですが、認証されていないクライアントからリソースの存在を隠すためにこのレスポンスを返すこともあるようです。

500番台

サーバーエラーレスポンスと呼ばれるコードで、サーバー側に問題が発生した際に表示されるコードです。

500 Internal Server Error

サーバー側で処理方法がわからない事態が発生しています。
汎用的なエラーで、適切な500番台のステータスコードが見つけられない場合に通知されます。

503 Service Unavailable

サーバーはリクエストを処理する準備ができていません。
一般的には、サーバーがメンテナンスや過負荷でダウンしていることが原因で表示されます。

その他

418 I'm a teapot

サーバーは、ティーポットでコーヒーを淹れようとする試みを拒否します。

と書かれています。
恐らくですが、ジョーク系のメッセージだと思われます。

学んでみての感想、まとめ

まず418についてなのですが、このメッセージは実際に使われる場面が思いつかないことと、以前にジョークメッセージだと聞いたことがあったため今回はジョークメッセージだ、という結論にしましたが、ひょっとしたら使われる場面があるのでしょうか。

また、200番台のメッセージは成功を表し、300番台がリダイレクトの際に用いられるメッセージということはざっくりとわかっていたのですが、今回400番台の内容と500番台の内容についても理解することができました。

特に、新たな学びを得たなと感じるのは401です。実際の意味としては未承認、というところが腑に落ちました。
以前から401と403で、同じようなメッセージがあるのはなぜだろうと考えていたのですが、今回調べてみてよかったです。
ただ、なぜ実際と違う文面になってしまったのだろうという思いが残りましたが……

出典等

mdn web docs

Discussion