7. Inclusões no protocolo
Quando é essencial que o documento retornado esteja atualizado,é necessário contactar o servidor remoto para cada requisição GET.O protocolo HTTP já contém o método HEAD para retornar ainformação do cabeçalho de um documento, mas não o documento em si.Isto é útil para checar se o documento foi modificado desde o últimoacesso.
Entretanto, nos casos em que o documento foi alterado, seriamuito ineficiente fazer uma segunda conexão para o servidor remotopara conseguir executar o comando GET do documento. O overhead defazer a conexão é freqüentemente considerável.
O protocolo HTTP foi então modificado para conter umarequisição do tipo If-Modified-Since que torna possívelfazer uma requisição GET condicional. Esta é essencialmentea mesma requisição GET exceto pelo cabeçalho que contém a datae hora que o objeto está armazenado no cliente(no nosso caso, no cache do proxy).
Se o documento não foi modificado desde a data e a hora especificadaele não será retornado. O cliente receberá como resposta apenas informaçõesrelevantes como a nova data de expiração com um código de resultado especial.Se, caso contrário, o documento foi modificado, ele será retornado como sea requisição fosse um GET normal.
O GET condicional faz que vários tipos de utilitários se tornem maiseficientes. Ele pode ser usado por software de mirroring que tem quefazer refresh de um grande número de arquivos em uma base regular. Oproxy pode fazer refresh de seu cache durante períodos de inatividade enão apenas quando um documento explicitamente expira.
Embora o GET condicional seja compatível com o antigo, isso de nadaadianta. O protocolo HTTP é definido de forma que campos de cabeçalhodesconhecidos sejam ignorados. Se o servidor HTTP remoto não suportaro GET condicional nenhum erro será retornado: ele simplesmente retornarátodo o arquivo como se a requisição se tratasse de um GET comum.Felizmente todos os grandes servidores HTTP já suportam o GET condicional.
O mecanismo de cache é baseado em disco, que significa que o bootdo proxy ou da própria máquina nada lhe afetará. Devido a este detalhe,o cache abre novas possibilidades quando o proxy e um cliente Web estãona mesma máquina. O proxy pode ser configurado para usar somente o cachelocal, possibilitando a realização de demonstrativos sem uma conexãointernet. Você pode até desplugar um notebook e levá-lo ao bar.