简体   繁体   中英

Why does chrome respect the cache-control header for some resources, but does not for others?

I have an AJAX application with the following setup:

  • Dynamic content is served by a node.js server from localhost:8000
  • Static content is served by a jetty server from localhost:8080

There are two kinds of dynamic content:

  • Truly dynamic content based on result of SQL queries
  • The result of the combo handler, which concatenates files. In effect this content never changes, so it may be considered as static too.

I do the following steps:

  1. Clear the chrome browsing cache (Settings -> Clear browsing data ... -> Empty the cache)
  2. Refresh the application
  3. Refresh the application

The static content as well as the one produced by the combo handler all have the cache-control header and the latter also has the expires header.

I expected that the first refresh will load all resources, but the second just the truly dynamic content. And even then, nothing would be returned, since no content is modified.

In reality, the browser loads more resources, then it should.

Please, find below a summary of the requests made by the browser after the first refresh (the combo urls are very long, so I truncated them for the sake of clarity):

#   Result  Protocol    Host            URL                                                                                             Body    Caching                                                         Content-Type                            Process
1   200     HTTP        localhost:8000  /                                                                                               14,348                                                                  text/html; charset=utf-8                chrome:3852         
2   200     HTTP        localhost:8000  /combo?yui/cssreset/cssreset-min.css&yui/cssfonts/cssfonts-min.css                              638     public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:49 GMT text/css; charset=utf-8                 chrome:3852         
3   200     HTTP        localhost:8080  /if/admin.min.css                                                                               22,176  public,max-age=31536000                                         text/css                                chrome:3852         
4   200     HTTP        localhost:8080  /yui/yui/yui-min.js                                                                             25,586  public,max-age=31536000                                         application/javascript                  chrome:3852         
5   200     HTTP        localhost:8080  /if/admin.min.js                                                                                37,889  public,max-age=31536000                                         application/javascript                  chrome:3852         
6   200     HTTP        localhost:8000  /combo?yui/cssgrids/cssgrids-min.css&yui/widget-base/assets/skins/sam/widget-base.css&...       6,223   public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:49 GMT text/css; charset=utf-8                 chrome:3852         
7   200     HTTP        localhost:8000  /combo?yui/oop/oop-min.js&yui/attribute-core/attribute-core-min.js&...                          97,019  public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:49 GMT application/javascript; charset=utf-8   chrome:3852         
8   200     HTTP        localhost:8000  /combo?yui/dataschema-json/dataschema-json-min.js&yui/dataschema-xml/dataschema-xml-min.js&...  46,248  public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:50 GMT application/javascript; charset=utf-8   chrome:3852         
9   200     HTTP        localhost:8000  /combo?yui-gallery/gallery-querybuilder/assets/skins/sam/gallery-querybuilder.css&...           872     public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:51 GMT text/css; charset=utf-8                 chrome:3852         
10  200     HTTP        localhost:8000  /combo?yui-gallery/gallery-formmgr/gallery-formmgr-min.js&...                                   4,627   public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:51 GMT application/javascript; charset=utf-8   chrome:3852         
11  200     HTTP        localhost:8000  /combo?yui-gallery/gallery-node-optimizations/gallery-node-optimizations-min.js&...             2,269   public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:51 GMT application/javascript; charset=utf-8   chrome:3852         
12  200     HTTP        localhost:8000  /combo?yui/substitute/substitute-min.js                                                         1,006   public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:15:51 GMT application/javascript; charset=utf-8   chrome:3852         
13  200     HTTP        localhost:8000  /api/context                                                                                    81,238                                                                  application/json; charset=utf-8         chrome:3852         
14  200     HTTP        localhost:8080  /yui/assets/skins/sam/sprite.png                                                                2,913   public,max-age=31536000                                         image/png                               chrome:3852         
15  200     HTTP        localhost:8080  /yui/node-menunav/assets/skins/sam/horizontal-menu-submenu-indicator.png                        157     public,max-age=31536000                                         image/png                               chrome:3852         

Notes:

  • Requests 1 and 13 yield truly dynamic content - 1 is a jade template rendered as html and 13 is a result of an SQL query
  • Requests 3,4,5,14 and 15 yield static content (notice the port number is 8080)
  • The rest of the requests are combo requests - dynamic de jure, but static de facto.

Now here is how this summary looks like after the second refresh:

