{"id":382,"date":"2006-11-30T22:57:47","date_gmt":"2006-12-01T04:57:47","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/archives\/000382"},"modified":"2006-11-30T22:59:31","modified_gmt":"2006-12-01T04:59:31","slug":"browser-caching","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/382","title":{"rendered":"Browser Caching"},"content":{"rendered":"<p>It depends on how your website\/web application is used, but browser caching can give you fantastic performance increases for very little effort.  Especially with a database driven site that is primarily read-only (many ecommerce sites), proper browser caching can decrease the number of pages you serve per user, which in turn increases the number of users supportable by a given set of hardware.<\/p>\n<p>I found <a href=\"http:\/\/www.mnot.net\/cache_docs\/\">this caching tutorial<\/a> to be very helpful in understanding just how to cache pages, as well as <a href=\"http:\/\/www.ietf.org\/rfc\/rfc2616.txt\">RFC 2616<\/a>, which states in section 13.2.4 that the Cache-control: max-age header takes precedence over the Expires header (for the browsers who speak HTTP 1.1).  This <a href=\"http:\/\/www.mnot.net\/blog\/2006\/05\/11\/browser_caching\">examination of the support of various browsers<\/a> is also excellent reading.  There&#8217;s also a cool tool called the <a href=\"http:\/\/www.mnot.net\/cacheability\/\">Cacheability Engine<\/a> which examines caching behavior of web pages, if you don&#8217;t want to look at the headers yourself (using <a href=\"http:\/\/www.mooreds.com\/wordpress\/archives\/000379\">Fiddler<\/a> or <a href=\"http:\/\/livehttpheaders.mozdev.org\/\">LiveHTTPHeaders<\/a>).  I encountered occasional errors with the engine, but it was pretty neat to use.<\/p>\n<p>[tags]browser caching[\/tags]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It depends on how your website\/web application is used, but browser caching can give you fantastic performance increases for very little effort. Especially with a database driven site that is [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,4],"tags":[],"class_list":["post-382","post","type-post","status-publish","format-standard","hentry","category-http","category-technology"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=382"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/382\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}