Support max-stale in request
Cache logic refactor, more spec compliant