お客様のWebサイトで408エラー(408 Request Timeout)が発生した場合の対処について、説明します。
408エラーとは
408エラー(408 Request Timeout)とは、エラーステータスコードの一つで、サーバーがクライアント(ブラウザ)からのリクエストを待機している間に、予め決められた時間内に処理が完了しなかった場合に、タイムアウトとしてサーバー側から通知されるエラーコードです。
同じくタイムアウトを示すエラーとして504 Gateway Timeoutがありますが、504エラーはサーバーがネットワーク上の別のサーバーからの応答を待っている間にタイムアウトが発生した場合に、通知されるエラーコードで、この原因はサーバー若しくはネットワークが原因です。
対して408エラーの場合は、クライアント(ブラウザ)若しくはサーバーが原因のエラーとなります。
408エラーの原因
408 Request Timeoutは予めWebサーバー設定された時間を過ぎてもクライアント(ブラウザ)からの完全なリクエストを受け取れなかった場合、そのコネクションを終了する際に発するステータスコードです。
これはサーバーリソースの保護や、セキュリティ面でも重要な設定となります。長時間処理されるリクエストや異常なサーバー接続によって、サーバーが過負荷になる事を防ぎます。この様に任意にサーバーを過負荷状態にする事で、不正侵入を試みる手法も存在する為、タイムアウト設定は、サーバーを守る為の防御策の一つです。
このタイムアウト時間は、Webサーバーの設定で変更できますが、初期設定は30秒(Apacheの場合)となっています。
VPSや専用サーバーなどroot権限を持つことができるサーバーでは、この設定を変更する事が出来ますが、共用サーバーの場合、変更できない事が多いです。
ブラウザのタイムアウト
ブラウザにもタイムアウト時間があり、通信の確立状態(Keep-Alive)を維持する為の時間が設定されています。このブラウザのタイムアウト時間は、Chrome、Firefox、Safari、Edge共に30秒間と言われています。このタイムアウト時間はChromeの場合は変更できません。それ以外のブラウザは変更できるものもありますが、変更方法は簡単ではありません。
それ以外のタイムアウト設定
Webサーバーには、このタイムアウト設定の他にも、ProxyTimeoutやKeepAliveTimeoutの設定など、接続時間に関する制限がされています。また、Wordpressなどで利用するPHP側でも、スクリプトの実行時間を制限する設定などがあります。
またWebサイトへのアクセスする際は、クライアント(ブラウザ)のPC~サーバーだけでは無く、ルーターなど様々な機器を通って通信しますが、それぞれがタイムアウト時間が設定されています。
408エラーの主な原因
408エラーには様々な要因で発生し、時には複数の要因が重なって発生します。その主な要因は以下に挙げるものになります。
原因 | 説明 |
---|---|
サーバーの過負荷状態 | アクセス集中や、膨大な処理命令、大きなファイルサイズの送受信が行われると、サーバーが過負荷状態に陥り個々のリクエストに対する処理が遅延する事があります。この過負荷状態で新しいリクエストがされると、そのリクエストは待ちの状態となってしまう為に、結果的にタイムアウトとなってしまう事があります。 |
大きなファイルサイズのデータ | 大きなファイルサイズのデータは、その送受信のリクエストを完了するまでに時間がかかってしまいタイムアウトとなってしまう事があります。 |
クライアント側の問題 | サーバー側に負荷が掛かっていない場合でも、クライアント側のネットワークやPCが過負荷状態だったり、不安定な状態の場合もリクエストを完了しない為にタイムアウトとなってしまう事があります。 |
Webサイト内のWebアプリケーションに問題がある | Webサイト内のアプリケーションの処理命令にバグがあったり、膨大な処理命令を行うものがあると、特定の条件下でリクエストの処理が遅延してタイムアウトとなってしまう事があります。 |
HTTP Keep-Alive設定が不適切 | HTTP Keep-Alive は、HTTP通信において、1回の接続 (TCP コネクション) で複数のHTTPリクエストとHTTP レスポンスを処理するための仕組みで、この設定が不適切だとクライアントがリクエストを送信するタイミングとサーバーが接続を閉じるタイミングにずれが生じて408エラーが発生する場合があります。 |
408エラーに対応すべきか否か
もし、意図せず408エラーが発生した場合は、先ずは先ずWebサイトが原因か、クライアント(ブラウザ)側の原因かを判断します。
クライアント(ブラウザ)側に原因がある場合は、Webサイト側では対処する事ができないので、408エラーが発生したPCやネットワークで原因究明をしてください。408エラーが発生したのが、訪問者からの苦情だった場合は、Webサイト側を調査したところ、その事象が発生しているのが、その訪問者のみである事を伝えて、ブラウザの再起動→PCやスマートフォン等端末の再起動→ルーターの再起動の順に試してみる事を提案してください。
Webサイト側に原因があると疑われる場合は、Webサイト側に原因がある場合の原因切り分けを行って、それぞれの対処を検討してください。
尚、弊社で制作したウェブサイトや、各保守サービスをご利用いただいているお客様の場合は、原因追及~対処提案までを無償で対応できる場合がございますので、先ずは弊社までご相談ください。
Webサイト側での対処は不要
( Webサイト側に原因がない場合 )
次のケースでは、Webサイト側が原因という可能性は低いです。
- 特定の環境(場所)・特定の端末のみで408エラーが発生する
- 発生したのは1回限りで、リロードしても408エラーが発生しない
Webサイト側での対処が必要
( Webサイト側に原因がある場合 )
以下のケースはWebサイト側(サーバー含む)が原因の場合がございます。
- Webサイトに何等かの変更を加えたところ、408エラーが発生する様になった
- 異なるの環境(場所)で408エラーが発生する
- 頻繁に408エラーが発生する
Webサイト側に原因がある場合の原因切り分け
Webサイト側にエラー原因があると疑われる場合、次の問題切り分けを行います。
- Webサイト側に原因がある可能性
-
-
- 複数ページで408エラーが発生している
-
- 一定時間経過したら解消した
- 一時的な負荷が原因
- 一定時間経過しても解消しない
- 障害又は能力不足が原因
-
- 特定ページで408エラーが発生している
- そのページが原因
-
一時的な負荷が原因の場合の対処
アクセス集中でサーバーの負荷が増大すると、新しいリクエストに対してサーバー側では処理待ちの状態になる為、結果的にタイムアウトを発生させてしまい408エラーとなる場合があります。但し408エラーが発生している段階では、それでもリクエストを受け付けている状態で、貯まった処理が完了すれば、通常の状態に戻るので問題はありません。これがサーバーのスペックに耐え切れない程の膨大なアクセスや、Ddos攻撃がある場合はリクエストが処理しきれなくなり、WWWサーバーが強制終了したり、サーバー自体が停止してしまい502エラー(502 Bad Gateway)へと発展します。
もし、この状態が一時的に発生しただけなら、それほど気にする必要はありません。これが、頻繁に発生する(日に何回も発生と解消を繰り返す・毎日特定の時間帯に発生する)場合は
- 追加又は更新したWebサイトのコンテンツに問題がある
- サーバーのスペックが足りていない
- Ddos攻撃に狙われている
という可能性がありますので、弊社へご相談ください。
障害又は能力不足が原因の場合の対処
Webサイトにコンテンツを追加又は更新した後に408エラーが頻発する様になった
その追加した(更新した)コンテンツに問題がある可能性が高いです。そのコンテンツ自体に不具合が無いか調査する必要があります。弊社までご相談※ください。
WordPressをご利用のお客様
特にWordPressサイトの場合、プラグインをお客様サイドでインストールして有効にした直後に発生するという事があります。その場合は、そのプラグインを一旦無効にして、弊社までご相談※ください。
※弊社で制作したウェブサイトの場合。他社で制作したものは、その制作会社にご相談ください。
Webサイト内で変更は無く、ある日突然408エラーが頻発する様になった
Webサイト自体には何の変更も無いのに、ある突然408エラーが頻発する様になった場合は、サーバー側に何等かの障害が発生している場合がございます。この場合は、VPS、クラウド、専用サーバーをご利用の場合は、その管理者にご相談ください。弊社に保守契約をしている場合は、弊社までご相談ください。
Xサーバー等の共用サーバーをご利用の場合は、そのサーバーの障害情報などをご確認ください。もし障害発表は無くそれでも408エラーが頻発している場合は、そのサーバーのサポートへご相談ください。
Xサーバーの障害情報
WordPressをご利用のお客様
Webサイト内で変更が無くても、WordPressのプラグインを自動更新にしている場合は、その自動更新されたプラグインが原因という場合もございます。この場合は、そのプラグインを無効にするか、プラグインを更新前の状態に戻す必要があります。先ずは弊社までご相談ください。
そのページが原因の場合の対処
特定のページを更新したり、新たに追加した際に408エラーが発生する場合は、そのページに問題がある可能性が高いです。
もし、他のページでは問題が無いのに、そのページだけ408エラーが発生してしまう場合は、そのページで使用しているJavaScriptや画像、PHPでの処理内容を見直す必要があります。