ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善

ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善
<br />このシリーズの最初のセクションでは、Web サイトのパフォーマンスを向上させるための Web サイトの「コンテンツ」に関連する 10 の原則について説明しました。ウェブサイトのコンテンツを改善することに加えて、ウェブサイトのサーバー側でも注意と改善が必要な領域があります。
    コンテンツ配信ネットワークを使用して、Gzip 圧縮ファイルの Expires または Cache-Control ヘッダーを指定します。コンテンツの ETag を構成します。出力バッファを早期にフラッシュします。GET を使用して AJAX リクエストを完了します。

11. コンテンツ配信ネットワークを使用する<br />ユーザーと Web サイト サーバーの距離が応答時間に影響します。ウェブサイトのコンテンツを地理的に異なる場所にある複数のサーバーに分散すると、ダウンロード時間が短縮されます。しかし、まず何をすべきでしょうか?
コンテンツを見つけるための最初のステップは、配信サーバー上で適切に動作するようにサイトを再構築することではありません。アプリケーションのニーズに応じて Web サイトの構造を変更します。これには、サーバー間のセッション状態の同期やデータベース更新のマージなどの複雑なタスクが含まれる場合があります。ユーザーとコンテンツ サーバー間の距離を短縮するために、これらのアーキテクチャ上の手順は避けられない場合があります。
エンドユーザーの応答時間の 80% ~ 90% は、画像、スタイルシート、スクリプト、Flash などのページ コンテンツのダウンロードに費やされることに注意してください。これらは、Web サイトのパフォーマンスに関する黄金律です。アプリケーション アーキテクチャを再設計するという困難な作業に着手するよりも、まず静的コンテンツを配布する方がよい場合がよくあります。これにより、応答時間が改善されるだけでなく、コンテンツ配信ネットワークへの実装もはるかに簡単になります。
コンテンツ配信ネットワーク (CDN) は、さまざまな地理的な場所に分散された一連の Web サーバーで構成されており、Web サイトのコンテンツの送信速度を向上させます。ユーザーにコンテンツを配信するために使用されるサーバーは、主にネットワーク上のユーザーとの距離に基づいて指定されます。たとえば、ネットワーク ホップが最も少なく、応答時間が最も速いサーバーが選択されます。ウェブページ制作チュートリアルチャンネルのコンテンツを見るには、ここをクリックしてください。大手インターネット企業の中には独自の CDN を持っているところもありますが、Akamai Technologies、Mirror Image Internet、Limelight Networks などの CDN サービスを使用するにはコストが非常に高くなります。立ち上げたばかりの企業や個人のウェブサイトでは、CDN を使用するコスト予算がないかもしれませんが、対象ユーザーベースが拡大し、グローバル化が進むにつれて、高速レスポンスを実現するために CDN が必要になります。たとえば、Yahoo は、Web サイト プログラムの静的コンテンツを CDN に転送することで、エンド ユーザーの応答時間を 20% 以上短縮しました。 CDN を使用すると、コードを変更して Web サイトのアクセス速度を大幅に向上できる比較的簡単な方法です。
12. ファイルヘッダーにExpiresまたはCache-Controlを指定する
このルールには2つの側面があります: 静的コンテンツの場合:
ファイル ヘッダーの有効期限の値を「無期限」に設定します。動的コンテンツの場合:
適切な Cache-Control ファイル ヘッダーを使用して、ブラウザーが条件付きリクエストを行えるようにします。Web ページのコンテンツ デザインはますますリッチになってきており、ページにはより多くのスクリプト、スタイル シート、画像、Flash を含める必要があります。初めてページにアクセスするユーザーは複数の HTTP リクエストを送信しますが、Expires ヘッダーを使用することでコンテンツをキャッシュ可能にすることができます。後続のページ訪問時に不要な HTTP リクエストを回避します。 Expires ヘッダーは画像ファイルによく使用されますが、スクリプト、スタイルシート、Flash を含むすべてのコンテンツに使用する必要があります。
ブラウザ (およびプロキシ) はキャッシュを使用して HTTP リクエストのサイズと数を削減し、ページ アクセスを高速化します。 Web サーバーは、HTTP 応答の Expires ヘッダーを使用して、コンテンツをキャッシュする期間をクライアントに通知します。次の例は、応答が 2010 年 4 月 15 日まで期限切れにならないことをブラウザに伝える、より長い Expires ヘッダーを示しています。
有効期限: 2010 年 4 月 15 日 (木) 20:00:00 GMT
Apache サーバーを使用している場合は、ExpiresDefault を使用して、現在の日付を基準とした有効期限を設定できます。次の例では、ExpiresDefault を使用して、リクエスト時刻から 10 年後に有効期限が切れるファイル ヘッダーを設定します。
有効期限デフォルトは「アクセスプラス10年」
Expires ヘッダーを使用する場合は、ページ コンテンツが変更されたときにコンテンツ ファイル名を変更する必要があることに留意することが重要です。 Yahoo! では、yahoo_2.0.6.js のように、コンテンツ ファイル名にバージョン番号を追加するという手順をよく使用します。
Expires ヘッダーの使用は、ユーザーが Web サイトにアクセスした後にのみ有効になります。ブラウザのキャッシュが空であるため、ユーザーが初めてサイトにアクセスしたときに HTTP リクエストの数を減らす効果はありません。したがって、これによってサイトのパフォーマンスがどの程度向上するかは、「事前キャッシュ」(ページ上のすべてのコンテンツがすでに含まれている)が存在している間にページがアクセスされる頻度によって決まります。 Yahoo! では測定方法を確立しており、全ページビューの 75 ~ 85% が「事前キャッシュ」されていることがわかりました。 Expires ヘッダーを使用すると、ブラウザにキャッシュされ、ユーザーがリクエストの 1 バイトも送信しなくても、ユーザーの次のリクエストで再び使用できるコンテンツの量が増えます。
前のページ1 2 3 次のページ 続きを読む

<<:  フロートをクリアするための CSS メソッドの概要

>>:  ウェブデザインにおける円形要素の使用例 25 選

推薦する

MySQLデータベースに他のIPアドレスからアクセスできない問題の解決策

序文先ほどのプロジェクトを参考にすると、環境は整いました。プロジェクトの準備と検証の段階で、問題が発...

Reactでのイベントバインディングの実装は3つの方法を指しています

1. 矢印関数1. 矢印関数自体はこれをバインドしないという事実を利用します。 2. render(...

mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル

zip インストール パッケージをダウンロードします。 MySQL8.0 For Windows z...

Dockerイメージのサイズを縮小する6つの方法

2017 年に Vulhub に取り組み始めてから、私は厄介な問題に悩まされてきました。Docker...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

explainコマンドがMySQLデータを変更する理由

クエリで EXPLAIN を実行するとデータベースが変更されるかどうかを尋ねられた場合、おそらく「い...

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

サーバー上で selenium+chromedriver を実行するための詳細なチュートリアル

1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...

Linux Dig コマンドの使用法

発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、M...

nginx のロケーションで URI の傍受を実装する方法

例:場所のルートとエイリアスルートディレクティブは、ルートによって設定されたディレクトリに検索ルート...

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...

DockerにrockerChatをインストールし、チャットルームを設定するための詳細な手順

包括的なドキュメントgithubアドレスhttps://github.com/RocketChat/...

適応幅(パーセンテージ)に応じて Div の高さを調整する純粋な CSS

今日のレスポンシブ レイアウトの要件では、サイズを自動的に調整できる多くの要素で高さと幅の適応を実現...

Dockerコンテナ内でホストDocker操作を呼び出して実行する

まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...