-1

ドキュメント「キャッシュの最適化-Webの高速化-GoogleDevelopers」で、Googleは次のように述べています。

すべてのキャッシュ可能なリソースに対して、 ExpiresまたはCache-Control max-ageの1つ、およびLast-ModifiedまたはETagの1つを指定することが重要です。ExpiresとCache-Control:max-ageの両方を指定するか、Last-ModifiedとETagの両方を指定するのは冗長です。

Microsoft.WindowsAzure.StorageClientのクラスを使用して、画像をBLOBコンテナーにアップロードしています。これは、オープンソースプロジェクトのAzureStorageExplorerで見られるものと実質的に同じコードです。

結果の画像は、Last-ModifiedとETagの両方で提供されます。

ETag: 0x8CFED5D3384112F
Last-Modified: Tue, 12 Mar 2013 17:21:43 GMT

したがって、次のブラウザリクエストはHTTPヘッダーを送信します。

If-Modified-Since: Tue, 12 Mar 2013 17:21:43 GMT
If-None-Match: 0x8CFED5D3384112F

この冗長性を排除するために、Azure Storageに2つのディレクティブの1つのみを使用させるにはどうすればよいですか?

4

2 に答える 2

0

短い答えは、あなたができないということです。

これについて考えるときは、ブロブ ストレージにアクセスするときは、Web サーバー上のファイルにアクセスするのではなく、たまたまファイルを返す残りの API を使用していることを覚えておくことが重要です。

Microsoft は、ストレージ API に不可欠であると考えるヘッダーを削除する方法を提供していません。

過剰なヘッダーが心配な場合、応答には、ブラウザーではない API のクライアントを対象としたいくつかの x-ms-... ヘッダーも含まれます。

于 2013-03-15T04:58:36.460 に答える
0

これはRFC 2616で実際に推奨されているため、個人的には両方のタグが送り返されることについてそれほど心配する必要はありません。

13.3.4 エンティティ タグと最終更新日をいつ使用するかに関する規則
...
HTTP/1.1 オリジン サーバー:
...
... HTTP/1.1 オリジン サーバーの好ましい動作は、強力なエンティティタグと最終更新日の両方を送信することです。最終変更値。

HTTP 1.1 クライアントは、キャッシュ条件付きリクエストでエンティティ タグを使用する必要があり、エンティティ タグLast-Modified の両方が存在する場合は、両方を使用する必要があります。

両方のタグが Azure Storage サーバーから送り返される理由が明確になることを願っています。

于 2013-03-14T20:44:03.887 に答える