does expires_in store data in server cache or is it client only?

Hi,

I’m having an issue with expires_in. From the docs (expires_in (ActionController::ConditionalGet) - APIdock) it looks like it should only set a header. However, with a simple test application I can see it storing data to cache.

class HomeController < ApplicationController

def index

expires_in 5.minutes, :public => true

end

end

Results in a file like tmp/cache/AE9/880/f812f291251bb669867bae9c9d030ab7b4c0bd20 which contains the page body. I can modify that file and see it being sent back to the client.

I’m surprised to see it storing data on the server - I thought it would just send a header. I also see no way of invalidating the cache. In the example above the data is cached for 5 minutes and no amount of refreshing or shift-refresh shift-ctr-refresh etc. which is supposed to ignore client caching seems to reset it. Should it be caching like this and if so can I invalidate it?