Qual é a diferença entre o cache via Javascript vs configuração HTTPResponse cabeçalho no servidor

No frontend eu uso AngularJS "$ resource" para o pedido GET e no Backend eu uso o SpringMVC para expor meus métodos Restful way.

Agora quero cacheapenas alguns do meuPEGUE solicitações de. Eu notei que existem algumas maneiras de fazer isso, como usar o $ cacheFactory. Ou algo como:

 return {
   Things: $resource('url/to/:thing', {}, {
   list : {
   method : 'GET',
   cache : true
  }
 };

Por favor, note que esta também poderia ser uma simples chamada de ajax com alguns parâmetros de cache e não necessariamente usando o angularJS.

Então, em vez de o cliente usar essa abordagem, imagino que isso pode ser feito no servidor simplesmente porJava definindo o cache apenas no cabeçalho Response alguma coisa assim:

response.setHeader("Cache-Control: max-age=2592000");

Quais são as diferenças dessas duas abordagens? qual abordagem deve ser usada quando?

P.S esta questão não é um cache do lado do servidor vs questão de cache do lado do cliente, eu simplesmente definir o cabeçalho HTTPResponse no servidor que é tudo.

questionAnswers(1)

yourAnswerToTheQuestion