What do you mean by page caching and block caching?
Page caching:
• If enables, page caching will only be used for anonymous
users.
• If you enable page caching, the entire HTML of each page will
be stored in the database. This significantly reduces the amount of
queries needed.
• This automatically means that blocks will also get cached,
disregarded their own cache settings.
• If Varnish is configured, this will also enable varnish
caching
• The page cache max-age will be used (see below) for each
page.
• You can check the "X-Drupal-Cache" HTTP header to check if
this cache is HIT.
Block caching:
• If you enable block caching, without enabling page caching,
the block cache settings will be used (for anonymous and
authenticated).
• The defaults for most blocks is "don't cache" because that is
the default for blocks who don't have their cache settings
specifically declared.
• You can use block_cache_alter module to set this for each
block.
• When it's block created by Views, you can set the cache
settings for a block in Views.