Webエンジニアである以上、HTTPステータスコードは暗記しておきたいが、
全部覚えておかなくても支障はない。
今回はステータスコードの概要と頻出項目について解説する。
ステータスコードは主に5種類
- 1XX
- 2XX
- 3XX
- 4XX
- 5XX
この5つだ。
XX
には、00
〜99
までのいずれかが入る可能性がある。
この中で1XX
は滅多に遭遇しないので、覚えておかなくても問題ない。
概要を理解すればOK
ステータスコード | 概要 |
2XX系 | リクエストが成功したということ |
4XX系 | リクエスト側に問題があることを知らせる |
5XX系 | リクエストを受け付けたサーバー側に問題があることを知らせる |
2XX系
2XX系のステータスコードは、
リクエストが正常に行われ、成功しましたということを表している。
これが返ってくれば安心すれば良い。
200 OK
最も一般的なステータスコードで、
単に「リクエストが成功した」ということを伝える。
普通のWebページを表示したときもこのコードと共にページが返却される。
201 Created
これはPOST送信をしたときに返ってくることが多いものだ。
データの追加などを行って、
「新たなリソースが作成されました」ということを伝える。
データの追加は基本的にPOSTを利用するので、
POSTしたときによく見るコードである。
4XX系
4XX系のステータスコードは、
リクエスト側に何か問題があるということを伝える。
開発時は間違えてリクエスト送ることがよくあるので、
2XX系の次によく見るステータスコードである。
400 Bad Request
これは、何かリクエストがおかしいときに発生する。
大抵typoや?
、&
のつけ忘れなどが考えられる。
要するにもう一度リクエストURLを確認しろということだ。
403 Forbidden
「認証されておらず、権限がない」ということを伝える。
管理者専用ページにアクセスしようとしたり、
ログイン情報を忘れているときに発生する。
大抵本当に権限がないか、認証情報をつけずにリクエストしてしまった場合である。
404 Not Found
これは「リクエストされたリソースが存在しない」ことを伝える。
よくあるのが、存在しないページにアクセスしたときだ。
あとは、単純にURLを間違えていることが多い。
5XX系
4XX系がリクエストした側に問題があったのに対して、
5XX系はサーバーに何らかの問題がある場合に発生する。
自分の携わってるWebサービスで、
5XX系を返すような状況があったらマジでヤバイ。
バグのあるコードを埋め込んでいる可能性が非常に高い。
500 Internal Server Error
これはサーバー側で予期せぬ事態が発生したときに返却するコードである。
予期せぬ事態ということは、
エンジニアにとって完全に考慮外の事態が発生している証拠である。
Webフレームワークなどを使っている際は、
バグってる場合にこのステータスコードを返却するように作られていることが多い。
一刻も早くアプリケーションを前のバージョンに戻して復旧させ、
ログやコードから原因を調査しましょう。
まとめ
- ステータスコードはリクエストの成否を簡潔に伝えるもの
- 2XXはOKであり、安心して良い
- 4XXはリクエストした自分に非があると思って反省する
- 5XXは事故