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:
Clear the chrome browsing cache (Settings -> Clear browsing data ... -> Empty the cache)
Refresh the application
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.