Explain how caching work in Drupal?

Through caching Drupal allows to speed up website using different configuration like page caching, block caching and lifetime for cached pages.
 
Page Caching :  It enables the entire HTML of each page to be stored in the database.  It reduces the amount of queries needed

Block Caching : 
You can set the cache setting for a block in views, when block created by views

Minimum cache lifetime : 
It is the amount of time before the page cache is cleared. On each cron run, page caches are cleared.

Expiration of cached pages :
It only applies for an external mechanism, for example, your browser cache or varnish