[英]Why aren't the 2nd and 3rd requests for the same image cached?
原始網站沒有按照我認為的方式緩存html,css或圖像。 下面是Google chrome har在網站上請求不同頁面時針對單個圖像的結果。 它是對網站進行較大瀏覽的一部分,目的是弄清為什么瀏覽器認為應該對其進行緩存,但從服務器重新請求該瀏覽器。 我刪除了與該圖片沒有特別關系的所有har。
我沒有任何緩存殺手或緩存禁用器。 我什至去了相對干凈的計算機,以確保沒有安裝任何可能會使高速緩存混亂的開發工具。
來自第一個請求的所有請求/響應標頭似乎暗示着第二個和第三個請求不應進行重新請求,而應來自瀏覽器本地緩存。
我想念什么?
{
"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"
}
實際上,Chrome確實響應了來自緩存的第二個和第三個請求。 您需要查看entry.response.bodySize
屬性。
HAR規范的相關摘錄:
bodySize [數字]-接收到的響應主體的大小(以字節為單位)。 如果響應來自緩存,則設置為零(304)。 如果該信息不可用,則設置為-1。
還有一個有趣的HAR Viewer GitHub問題 。 他們使用下面的函數來確定是否從緩存提供了對請求的響應:
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));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.