6

シンプルな aspx ページがあります。これがそのトップです:-

<%@ Page 
    Language="C#" 
    AutoEventWireup="true" 
    CodeFile="Foo.aspx.cs" 
    Inherits="Foo" %>
<%@ OutputCache Duration="3600" VaryByParam="none" Location="Any" %>

これで、FireFox でページにアクセスするたびに (F5 を押すか、URL バーで Enter キーを押す)、200 OK 応答が返ってきます。FireBug からの返信の例を次に示します:-

リクエストヘッダー:-

GET /sitemap.xml HTTP/1.1
Host: localhost.foo.com.au
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) 
            Gecko/20100115 Firefox/3.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-au,en-gb;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: <snipped>
If-Modified-Since: Tue, 01 Jun 2010 07:35:17 GMT
If-None-Match: ""
Cache-Control: max-age=0

応答ヘッダー:-

HTTP/1.1 200 OK
Cache-Control: public
Content-Type: text/xml; charset=utf-8
Expires: Tue, 01 Jun 2010 08:35:17 GMT
Last-Modified: Tue, 01 Jun 2010 07:35:17 GMT
Etag: ""
Server: Microsoft-IIS/7.5
X-Powered-By: UrlRewriter.NET 2.0.0
X-AspNet-Version: 4.0.30319
Date: Tue, 01 Jun 2010 07:35:20 GMT
Content-Length: 775

Firebug キャッシュタブ:-

Last Modified   Tue Jun 01 2010 17:35:20 GMT+1000 (AUS Eastern Standard Time)
Last Fetched    Tue Jun 01 2010 17:35:20 GMT+1000 (AUS Eastern Standard Time)
Expires Tue Jun 01 2010 18:35:17 GMT+1000 (AUS Eastern Standard Time)
Data Size   775
Fetch Count 105
Device  disk

ここで、Request Builder を使用して Fiddler で試してみると (余分なデータはありません)、同じ 200 OK 応答が引き続き返されます。

リクエストヘッダー:-

GET http://localhost.foo.com.au/sitemap.xml HTTP/1.1
User-Agent: Fiddler
Host: foo.com.au

応答ヘッダー:-

HTTP/1.1 200 OK
Cache-Control: public
Content-Type: text/xml; charset=utf-8
Expires: Tue, 01 Jun 2010 07:58:00 GMT
Last-Modified: Tue, 01 Jun 2010 06:58:00 GMT
ETag: ""
Server: Microsoft-IIS/7.5
X-Powered-By: UrlRewriter.NET 2.0.0
X-AspNet-Version: 4.0.30319
Date: Tue, 01 Jun 2010 06:59:16 GMT
Content-Length: 775

キャッシュするように求めているように見えますが、そうではありません:(

サーバーは、Win7 のローカルホスト IIS7.5 です。(応答データに記載されているとおり)。

誰かが私が間違っていることを見ることができますか?

4

2 に答える 2

2

取得するには、VaryByParam=""代わりに設定する必要があると思います(ユーザーがURLバーのEnterキーを使用する場合は変更されません)。"none"expected 304

使用"" Vary HttpHeaderは、リクエストヘッダーの一部としてサーバーに送信されません。

使用"None" Vary HttpHeader 、リクエストヘッダーの一部としてサーバーに送信されます。

于 2012-03-19T09:58:31.683 に答える
0

これが localhost 呼び出しの動作ではないことを確認するために、別のマシンから Web サイトを実行してみてください。

于 2010-06-01T08:14:53.547 に答える