503エラー 【HTTP 503 Service Unavailable】

概要

503エラー(HTTP 503 Service Unavailable)とは、Webサーバで起きるエラーの種類の一つで、Webサーバが過負荷などで機能が停止し、要求を処理できないことを示すもの。

WebサーバとWebブラウザなどのクライアントの間ではHTTPHypertext Transfer Protocol)という通信規約(プロトコル)でデータ伝送を行っている。クライアントからの要求(リクエスト)に対してサーバは応答(レスポンス)を返すが、その際に現在の状態を示すHTTPステータスコードを通知する。

ステータスコードの500番台はサーバ側で生じたエラーを表しており、503番のエラーメッセージは “Service Unavailable” (サービス停止)である。サーバが何らかの理由で機能を停止しており、クライアントの要求に答えられないことを表す。一時的な停止の場合に使用すべきコードであるとされ、そのことを明示するため “Service Temporarily Unavailable” (Temporarily:一時的に)というメッセージを返すサーバもある。

503エラーは、サーバの性能や容量を大きく超える大量のアクセス要求が殺到して機能不全に陥っている場合や、メンテナンスなどで一時的に機能を停止している状態、転送量などが制限値を超えてしまい、それ以上データを送信できない場合などに返される。

この状態に陥ったサーバはどのURLへの要求も503エラーとなり、原因事象が解消されない限りどの資源にもアクセスすることができない。サーバが完全に停止しているわけではなく、サーバ上のハードウェアやソフトウェアは機能を維持しており、原因が取り除かれれば速やかにサービスが再開される。

計画的なメンテナンスなどの場合には、サービス再開の予定日時を「Retry-After:」HTTPヘッダで通知する場合もある。過負荷により繰り返し503エラー状態に陥ってしまう場合にはサービスの需要に対してサーバの性能が不十分であるため、性能や台数の増強、キャッシュやCDNの活用による負荷の軽減など恒久的な対策が必要となる。

(2023.12.2更新)

HTTPステータスコード一覧

*1 302はHTTP/1.0では「Moved Temporarily」だった。
*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」として定義されていた。