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
(http://apidock.com/rails/ActionController/ConditionalGet/expires_in) 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?