2017-02-10 10 views
0

元のウェブサイトでは、HTML、CSS、または画像をキャッシュする必要はありません。ウェブサイト上の別のページをリクエストしている間に、ただ1つの画像用のGoogle Chromeの結果が下に表示されます。これは、ブラウザがキャッシュされるべきだと思う理由を理解しようとしているが、ブラウザがサーバから再要求されていることを理解しようとするウェブサイトのブラウジングの一部です。私はこの画像に特別に関連していない全てのharを削除しました。同じイメージの2番目と3番目の要求がキャッシュされないのはなぜですか?

キャッシュキラーやキャッシュ不能化機能がありません。私はさらに、キャッシュを混乱させる可能性のある開発ツールがインストールされていないことを確認するために比較的清潔なコンピュータに行った。

最初のリクエストのすべてのリクエスト/レスポンスヘッダーは、2番目と3番目のリクエストが再リクエストを行うべきではなく、ブラウザのローカルキャッシュから来ることを暗示しています。

私には何が欠けていますか?

{ 
    "startedDateTime": "2017-02-10T21:21:44.273Z", 
    "time": 56.46199999999624, 
    "request": { 
     "method": "GET", 
     "url": "http://616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com/images/default-source/site-cdn/LoginLogo.png", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Accept", 
      "value": "image/webp,image/*,*/*;q=0.8" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Encoding", 
      "value": "gzip, deflate, sdch" 
     }, 
     { 
      "name": "Referer", 
      "value": "http://authentrip.com/" 
     }, 
     { 
      "name": "Host", 
      "value": "616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com" 
     }, 
     { 
      "name": "Accept-Language", 
      "value": "en-US,en;q=0.8" 
     }, 
     { 
      "name": "User-Agent", 
      "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 
     } 
     ], 
     "queryString": [], 
     "cookies": [], 
     "headersSize": 428, 
     "bodySize": 0 
    }, 
    "response": { 
     "status": 200, 
     "statusText": "OK", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Date", 
      "value": "Fri, 10 Feb 2017 21:21:44 GMT" 
     }, 
     { 
      "name": "Origin", 
      "value": "https://mycloud.rackspace.com" 
     }, 
     { 
      "name": "Last-Modified", 
      "value": "Fri, 09 Dec 2016 05:10:48 GMT" 
     }, 
     { 
      "name": "ETag", 
      "value": "ab904584a8e355da2fd0437065839e10" 
     }, 
     { 
      "name": "Content-Type", 
      "value": "image/png" 
     }, 
     { 
      "name": "X-Timestamp", 
      "value": "1481260247.52133" 
     }, 
     { 
      "name": "Cache-Control", 
      "value": "public, max-age=349" 
     }, 
     { 
      "name": "Content-Length", 
      "value": "6397" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Ranges", 
      "value": "bytes" 
     }, 
     { 
      "name": "X-Trans-Id", 
      "value": "txbeec00752b6a4e1e9e3b5-00589e2ca4dfw1" 
     }, 
     { 
      "name": "Expires", 
      "value": "Fri, 10 Feb 2017 21:27:33 GMT" 
     } 
     ], 
     "cookies": [], 
     "content": { 
     "size": 6397, 
     "mimeType": "image/png", 
     "compression": 0 
     }, 
     "redirectURL": "", 
     "headersSize": 433, 
     "bodySize": 6397, 
     "_transferSize": 6830 
    }, 
    "cache": {}, 
    "timings": { 
     "blocked": 0.396999999992431, 
     "dns": -1, 
     "connect": -1, 
     "send": 0.13800000000685503, 
     "wait": 23.861999999994016, 
     "receive": 32.06500000000294, 
     "ssl": -1 
    }, 
    "serverIPAddress": "204.2.145.184", 
    "connection": "989", 
    "pageref": "page_1" 
    }, 
    { 
    "startedDateTime": "2017-02-10T21:22:48.357Z", 
    "time": 0, 
    "request": { 
     "method": "GET", 
     "url": "http://616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com/images/default-source/site-cdn/LoginLogo.png", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Accept", 
      "value": "image/webp,image/*,*/*;q=0.8" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Encoding", 
      "value": "gzip, deflate, sdch" 
     }, 
     { 
      "name": "Referer", 
      "value": "http://authentrip.com/" 
     }, 
     { 
      "name": "Host", 
      "value": "616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com" 
     }, 
     { 
      "name": "Accept-Language", 
      "value": "en-US,en;q=0.8" 
     }, 
     { 
      "name": "User-Agent", 
      "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 
     } 
     ], 
     "queryString": [], 
     "cookies": [], 
     "headersSize": 428, 
     "bodySize": 0 
    }, 
    "response": { 
     "status": 200, 
     "statusText": "OK", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Date", 
      "value": "Fri, 10 Feb 2017 21:21:44 GMT" 
     }, 
     { 
      "name": "Origin", 
      "value": "https://mycloud.rackspace.com" 
     }, 
     { 
      "name": "Last-Modified", 
      "value": "Fri, 09 Dec 2016 05:10:48 GMT" 
     }, 
     { 
      "name": "ETag", 
      "value": "ab904584a8e355da2fd0437065839e10" 
     }, 
     { 
      "name": "Content-Type", 
      "value": "image/png" 
     }, 
     { 
      "name": "X-Timestamp", 
      "value": "1481260247.52133" 
     }, 
     { 
      "name": "Cache-Control", 
      "value": "public, max-age=349" 
     }, 
     { 
      "name": "Content-Length", 
      "value": "6397" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Ranges", 
      "value": "bytes" 
     }, 
     { 
      "name": "X-Trans-Id", 
      "value": "txbeec00752b6a4e1e9e3b5-00589e2ca4dfw1" 
     }, 
     { 
      "name": "Expires", 
      "value": "Fri, 10 Feb 2017 21:27:33 GMT" 
     } 
     ], 
     "cookies": [], 
     "content": { 
     "size": 6397, 
     "mimeType": "image/png" 
     }, 
     "redirectURL": "", 
     "headersSize": 433, 
     "bodySize": 0, 
     "_transferSize": 0 
    }, 
    "cache": {}, 
    "timings": { 
     "blocked": -1, 
     "dns": -1, 
     "connect": -1, 
     "send": 0, 
     "wait": 0, 
     "receive": 0, 
     "ssl": -1 
    }, 
    "serverIPAddress": "204.2.145.184", 
    "connection": "989", 
    "pageref": "page_2" 
    } 
    { 
    "startedDateTime": "2017-02-10T21:23:38.412Z", 
    "time": 0, 
    "request": { 
     "method": "GET", 
     "url": "http://616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com/images/default-source/site-cdn/LoginLogo.png", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Accept", 
      "value": "image/webp,image/*,*/*;q=0.8" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Encoding", 
      "value": "gzip, deflate, sdch" 
     }, 
     { 
      "name": "Referer", 
      "value": "http://authentrip.com/" 
     }, 
     { 
      "name": "Host", 
      "value": "616206ee2c1b2155fd11-21abbde6fa52e03b7fd037b3488bb991.r53.cf1.rackcdn.com" 
     }, 
     { 
      "name": "Accept-Language", 
      "value": "en-US,en;q=0.8" 
     }, 
     { 
      "name": "User-Agent", 
      "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 
     } 
     ], 
     "queryString": [], 
     "cookies": [], 
     "headersSize": 428, 
     "bodySize": 0 
    }, 
    "response": { 
     "status": 200, 
     "statusText": "OK", 
     "httpVersion": "HTTP/1.1", 
     "headers": [ 
     { 
      "name": "Date", 
      "value": "Fri, 10 Feb 2017 21:21:44 GMT" 
     }, 
     { 
      "name": "Origin", 
      "value": "https://mycloud.rackspace.com" 
     }, 
     { 
      "name": "Last-Modified", 
      "value": "Fri, 09 Dec 2016 05:10:48 GMT" 
     }, 
     { 
      "name": "ETag", 
      "value": "ab904584a8e355da2fd0437065839e10" 
     }, 
     { 
      "name": "Content-Type", 
      "value": "image/png" 
     }, 
     { 
      "name": "X-Timestamp", 
      "value": "1481260247.52133" 
     }, 
     { 
      "name": "Cache-Control", 
      "value": "public, max-age=349" 
     }, 
     { 
      "name": "Content-Length", 
      "value": "6397" 
     }, 
     { 
      "name": "Connection", 
      "value": "keep-alive" 
     }, 
     { 
      "name": "Accept-Ranges", 
      "value": "bytes" 
     }, 
     { 
      "name": "X-Trans-Id", 
      "value": "txbeec00752b6a4e1e9e3b5-00589e2ca4dfw1" 
     }, 
     { 
      "name": "Expires", 
      "value": "Fri, 10 Feb 2017 21:27:33 GMT" 
     } 
     ], 
     "cookies": [], 
     "content": { 
     "size": 6397, 
     "mimeType": "image/png" 
     }, 
     "redirectURL": "", 
     "headersSize": 433, 
     "bodySize": 0, 
     "_transferSize": 0 
    }, 
    "cache": {}, 
    "timings": { 
     "blocked": -1, 
     "dns": -1, 
     "connect": -1, 
     "send": 0, 
     "wait": 0, 
     "receive": 0, 
     "ssl": -1 
    }, 
    "serverIPAddress": "204.2.145.184", 
    "connection": "989", 
    "pageref": "page_3" 
    } 

答えて

1

実際、Chromeはキャッシュからの2番目と3番目のリクエストに対する応答を処理しています。 entry.response.bodySizeのプロパティを参照する必要があります。 HAR specificationから

関連抜粋:

bodySize [番号] - バイト単位で受信した応答体のサイズ。キャッシュから応答が来た場合にはゼロに設定する(304)。情報が利用できない場合は-1に設定します。

興味深いことに、HAR Viewer GitHub issueもあります。以下の機能を使用して、リクエストに対する応答がキャッシュから提供されたかどうかを判断します。

HarModel.isCachedEntry = function(entry) { 
    var response = entry.response; 
    var resBodySize = response.bodySize > 0 ? response.bodySize : 0; 
    return (response.status == 304 || (resBodySize === 0 && response.content && response.content.size > 0)); 
}; 
+0

ありがとうございます。それはキャッシュから提供されるはずだったが、私はちょうどそれが起こっていた方法を '見る'ことができませんでした。答えが得意です – DFBerry

関連する問題