こちらの記事では500番代のステータスコード(以下、ステータスコード5xx)について解説をします。
ステータスコード5xxはウェブサーバーがリクエスト処理を失敗した事を表します。
このエラーはサーバーが原因となる事が多い為、クライアント側での対処が難しいエラーとなります。その為主要なステータスコードを把握する事でサーバー管理者への連絡などがスムーズに行えます。
その他のステータスコードについては次の記事をご覧ください。 https://envader.plus/article/29
よく見かけるステータスコード5xx(主要なステータスコード)
代表的なエラーとして次のようにアクセスが集中し、過負荷で一時的に処理不能になっている状態があります。
- 500 Internal Server Error
- 503 Service Unavailable
- 504 Gateway Timeout
500 Internal Server Error
500 Internal Server Errorとはサーバー内部で何らかのエラーが発生し、クライアントへ正常なレスポンスを返せないことを表すステータスコードです。
原因として.htaccess
の記述誤りやパーミッションの設定ミスなどによるWebサーバーの設定ミスが挙げられますが、500 Internal Server Errorはその他に適切な5xxエラーが見当たらなかった場合に選択をされるため、詳しい原因の特定まで行うのは難しいエラーコードです。
クライアント側での対処・修正は難しいので、サーバー管理者へ連絡を行いましょう。サーバー管理者はまずログの確認を行い、エラーログがある場合は該当箇所の修正をします。Webアプリケーションに問題がある場合は再起動を行いエラーログを確認し、コードの修正を実施します。
503 Service Unavailable
503 Service Unavailableとはアクセス集中などによりサーバーに負荷がかかり、一時的にサービスが利用不可であることを表すステータスコードです。
アクセス集中によりサービスが利用出来なくなることからサーバーダウンと思われがちですが、503エラーはサーバーダウンとは異なり、サーバーダウンを回避する為の予防措置となります。その為サーバーダウン時は全てのWebサイトが閲覧不可となるのに対し503エラーではアクセス制限を受けるのは特定のWebサイトのみとなります。この503エラーが発生する仕組みとしてはサーバーごとに設定したアクセス数(データリクエスト数)が上限を超えた場合に発生します。
一時的なアクセス集中に関しては時間が経ち、アクセス数が減少すれば解消されますが、検索順位上昇などにより一定のアクセス数の上昇が見られる場合はサーバーのプラン変更など、アクセス制限の上限値自体を変更するなどの対処が必要となります。
504 Gateway Timeout
504 Gateway Timeout とはクライアントのリクエストに対してサーバーから規定時間内に応答がなかった事を中継機(ゲートウェイ)が知らせるステータスコードです。
ゲートウェイとは通信プロトコルの違う二者間やネットワーク間の通信を中継する機器やソフトウェアの一種で、異なるプロトコルやアドレス体系、データ形式などを相互に変換し通信できるようにしています。具体的にはメインサーバーが上流サーバーからの応答を待っている間に、タイムアウトを起こしてしまったと考えられます。原因はタイムアウトまでの設定時間が短いことや過負荷やサーバーダウン等サーバー側に問題がある事が挙げられます。
対処法として簡単なのはWebページの再読み込みやネットワーク機器の再起動があります。これらを試してみても直らない場合はプロキシの設定の確認やDNSの設定を見直す事で改善出来る可能性があります。
ステータスコード5xx一覧表
次が様々な5xxステータスコードの一覧です。ファイルの種類によって異なる出力となる503、510などがあるので注意が必要です。
コード番号 | 意味 | 説明 |
---|---|---|
500 | Internal Server Error | サーバー内部でエラーが発生していることを表します。 |
501 | Not Implemented | リクエストメソッドにサーバーが対応していない場合に返されます。 |
502 | Bad Gateway | ゲートウェイとして動作するサーバーが不正なリクエストを拒否したことを表します。 |
503 | Service Unavailable | サービスが一時的に過負荷やメンテナンスで使用出来ないことを表します。 |
504 | Gateway Timeout | ゲートウェイとして動作するサーバーが時間内にレスポンスを得られない場合に返されます。 |
505 | HTTP Version Not Supported | リクエストに使用したHTTPバージョンにサーバーが対応していないことを表します。 |
506 | Variant Also Negotiates | サーバーに内部構成エラーがあることを表します( Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード) |
507 | Insufficient Storage | リクエストを処理するために必要なストレージ容量が不足していることを表します。(WebDAVの拡張ステータスコード) |
508 | Loop Detected | リクエスト処理中に無限ループを検出したことを表します。(WebDAVの拡張ステータスコード) |
510 | Not Extended | 503とほぼ同じでアクセスが集中した場合などに返されます。 両者の違いは503が主に動的1ファイルにアクセスが集中した場合に表示され、510は静的2ファイルにアクセスが集中した場合に表示されます。 |
511 | Network Authentication Required | アクセスをする際に認証が必要な場合に返されます。 |
注1: 動的ファイル:検索結果など、利用者毎に内容が異なるファイル 注2: 静的ファイル:画像など、すべての利用者で同じ内容のファイル
まとめ
今回はHTTPステータスコード5xxの意味について解説をしました。5xxのエラーはサーバー側に問題があるため、クライアント側での対応が難しいエラーとなります。
主要なステータスコード5xxとして次を学びました。
- 500 Internal Server Errorはサーバー内部でエラーが発生し、クライアントへ正常なレスポンスが返せない事
- 503 Service Unavailableはアクセス集中などのサーバー負荷により一時的にサービスが利用できない事
- 504 Gateway Timeoutはクライアントからのリクエストにサーバーからの反応がなかった事を中継機(ゲートウェイ)が知らせてくれている事
サーバー側の問題であるため、サーバー管理者に連絡するのが解決の第一歩と言えます。サーバー管理者はユーザーから連絡されて気づくのではなく予防的措置を考える必要があります。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.01.22
Webサーバとは?役割や種類について
今回はWebサーバの役割や種類、サーバーソフトウェアについて解説を行なっていきます。
- WEB
2022.12.11
HTTPステータスコードとは何?確認方法は?
こちらの記事では、HTTPステータスコードについて解説します。
- WEB
2024.02.29
Webで効果的に集客するならLステップを導入してみよう
今回は、そんな「Lステップを使ったWeb集客」について解説します。「Lステップを使ったWeb集客方法」や「Lステップを使うメリット」、「LステップでWeb集客を増やすコツ」も紹介しているので、ぜひ参考にしてください。
- WEB