Difference between Minimum cache lifetime and Expiration of cached pages On Drupal Performance Page, under the fieldset Cache you have two options. One is Minimum Cache Lifetime and the other is Expiration of cached pages.



What is the difference between these two.
I have made following observations after spending a few hours. If there are any gaps or mistakes, do let me know. I will be happy to make editions.

First observer that none of the Options under the CACHING are interdependent. If they were you would have seen them under different field sets(or as dependent fields). Make a note of this observation and we will revisit that later.



Let us begin with the first option Cache Pages for anonymous users. 


When you check this option you are basically telling Drupal

Hey Beast listen, when an anonymous user visits my site, 


Store the generated HTML in the cache table 
So that I can display the same result to all users as my pages
remain same for all anonymous users.  
And don't clear the page caches until I say clear
all caches.


Also even when you don't enable the Cache Pages for anonymous users  the page can still be cached by external cache systems. Eg : Boost

Now lets move to the next options which you would end up using generally. 

Expiration of cached pages




Note that this setting has nothing to do with the Drupal Database or
cache tables.
Read the description The maximum time an external cache can use an
old version of a page. As Molot pointed out the keyword is
external. 
So what this option basically does is it sets the header Cache Control to public and the max-age value in the header to the specified value(1 day in this case).
This header tells the external Caching systems not to make a call
to the server for this page until the max age, as they can show this
page from their own cache. After the max-age the Caching system
should check back with the Drupal server to see if the content has
changed.
If its a Varnish server, it doesn't make a call to Apache and
returns the page from its cache. So assume that Varnish has cached a
page and thousand different users made a request to that page. So it
means that 1000 requests have been processed without hitting the
Apache Server even once.


Minimum Cache Life Time


If your site doesn't have a huge traffic or if you are not sure what this value is, it better to leave this value as none.


This value applies not just for the pages. But all the cache objects. 
What this value tells is "Its ok to serve cache objects which are stale"
In our case the value is set to 5 mins.
If you have a page that lists the five latest blogs on your home
page. What the above values means is that, if a new blog is created
its ok for the blog not to appear on the listing for the five
minutes.
When this value is set, for the cache to be updated/recreated minimum
this much time must have passed and a cache clearing action must be
run[A cache clearing function should be run].