Веб-сервер, когда выдаёт картинку пользователю вместе с ней посылает и "время жизни". Когда браузер хочет показать картинку из кеша, он смотрит, не устарела ли она в соответствии с этим самым временем и если да, то говорит веб-серверу "пришли мне картинку, если она обновилась, а если нет - не присылай - из кеша достану".
"Время жизни" настраивается в конфиге веб-сервера (по-умолчанию, обычно, оно равно нулю).
Если хочется уменьшить кол-во запросов к серверу, но при этом иметь возможность обновлять картинки, то "время жизни" ставится в значение "побольше", но ко всем путям до картинок приписывается параметр (см. совет
ThunderCat), который вы должны менять на сервере каждый раз, когда картинка изменилась. Тогда браузер будет считать, что это совершенно другая картинка и не полезет в кеш.