キャッシング - ウェブキャッシュサーバーの[予約]の深さ方向分析
私は私のSidongfeidongありがとうございますschyman、著者ののいくつかの概念をクリアするため、schymanターンcublog記事を向ける。[スタート]ボタンを復刻。
gbvy[W
有効期限は、Cache - Controlの、Last - Modifiedのは、ETagは、RFC 2616(HTTP/1.1)のプロトコルであり、Webキャッシュに関連するいくつかの分野で。。。ここではApache2.0のサーバーには、例えば、唯一のHTTP/1.1プロトコルを議論する。
Expires
Expiresフィールドは、ブラウザのキャッシュのWebページまたはURLアドレスは、この時間は一度では、もはや時間が宣言され、ブラウザは元のサーバーをご連絡ください。"として意味の透明性を減らすことが障害発生時間から推定される、注意して使用する必要があり、私たちは、障害の正確な時間を次のように提供するためにオリジンサーバを奨励:RFCが教えてくれる。”
このようなhtmlは、gif形式は、のjpg、CSSのは、jsのは、Apacheサーバのデフォルトのインストールでは、応答ヘッダーにフィールドを追加しない限り平均pure静的なページについては、。適切な時間の障害を推測するファイルブラウザの種類と"Last - Modifiedの"フィールドに応じて、クライアントに格納されている、Expiresフィールドを検出されない場合、Firefoxブラウザには、適切な受信。時間は一般に応答時間の後約3日間を受けていると推測。
expires_module ApacheのHTTP応答のモジュールは自動的にExpiresヘッダフィールドを追加することができます。Apacheのhttpd.confの設定ファイルで次のように:
#モジュールがexpires_module有効にする
LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresByType image/gif A
#HTMLドキュメントが最後に変更された時間後一週間有効です。
ExpiresByType text/html M604800
#以下の意味に似ている
ExpiresByType text/css “now plus 2 month”
ExpiresByType text/js “now plus 2 day”
ExpiresByType image/jpeg “access plus 2 month”
ExpiresByType image/bmp “access plus 2 month”
ExpiresByType image/x-icon “access plus 2 month”
ExpiresByType image/png “access plus 2 month”
ヘッダーなどの有効期限と内部のページを強制的に関数を動的なページについては、そうでない場合を介して("有効期限:"。Gmdate(の"D、dはMYH:私:秒")の"GMT")は、Apacheサーバーは水、ブラウザに戻り値として1984年1月11日5時00分00秒gmtのExpiresフィールドの内容。。。
。ステートメントキャッシュは、Webページの日付01 8時00分00秒の有効性、ブラウザがキャッシュのLast - ModifiedとETagフィールドにファイルを送信する場合でも。サーバー側の検証は、戻り値304ステータスを渡された場合、ブラウザはこのキャッシュを使用します。。
Cache-Control
Cache - Controlのフィールドは、-再検証する必要があります、max - ageの= 0などのno - cacheのような多くの要素を宣言することができます。これらの要素は、永続的に格納されているページがキャッシュされる方法と、別のメディアに変換する方法メディアを、キャッシュされている最大時間を指定するために使用される。。
認証および暗号化。
mod_cern_metaモジュールは、Apache HTTPレスポンスヘッダファイルレベルの制御することができますが、それはまたのCache - Controlにヘッダーを設定することができます(または任意の他のヘッド)。レスポンスヘッダファイルは指定されたファイルが元のファイル名によると、元のサブディレクトリに配置されて。。一つのCache - Control:max - ageは有効期限が。。あなたは、mod_cern_metaモジュール起動し、max - ageの値を設定すると、Apacheのは、Expiresフィールドをカバーする。同時に、max - ageはカンシュ制御を意味します:公開。ので、ブラウザは、Cache - Controlが受信する:max - ageはとExpires値が一致している。
有効期限のCache - Controlの場合:最大- AGの= 0は、対応するセットにブラウザのキャッシュが8時00分○○秒期限、負の値です。
Last-Modified
。。この情報に基づいてサーバーが存在は、HTTP 304(NotModify)を返すようにされていない場合、情報を更新するかどうかを決定するために、、戻りHTTP 200のページの内容を更新する更新プログラムがある場合、およびもたらす新しい"ETagを"と"LastModifiedのを"。
しかし、ブラウザにファイルを送るのを避けるには、このメカニズムを使用してもHTTPリクエストを生成します。。
純粋な静的なページ自体は通常、Last - Modifiedの情報が含まれます、Apacheサーバは、Last - Modifiedの情報にページファイルを読み取り、HTTPレスポンスヘッダに追加。
。
それが巧みでhttpレスポンスヘッダのLast - Modifiedフィールドによれば、ではなく、ページのLast - Modifiedのキャッシュサーバーの応答時間を設定して受信によると、純粋な静的ページまたは動的なページは、Firefoxブラウザをされるかどうか。
ETag
。したがって、エンティティタグを使用してHTTP/1.1のヘッダーがより厳格な検証を提供しています。
応答ヘッダフィールドをETagの静的および動的ファイルのデフォルトで、すべてのApacheサーバは、追加する。。
文書は、ETagを(エンティティタグ)ファイルの属性の応答ヘッダを作成するために使用するファイルに基づいている場合に設定命令をFileETag。。。
複数のサーバー環境間でのロードバランシングは、同じファイルを再たびにブラウザをダウンロードして別のETagを、またはファイルの変更日が。セット'FileETagなし'はもはや応答ヘッダフィールドのETagを含めることができます。
3つの典型的なWebサーバがコンテンツの有効期限方法ヘッダーを設定する
時間に敏感な情報とIIS Webサイト場合は、プロキシサーバーまたはWebブラウザのキャッシュを有効期限が切れていないされている情報を確実にするために設定を行うことができます。自動的に、いつでも有効期限が切れるように、サイトを構成することができます。ときに有効にするコンテンツの有効期限は、キャッシュされたページを表示したり、サーバーから更新されたページを要求を決定する現在の日付と期限を比較するWebブラウザ。コンテンツを動的に変更するために使用できるMicrosoft ASP.NETサーバーサイドの技術が提供される。。
ローカルコンピュータ、またはAdministratorsグループのメンバである必要がありますで、次の手順を実行するための適切な権限が委任されている。
。
設定内容の有効期限
1。右、コンテンツの有効期限のWebサイト、仮想ディレクトリ、またはファイルを設定するにはここをクリックし、"プロパティ"をクリックし、IISマネージャで、ローカルコンピュータを展開し、。
2。 "HTTPヘッダー"タブをクリックします。
。
4。 、または"有効期限""この期間の満了後"、"即時の過去"をクリックして、対応するボックスに、希望する日付の情報を入力します。。
5。 "OK"をクリック。
第二に、Apacheサービス、コンテンツの有効期限の設定
Apacheの設定の抜粋と説明
LoadModule headers_module modules/mod_headers.so
#ロードモジュールヘッダの変更を。
LoadModule expires_module modules/mod_expires.so
。
Header append Via: CCN-BJ-4-502
。
KeepAliveTimeout 60
#設定は、ホールド時間の接続は60秒です。。
ExpiresActive On
#ヘッダー機能は、過去を有効にする。
ExpiresDefault A604800
#デフォルトの有効期限が"604800秒を参照してください"と
<Directory /data/download>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ExpiresByType text/html A300
ExpiresByType text/css A259200
#テキスト/ファイルの日付のCSSタイプは、"259,200秒を訪問"に設定されている
ExpiresByType application/x-javascript A300
#アプリケーションは、/ファイルの日付のx - javascriptのタイプは、"訪問した後、300秒"に設定されている
ExpiresByType image/gif A
#画像/ gifファイルの種類が"第二の訪問後、"期限切れに設定されている
ExpiresByType application/x-shockwave-flash A
#アプリケーション/ファイルの種類は、"第二の訪問後、"期限切れに設定されているX線衝撃波フラッシュ
</Directory>
カスタマイズ。
ExpiresByTypeテキストは/ CSSの:そのMIMEタイプは、/ cssファイルのテキストですAccessで二回目のデートの後に。
ExpiresDefault A604800:そのデフォルトのポリシー設定に応じて有効期限の他の要素の開発戦略を別々のファイルタイプに加えてなど:訪問日604800秒後に。
上記の方法は、異なる有効期限ポリシーの設定用のディレクトリを公開する、別のファイルの種類のWeb公開に応じて達成することができる。
HTTP/1.1 200 OK
Date: Tue, 27 Mar 2007 17:44:21 GMT
Server: Apache/2.0.54 (Unix)
Last-Modified: Thu, 25 Jan 2007 07:45:45 GMT
ETag: “72df3ac40”
Accept-Ranges: bytes
Content-Length: 147
Cache-Control: max-age=
Expires: Thu, 26 Apr 2007 17:44:21 GMT
Via: CCN-BJ-4-575
Keep-Alive: timeout=60, max=100
Connection: Keep-Alive
Content-Type: image/gif
Length: 147 [image/gif]
のは:日付+ max - ageは=有効期限が切れます。 max - ageは、時間の長さ、上記の設定Webサーバーの有効期限に対応している。期限ののmax - ageは有効期限に基づいて算出される、2つの別々のキャッシュの内容を決定する上で一貫しているが、厳密にシステムに匹敵するとき有効期限や有効期限、または比較の年齢(生存時間の長さがキャッシュに格納されている)およびmax - ageの値。
第三に、lighttpdの
lighttpdは、デフォルトでは有効ではない私たちがサポートして、このモジュールを使用する必要がある、モジュールの有効期限が手オープン。mod_expireの前に"#"を削除し。
# vi /usr/local/lighttpd/etc/lighttpd.conf
“mod_expire”,
*設定の有効期限指定されているURL:
expire.url = (
“/images/” => “access 3 hours”,
“/admin/” => “access 3 hours”,
“/area/” => “access 3 hours”,
“/calendar/” => “access 3 hours”,
“/common/” => “access 3 hours”,
“/front/” => “access 3 hours”,
“/inc/” => “access 3 hours”,
“/jeditor/” => “access 3 hours”,
“/js/” => “access 3 hours”,
“/script/” => “access 3 hours”,
“/theme/” => “access 3 hours”,
“/upload/” => “access 3 hours”,
“/view/” => “access 3 hours”,
“/help/” => “access 3 hours”,
“/htm/” => “access 5 minutes”
)
。