【WEB高速化】外部ファイル呼び出し時の二重リクエストを見直す

WEBページの表示速度を早くしたいという事で、効果がある対策があったのでメモ。

外部ファイルの呼び出し処理で、HTTPによるリクエスト再度行われていないか確認する。

例えば、PHPの関数file_get_contents()などで、外部ファイルを読み込む際に、http://~と自分自身のURLを絶対バスで記述して呼び出していないか確認する。

自分自身のURLの外部ファイルを絶対パスで読み込むと、外部ファイルを呼び出す為に、再びHTTPリクエストをかけることになり、この二重リクエストがムダなWebアクセスとなる。

【本来の処理の流れ】

  • ①WebブラウザがリクエストをWebサーバーへ送る
  • ②Webサーバーがリクエストを解析して処理する
  • ③WebサーバーがレスポンスをWebブラウザへ返信する
  • ④Webブラウザが受信データを解析して表示する

【二重リクエストでの処理の流れ】

  • ①WebブラウザがリクエストをWebサーバーへ送る
  • ②Webサーバーがリクエストを解析して処理する
  • 処理の中のHTTPリクエストを発行する
  • 再びWebサーバーへアクセスする
  • ⑤WebサーバーがレスポンスをWebブラウザへ返信する
  • ⑥Webブラウザが受信データを解析して表示する

この二重リクエストのムダを見直す事により処理速度を改善する。

【改善方法】

■改善前

file_get_contents('http://www.ore-memo.com/inc/menu.html');

■改善後

file_get_contents($_SERVER['DOCUMENT_ROOT'].'/inc/menu.html');

自分自身のURLを指定してfile_get_contentsを呼び出している箇所を$_SERVER['DOCUMENT_ROOT']getenv(‘DOCUMENT_ROOT’)に記述を変える事により、サーバ内部で処理を完結させることができる。

このように二重リクエストを解消してあげるだけで、WEBページの表示速度を早くする事ができます。

あと、$_SERVER['DOCUMENT_ROOT']getenv(‘DOCUMENT_ROOT’)
のどちらを利用するかという事になります。

PHPをUNIXのコマンドとして使うような場合は、新たにパスを取得する必要があるので関数getenv()を利用することに限定されますが、一般的なブラウザ経由(apache経由)ならすでに環境変数として習得されている$_SERVER[]を利用する方が早いという結論になりました。

一般的なWEBサーバなら$_SERVER['DOCUMENT_ROOT']が早い!