#   Result  Protocol    Host            URL                                                                                             Body    Caching Content-Type                                                Process
1   304     HTTP        localhost:8000  /                                                                                               0                                                                           chrome:3852         
2   304     HTTP        localhost:8000  /combo?yui/cssreset/cssreset-min.css&yui/cssfonts/cssfonts-min.css                              0       public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:38:55 GMT     chrome:3852         
3   304     HTTP        localhost:8080  /if/admin.min.css                                                                               0                                                                           chrome:3852         
4   304     HTTP        localhost:8080  /yui/yui/yui-min.js                                                                             0                                                                           chrome:3852         
5   304     HTTP        localhost:8080  /if/admin.min.js                                                                                0                                                                           chrome:3852         
6   304     HTTP        localhost:8000  /combo?yui/cssgrids/cssgrids-min.css&yui/widget-base/assets/skins/sam/widget-base.css&...       0       public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:38:55 GMT     chrome:3852         
7   304     HTTP        localhost:8000  /combo?yui/oop/oop-min.js&yui/attribute-core/attribute-core-min.js&...                          0       public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:38:55 GMT     chrome:3852         
8   304     HTTP        localhost:8000  /combo?yui/dataschema-json/dataschema-json-min.js&yui/dataschema-xml/dataschema-xml-min.js&...  0       public,max-age=31536000; Expires: Fri, 16 Jan 2015 02:38:56 GMT     chrome:3852         
9   304     HTTP        localhost:8000  /api/context                                                                                    0                                                                           chrome:3852         

Notice, that the URLs of the requests 9 - 12,14 and 15 from the first summary are absent from the second summary - the browser caches them. However, why doesn't the browser also cache the requests 2 - 8 (from the first summary), which appear to have identical qualities as the cached ones?

Appendix A

Please, find below the complete headers of all the requests and responses following the first refresh (I used a new session, so the dates are different from the brief summary given above):

GET / HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
ETag: "-1836563736"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:55 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui/cssreset/cssreset-min.css&yui/cssfonts/cssfonts-min.css HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:18 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:55 GMT
Content-Type: text/css; charset=utf-8
ETag: "-1463284566"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:55 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /yui/yui/yui-min.js HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: application/javascript
Accept-Ranges: bytes
Cache-Control: public,max-age=31536000
Last-Modified: Tue, 14 Jan 2014 11:59:00 GMT
ETag: W/"4gIxoOsipQY4gIw4Hu8s3Y"
Content-Length: 25586
Server: Jetty(9.1.0.v20131115)

---
GET /if/admin.min.css HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/css
Accept-Ranges: bytes
Cache-Control: public,max-age=31536000
Last-Modified: Tue, 14 Jan 2014 11:59:00 GMT
ETag: W/"vSW0rAEe/b8vSW17JGA3h4"
Content-Length: 22176
Server: Jetty(9.1.0.v20131115)

---
GET /if/admin.min.js HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: application/javascript
Accept-Ranges: bytes
Cache-Control: public,max-age=31536000
Last-Modified: Tue, 14 Jan 2014 11:59:00 GMT
ETag: W/"7VPNTHzTc387VPMDOxNk7k"
Content-Length: 37889
Server: Jetty(9.1.0.v20131115)

---
GET /combo?yui/cssgrids/cssgrids-min.css&yui/widget-base/assets/skins/sam/widget-base.css&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:22 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:55 GMT
Content-Type: text/css; charset=utf-8
ETag: "1986623550"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:55 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui/oop/oop-min.js&yui/attribute-core/attribute-core-min.js&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Thu, 02 May 2013 22:59:53 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:55 GMT
Content-Type: application/javascript; charset=utf-8
ETag: "1918884200"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:55 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui/dataschema-json/dataschema-json-min.js&yui/dataschema-xml/dataschema-xml-min.js&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:24 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:56 GMT
Content-Type: application/javascript; charset=utf-8
ETag: "1381642784"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui-gallery/gallery-querybuilder/assets/skins/sam/gallery-querybuilder.css&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Thu, 02 May 2013 22:59:53 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:56 GMT
Content-Type: text/css; charset=utf-8
Content-Length: 872
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive

---
GET /combo?yui-gallery/gallery-formmgr/gallery-formmgr-min.js&yui-gallery/gallery-overlay-extras/gallery-overlay-extras-min.js HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Thu, 02 May 2013 22:59:53 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:56 GMT
Content-Type: application/javascript; charset=utf-8
ETag: "264489472"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui-gallery/gallery-node-optimizations/gallery-node-optimizations-min.js&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Thu, 02 May 2013 22:59:53 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:56 GMT
Content-Type: application/javascript; charset=utf-8
ETag: "946735146"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /combo?yui/substitute/substitute-min.js HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:22 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 02:53:56 GMT
Content-Type: application/javascript; charset=utf-8
Content-Length: 1006
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive

