Normally, all resolvers cache all replies they receive. This means that response times are greatly improved.
An iterative resolver can fetch data from the cache instead of going through the whole iteration process each time it receive a query.
For a cache all data it receives during a query. The cached data will remain cached for as long as the TTL allows.