Resumo

  • Em 1996, Duane Wessels bifurcou a última versão pré-comercial do Harvest Cache Daemon, deu à ramificação independente o nome Squid e publicou a versão 1.0.0 em julho.
  • As primeiras mudanças do Squid mostram continuidade por meio da manutenção: requisições HTTP condicionais, objetos HTTPS e reconstrução do cache em disco enquanto o serviço continuava ativo.

Um projeto de pesquisa pode terminar enquanto uma de suas ferramentas ainda responde a requisições. Essa era a questão prática em torno do cache Web do Harvest em 1996. O Harvest havia desenvolvido vários componentes, entre eles o cache de objetos, mas integrantes da equipe migraram para a indústria quando começava um estudo separado sobre caching, financiado pela NSF. Duane Wessels, que havia trabalhado no Harvest, precisava de software público para essa implantação e pesquisa.

Em um relato técnico posterior, ele diz que partiu da última versão pré-comercial do Harvest, fez melhorias e chamou a ramificação de Squid para distingui-la de outra derivação comercial.

A bifurcação tinha um objetivo operacional claro. O cache ficava entre usuários e servidores Web distantes, armazenando cópias de objetos populares para que pedidos repetidos pudessem ser atendidos de um ponto mais próximo. O Harvest também suportava hierarquias de cache. A necessidade já aparecia fora do laboratório: um artigo de 1996 sobre as implantações na Nova Zelândia informa que o Harvest Cache entrou em produção em outubro de 1995. Em fevereiro, um único servidor processava volume equivalente a cerca de 5% do tráfego de Internet do país com o restante do mundo.

É uma estimativa de um operador em uma geografia específica, não uma medida de adoção global.

A primeira versão do Squid não foi apenas um novo nome sobre um arquivo intacto. O registro de alterações da beta 1.0, datado de 19 de abril de 1996, identifica Harvest cached-1.4.pl3 como base e lista o suporte acrescentado a requisições If-Modified-Since, objetos SSL e reconstrução em segundo plano do armazenamento em disco enquanto o cache continuava atendendo pedidos. São melhorias ligadas à operação de um proxy: verificar se um objeto armazenado mudou, tratar mais tipos de conexão e fazer manutenção sem parar o serviço. A versão oficial 1.0.0 foi lançada em julho.

No relato posterior, Wessels descreve um ano de contribuições de código, correções, pedidos de recursos e relatos de erros. O registro de alterações mostra esse trabalho em detalhe: correções entraram em versões sucessivas e o Squid manteve esforços de compatibilidade com caches vizinhos do Harvest. Em 1997, a RFC 2186 documentou o ICP, protocolo rápido de consulta e resposta entre caches vizinhos, e atribuiu sua origem ao caching hierárquico do Harvest. A bifurcação permitia alterar o programa sem abandonar formas de interação que outros caches conseguiam interpretar.

A origem do Squid mostra uma forma específica de continuidade. Para que operadores continuassem usando um cache, não era preciso preservar intacto o nome do projeto Harvest. Um mantenedor podia partir de código conhecido, publicar uma ramificação distinta e ajustá-la a necessidades observadas na operação. Isso não garantia suporte duradouro: o novo projeto ainda dependia de pessoas, financiamento e implantações compatíveis. Mas transformou um resultado de pesquisa em software que podia receber revisões periódicas.

Fontes