Understanding Radiant Cache
I am quite confused how Radiant works with Rack Cache after trying more. From my understanding, Radiant only use Rack::Cache to server as a way for client side cache. So that Rack::Cache will check if the client side copy if still fresh then to decide if needs to generate contents again from Radiant projects. If so, Radiant only needs to store the meta information like etag on the /tmp/cache/meta folders, but why the entity information as well, where you can find the full html, css etc inside.
Unless Radiant cache is also working as a client side cache. Let's say a page has already be served by user A, then user B comes in, if the page is still 'fresh', although he hasn't serve the page before, the page will be served from the cache(from entity folder) directly.
I try to run a radiant project in production mode, when I first serve a page, the production log will show the request, however i i refresh the page, the production log doesn't show any request. This should be correct, because the page request status is 304 Not Modified, so it doesn't reach the radiant projects at all. However if I do a force refresh or use another browser to request the page, the production log doesn't show the request also, although it shows the status is 200 OK. So can I say that the Radiant is working as a server cache as well, meaning the contents are cached at server side and different request can server from this cache as long as it is not expired?
I found this discussion http://groups.google.com/group/radiantcms/browse_thread/thread/d1e5f2836024d27f but it looks that other people are saying Radiant is working only as a client side cache as well. Looks confusing to what I have found开发者_Go百科 out.
Thank you very much.
I end up answering my own questions, I write a detailed explanation on this.
精彩评论