O que é: Last-Modified Header

O que é Last-Modified Header?

O Last-Modified Header é um cabeçalho HTTP que fornece informações sobre a última vez em que um recurso foi modificado no servidor. Esse cabeçalho é enviado pelo servidor para o cliente como parte da resposta HTTP quando uma solicitação é feita para um recurso específico, como uma página da web ou um arquivo.

Como funciona o Last-Modified Header?

Quando um cliente faz uma solicitação para um recurso, o servidor verifica a data e hora da última modificação desse recurso. Em seguida, o servidor inclui essa informação no cabeçalho da resposta HTTP, especificamente no campo Last-Modified. O valor desse campo é uma data e hora no formato UTC (Coordinated Universal Time).

Por que o Last-Modified Header é importante?

O Last-Modified Header é importante porque permite que o cliente saiba quando um recurso foi modificado pela última vez no servidor. Isso é útil para fins de cache e otimização de desempenho. Quando um cliente solicita novamente o mesmo recurso, ele pode enviar o valor do campo Last-Modified no cabeçalho da solicitação HTTP, usando o campo If-Modified-Since. Dessa forma, o servidor pode verificar se o recurso foi modificado desde a última vez que foi solicitado e, se não tiver sido modificado, pode responder com um código de status 304 Not Modified, indicando que o cliente pode usar a versão em cache do recurso.

Como usar o Last-Modified Header?

Para usar o Last-Modified Header, o servidor precisa ser configurado para incluir esse cabeçalho nas respostas HTTP. Isso pode ser feito através de configurações no servidor web ou por meio de programação em linguagens de servidor, como PHP ou Python. Ao enviar uma resposta HTTP, o servidor deve incluir o cabeçalho Last-Modified com o valor correspondente à data e hora da última modificação do recurso.

Exemplo de uso do Last-Modified Header:

Suponha que um cliente faça uma solicitação para uma página da web chamada “example.com/index.html”. O servidor recebe essa solicitação e verifica que a página foi modificada pela última vez em 10 de janeiro de 2022 às 15:30:00 UTC. O servidor inclui o cabeçalho Last-Modified com o valor “Mon, 10 Jan 2022 15:30:00 GMT” na resposta HTTP. O cliente armazena essa informação.

Cache-Control e Last-Modified Header:

O cabeçalho Cache-Control é usado em conjunto com o Last-Modified Header para controlar o armazenamento em cache de recursos pelos clientes. O Cache-Control permite que o servidor especifique como os recursos devem ser armazenados em cache pelos clientes. Por exemplo, o servidor pode enviar o cabeçalho Cache-Control com o valor “public, max-age=3600”, indicando que o recurso pode ser armazenado em cache pelo cliente por até uma hora.

Validação de cache com Last-Modified Header:

A validação de cache é um processo em que o cliente verifica se a versão em cache de um recurso ainda é válida. Isso é feito enviando uma solicitação HTTP ao servidor com o valor do campo Last-Modified no cabeçalho If-Modified-Since. O servidor compara o valor recebido com a data e hora da última modificação do recurso. Se o recurso não foi modificado desde então, o servidor responde com o código de status 304 Not Modified, indicando que o cliente pode usar a versão em cache do recurso.

Limitações do Last-Modified Header:

O Last-Modified Header tem algumas limitações. Uma delas é que ele depende da precisão do relógio do servidor. Se o relógio do servidor estiver desconfigurado, as datas e horas fornecidas pelo Last-Modified Header podem não ser confiáveis. Além disso, o Last-Modified Header não é adequado para recursos que são atualizados com frequência, pois a granularidade do campo é apenas até o segundo.

Alternativas ao Last-Modified Header:

Existem outras formas de controle de cache e validação de recursos além do Last-Modified Header. Uma alternativa é o cabeçalho ETag, que fornece um identificador único para um recurso. O cliente pode enviar o valor do campo ETag no cabeçalho If-None-Match em uma solicitação HTTP para validar a versão em cache do recurso. Outra alternativa é o cabeçalho Cache-Control com o valor “no-cache”, que instrui o cliente a sempre solicitar o recurso ao servidor, sem usar a versão em cache.

Conclusão:

O Last-Modified Header é um cabeçalho HTTP que fornece informações sobre a última modificação de um recurso no servidor. Ele é usado para fins de cache e otimização de desempenho, permitindo que o cliente saiba quando pode usar a versão em cache de um recurso. No entanto, o Last-Modified Header tem algumas limitações e existem alternativas disponíveis, como o cabeçalho ETag e o cabeçalho Cache-Control. É importante considerar as necessidades do seu aplicativo e escolher a abordagem mais adequada para o controle de cache e validação de recursos.

//daboshique.net/4/6850264