There's two levels of caching that you could be talking about
: browser caching and HTTP server caching. Browser caching happens on the client side. HTTP server caching caches responses loaded from disk or from an application server so they can be served again directly from memory for performance. I assume you mean browser caching.
Browser caching is controlled by the HTTP Expires and Cache-Control response headers. You can specify these directly in your application's responses, or alternatively you can use the Apache mod_expires plugin to handle them automatically based on file type. Here's the documentation for mod_expires:
Here's a great article on the background behind browser caching and how to configure mod_expires: