0

php と .htaccess を使用して動的に htm ファイルを生成します。text/html タイプのファイルの Etags を削除する必要があることをどこかで読みましたか? あれは正しいですか?etags を使用するかどうか疑問に思っています。コンテンツを変更しなければ、帯域幅を節約できます。htm ファイルに etag を使用できるかどうか教えていただければ幸いです。

4

3 に答える 3

0

可能であれば Etag を削除する

最適なキャッシュ方法は max-age です。W3C では、利用可能な場合、ブラウザーは max-age を使用する必要があります。

max-age を使用すると、ブラウザーはキャッシュされたバージョンを使用し、サーバーにクエリを送信することさえしません。

これは、Web ページのリソース (CSS、JS、IMG、リンクなど) を置き換える場合、リソースの名前を変更する必要があることも意味します。

次に最適なキャッシュ方法は Expires です。
を持つすべての PHP ページで、常にヘッダーechoを含めることは悪い考えではありません。max-age

header('Cache-Control: max-age=31536000');

これらも賢明です(コンテンツタイプの例はHTMLのみです)

header('Content-Type: text/html; charset=utf-8');
header('Connection: Keep-Alive');
header('Keep-Alive: timeout=50, max=100');

eTag には有効期限がありません。リソースは毎回チェックする必要があります。

max-age または Expires を使用している場合、ブラウザはリソースをチェックする HTTP リクエストを作成しません。

max-age およびまたは expires に含めると、ヒアラー スペースが無駄になり、eTag 値を生成または検索するために数回のサーバー CPU サイクルが無駄になります。

eTag の問題は、リソースが非常に大きくない限り、ほとんどメリットがないことです。HTTP リクエストでは、データの送信に必要な時間は、多くの場合、接続時間と待機時間に比べて最小限です。

eTag を使用すると、ブラウザは引き続き HTTP リクエストを実行する必要があります。eTag が変更されていない場合、応答は 304 です。


典型的な HTTP リクエストは次のとおりです。

ダウンロードにわずか 3 ミリ秒 2.9KB
454 ミリ秒の要求時間。+ 58 ミリ秒の DNS (非常に高速)

ここに画像の説明を入力

DNS Lookup: 58 ms
Initial Connection: 192 ms
Time to First Byte: 262 ms
Content Download: 3 ms
Bytes In (downloaded): 2.9 KB

eTag は 3 ミリ秒を節約します。

リソースがキャッシュされた場合、400 ~ 500 ミリ秒を節約するだけでなく、別のリソースの接続を解放します。


Intel
441 ミリ秒からの 301 応答は次のとおりです。

ここに画像の説明を入力

DNS Lookup: 103 ms
Initial Connection: 219 ms
Time to First Byte: 222 ms
Content Download: ms
Bytes In (downloaded): 0.1 KB
于 2015-04-13T03:19:23.337 に答える
0

Etag は、動的なコンテンツ (php スクリプトなど) であっても、Web サイトの高速化に役立ちます。特にモバイル接続では、接続速度が遅くなるため、これは重要です。次のような一部のモバイル Web サイトで ETag ヘッダーを使用します。

https://gist.github.com/oliworx/4951478

ヒント: 現在の時刻やその他の頻繁に変化するコンテンツをページに含めてはなりません。これにより、クライアント (ブラウザー) によってキャッシュされるのを防ぐことができます。

于 2013-02-15T10:41:48.317 に答える
0

私の知る限り、Etag は http ヘッダーであり、キャッシュ システムで使用される HTTP サーバーによって生成されます。

アイデア:

  • 画像 logo.png を stackoverflow.com に依頼します
  • stackoverflow.com は HTTP 304 (コンテンツは変更されていません、etag: XXXXXX) で応答します。
  • 画像を再度要求する前に、ブラウザーはキャッシュをチェックして、logo.png というリソースのキャッシュをチェックします。このリソースは、web サイトから: stackoverflow で、etag: XXXXXXX が付いています。
  • ブラウザがそれを見つけると、ダウンロードせずにキャッシュから画像を読み込みます
  • 見つからない場合は、Web サーバーに再度ダウンロードを要求します。

だから...何のためにETagsを使用したいですか?

ETag について詳しく知りたい場合は、Firefox 用の HttpFox をダウンロードしてください。

Apacheには独自のキャッシュシステムがあり、htmlファイルや画像などの「静的」ダウンロードをダウンロードまたは要求するときに使用されます。

動的コンテキストで実行したい場合は、自分で実装する必要があります。

于 2010-04-23T02:16:00.760 に答える