how to cache my site background image? I am using an image as my site background that is of size 2.7MB. Because of its image size alone it takes 7+ seconds for the page to load.

Question: Can/How do I cache this background image at user's browser caches that it is not downloaded every single time? 

Basically, i understand that first load will be slow but if cached - subsequent loads would be faster then.
The default drupal .htaccess settings should have your browser cache this image for 2 weeks. If this is not working I recommend installing the mod_expires module &amp; the mod_headers module on your server. If 2 weeks is not long enough, you will need to modify your .htaccess file to set the expires &amp; cache control headers for this file. An example of that below:

&lt;FilesMatch "my-big-image\.jpg$"&gt;
  &lt;IfModule mod_expires.c&gt;
    # Enable expiration.
    ExpiresActive On

    # Cache this file for 1 year after access (A).
    ExpiresDefault A31556926
  &lt;/IfModule&gt;
  &lt;IfModule mod_headers.c&gt;
    # Make this file publicly cacheable.
    Header append Cache-Control "public"
  &lt;/IfModule&gt;
&lt;/FilesMatch&gt;


At a bare minimum, you can try adding this line to the bottom of your .htaccess file. This doesn't require any apache modules to be installed and it should have your sever send back a small 304 instead of a large 200.

FileETag MTime Size