3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Webアプリケーションにおいて404や500などのエラーページはどう作るのが良いか

Last updated at Posted at 2018-04-17

概要

Webアプリケーションを開発する際、404や500などHTTPステータスコードに応じたエラー画面をサイト専用で用意することが多い。

エラーページなので、画面のレイアウトやコンテンツの構成は統一させて表示するメッセージだけ変えたいと考えるのが普通だと思うが、ログインやサイト共通のヘッダー、サイトのベースレイアウトなどが絡んでくると少し厄介になる。

結論からいくと、

  • 最小コストで用意するなら

  • HTML1枚で完結させるようにした40X・500ページを返す

  • ユーザーコミュニケーションを重視するなら

  • 通常UIに準拠してログイン状態等も考慮して、40Xページを返す

  • HTML1枚で完結させるようにした、500ページを返す

が良いと思う。

主要なHTTPステータスコード整理

404 Not Found

  • ページが見つからない

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 稼働中 | 判定可能 |

  • cssや画像ファイルが閲覧可能
  • ログイン用メニュー等も表示可能

403 Forbidden

  • ページの閲覧権限がない

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 稼働中 | 判定可能 |

  • cssや画像ファイルが閲覧可能
  • ログイン用メニュー等も表示可能

その他の40X

基本

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 稼働中 | 判定可能 |

になる(はず)。

参考:HTTPステータスコード(クライアントエラー)

500 Internal Server Error

  • サーバ内部エラー
  • 想定外の問題が発生して適切なレスポンスを返せていない状態

アプリケーション内でエラーが発生した場合

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 稼働中 | 判定不能 |

  • cssや画像ファイルは閲覧可能
  • ログイン用メニュー等は表示不能

アプリケーションが応答を返せない場合

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 停止中 | 判定不能 |

  • cssや画像ファイルが閲覧不能
  • ログイン用メニュー等も表示不能

503 Service Unavailable

  • サービス利用不可
  • メンテナンス中など

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 停止中 | 判定不能 |

  • cssや画像ファイルが閲覧不能
  • ログイン用メニュー等も表示不能

その他の50X

基本

| Webサーバ | ログイン状態 |
|:-:|:-:|:-:|
| 停止中 | 判定不能 |

になる(はず)。

参考:HTTPステータスコード(サーバエラー)

どうつくればよいか

最小コストで用意するなら

  • HTML1枚で完結させる
  • CSSはインライン or HTML内埋め込み
  • 画像はData URIスキームで埋め込み

ユーザーコミュニケーションを重視するなら

404、403、その他40X

  • 通常UIをベースに、未ログイン時とログイン時で戻るボタン等も出し分けてつくる
  • ログイン中なら上部にメニュー出すなど

500、その他50X

  • HTML1枚で完結させる
  • CSSはインライン or HTML内埋め込み
  • 画像はData URIスキームで埋め込み
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?