Se você oferece uma API e incentiva os clientes a armazenar dados em cache, enviar uma ETag HTTP é o caminho a percorrer. Um ETag é um identificador exclusivo retornado na resposta do cabeçalho HTTP (se fornecido) específico para o conteúdo que deve ser retornado. Se o conteúdo for alterado, uma nova ETag será atribuída. Isso significa que uma simples solicitação de cabeçalho HTTP pode ser feita para saber rapidamente se o conteúdo foi alterado ou não, sem a necessidade de seus servidores enviarem respostas completas. Assim, você pode economizar largura de banda, o armazenamento em cache para seus clientes torna-se mais eficiente e é fácil de implementar.
Como funciona
O cliente faz a solicitação, o servidor fornece uma resposta completa com ETag no cabeçalho:
…
ETag: “uniqueidentifier”
…
O cliente faz uma solicitação subsequente para atualizar o cache, se necessário. O cliente fornece informações de cabeçalho:
…
If-None-Match: “uniqueidentifierhere”
…
Onde o ‘identificador único aqui’ é a ETag que o cliente armazenou da resposta anterior. O servidor agora deve comparar as ETags, se forem diferentes, retornar uma resposta completa, caso contrário, retornar um status HTTP 304, indicando que o conteúdo não mudou e, portanto, o cache do cliente não está obsoleto.