---
GET /api/context HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
X-Requested-With: XMLHttpRequest
Accept: */*
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Content-Type: application/json; charset=utf-8
ETag: "1217632044"
Content-Encoding: gzip
Date: Thu, 16 Jan 2014 02:53:56 GMT
Connection: keep-alive
Transfer-Encoding: chunked

---
GET /yui/assets/skins/sam/sprite.png HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Accept: image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: public,max-age=31536000
Content-Type: image/png
Last-Modified: Tue, 23 Apr 2013 23:46:18 GMT
ETag: W/"oHo6+Hf6zcMoHo7xE6wr7I"
Content-Length: 2913
Server: Jetty(9.1.0.v20131115)

---
GET /yui/node-menunav/assets/skins/sam/horizontal-menu-submenu-indicator.png HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Accept: image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: public,max-age=31536000
Content-Type: image/png
Last-Modified: Tue, 23 Apr 2013 23:46:20 GMT
ETag: W/"jvhF7Fl3QdUjvhE0GA9Mag"
Content-Length: 157
Server: Jetty(9.1.0.v20131115)

---

Appendix B

Please, find below the complete headers of all the requests and responses following the second refresh (I used a new session, so the dates are different from the brief summary given above):

GET / HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
If-None-Match: "-1836563736"

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
ETag: "-1836563736"
Date: Thu, 16 Jan 2014 03:03:44 GMT
Connection: keep-alive

---
GET /combo?yui/cssreset/cssreset-min.css&yui/cssfonts/cssfonts-min.css HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/css,*/*;q=0.1
If-None-Match: "-1463284566"
If-Modified-Since: Tue, 23 Apr 2013 23:46:18 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:18 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 03:03:44 GMT
ETag: "-1463284566"
Date: Thu, 16 Jan 2014 03:03:44 GMT
Connection: keep-alive

---
GET /if/admin.min.css HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/css,*/*;q=0.1
If-None-Match: W/"vSW0rAEe/b8vSW17JGA3h4"
If-Modified-Since: Tue, 14 Jan 2014 11:59:00 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
Vary: Accept-Encoding
ETag: W/"vSW0rAEe/b8vSW17JGA3h4"
Server: Jetty(9.1.0.v20131115)

---
GET /yui/yui/yui-min.js HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: */*
If-None-Match: W/"4gIxoOsipQY4gIw4Hu8s3Y"
If-Modified-Since: Tue, 14 Jan 2014 11:59:00 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
Vary: Accept-Encoding
ETag: W/"4gIxoOsipQY4gIw4Hu8s3Y"
Server: Jetty(9.1.0.v20131115)

---
GET /if/admin.min.js HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: */*
If-None-Match: W/"7VPNTHzTc387VPMDOxNk7k"
If-Modified-Since: Tue, 14 Jan 2014 11:59:00 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
Vary: Accept-Encoding
ETag: W/"7VPNTHzTc387VPMDOxNk7k"
Server: Jetty(9.1.0.v20131115)

---
GET /combo?yui/cssgrids/cssgrids-min.css&yui/widget-base/assets/skins/sam/widget-base.css&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: text/css,*/*;q=0.1
If-None-Match: "1986623550"
If-Modified-Since: Tue, 23 Apr 2013 23:46:22 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:22 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 03:03:44 GMT
ETag: "1986623550"
Date: Thu, 16 Jan 2014 03:03:44 GMT
Connection: keep-alive

---
GET /combo?yui/oop/oop-min.js&yui/attribute-core/attribute-core-min.js&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: */*
If-None-Match: "1918884200"
If-Modified-Since: Thu, 02 May 2013 22:59:53 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Thu, 02 May 2013 22:59:53 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 03:03:44 GMT
ETag: "1918884200"
Date: Thu, 16 Jan 2014 03:03:44 GMT
Connection: keep-alive

---
GET /combo?yui/dataschema-json/dataschema-json-min.js&yui/dataschema-xml/dataschema-xml-min.js&... HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIz
Accept: */*
If-None-Match: "1381642784"
If-Modified-Since: Tue, 23 Apr 2013 23:46:24 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
Last-Modified: Tue, 23 Apr 2013 23:46:24 GMT
Cache-Control: public,max-age=31536000
Expires: Fri, 16 Jan 2015 03:03:45 GMT
ETag: "1381642784"
Date: Thu, 16 Jan 2014 03:03:45 GMT
Connection: keep-alive

---
GET /api/context HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Authorization: Basic YWRtaW46MTIz
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
X-Requested-With: XMLHttpRequest
Accept: */*
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
If-None-Match: "1217632044"

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Content-Length, X-Requested-With
Vary: Accept-Encoding
ETag: "1217632044"
Date: Thu, 16 Jan 2014 03:03:46 GMT
Connection: keep-alive

---

EDIT

The reason I mention Chrome, is because this is the browser I am using. Other browsers may behave differently, right now I am specifically interested in Chrome.

It did cache them, but whenever you press the refresh button it forces a revalidation of all resources. You'll notice that it sent If-None-Match and If-Modified-Since headers so that the server could conditionally respond, and the server sent back 304 indicating that the cached copies were still fresh. I'm not sure why some of the resources didn't get revalidated.

If you want to do a "reload" without revalidating, just select the URL bar and press enter.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM