Resumo
- RFC 1952 define um arquivo gzip como uma sequência de membros, cada qual com cabeçalho, blocos comprimidos e trailer CRC32/ISIZE próprios.
- Um novo membro pode ser anexado sem alterar os anteriores, ampliando a saída lógica; isso não oferece índice, acesso aleatório nem compressão ótima entre as partes.
- Campos opcionais são descrições sem autenticação. CRC32 detecta corrupção e ISIZE registra o tamanho do membro módulo 2^32, não a identidade do escritor nem o comprimento absoluto do conjunto.
Quando preservar o prefixo não preserva o significado inteiro
É possível comparar o hash do primeiro gigabyte de um arquivo hoje e amanhã e obter o mesmo resultado. Mesmo assim, amanhã a descompactação pode produzir mais dados. O motivo é um novo membro escrito depois daquele prefixo, válido por conta própria e lido em sequência.
RFC 1952 não trata isso como tolerância acidental. O arquivo gzip consiste em membros consecutivos, sem um diretório geral entre eles. Cada membro contém um começo reconhecível, seus blocos comprimidos e um trailer. Fechar a unidade anterior cria um ponto seguro para iniciar a próxima.
O registro do RFC Editor data o texto de P. Deutsch de maio de 1996 e o classifica como Informational. Ele especifica um formato, não é um Internet Standard da trilha normativa e não comprova comportamento uniforme em toda implementação futura.
Os objetivos eram portabilidade entre máquinas e sistemas, processamento em fluxo com armazenamento intermediário limitado, implementação sem patentes e compatibilidade com gzip. Acesso aleatório não fazia parte da promessa. Uma sequência bem delimitada continua sendo uma sequência a percorrer.
Metadado transportado não vira procedência
ID1 e ID2 identificam gzip. CM=8 indica DEFLATE. FLG anuncia campos opcionais, e bits reservados devem estar zerados. São condições necessárias para produtores e leitores encontrarem a mesma fronteira.
MTIME, FNAME, FCOMMENT, FEXTRA e FTEXT carregam informações menos autoritativas. Podem sugerir data, nome original, comentário, extensão ou natureza textual. O leitor precisa saber saltá-las mesmo sem usar seu conteúdo. MTIME zero significa ausência de tempo disponível, e o campo OS pode ser ignorado.
Um nome no cabeçalho não autentica quem escreveu. Um comentário pode ser útil em um fluxo controlado, mas não é uma assinatura. Uma extensão com tamanho explícito torna o desconhecido navegável; não o torna verdadeiro.
FHCRC, quando presente, usa os 16 bits inferiores do CRC32 do cabeçalho anterior. O CRC32 do trailer cobre os dados descompactados daquele membro. ISIZE guarda o tamanho original módulo 2^32. Cada medida tem escopo próprio.
A verificação termina na unidade que a carrega
CRC32 torna muita corrupção acidental observável. Não impede que alguém monte deliberadamente um membro diferente com um controle correto. O resultado confirma coerência, não identidade, autorização ou cadeia de custódia.
ISIZE também não é um tamanho total ilimitado. Ele volta a zero em ciclos de 2^32 e descreve apenas a entrada do seu membro. Em um arquivo concatenado, o total depende de processar todas as unidades e somar as saídas.
A carga comprimida pertence a outra camada. RFC 1951 define DEFLATE. RFC 1950 envolve DEFLATE em zlib, com cabeçalho próprio e Adler-32. Mais tarde, RFC 6713 registrou application/gzip e application/zlib, distinguindo o cabeçalho e trailer de arquivo do gzip do formato de fluxo zlib.
Essa separação deixa cada acordo no nível certo. O algoritmo não restaura nomes; o invólucro não redefine os códigos comprimidos. Compatibilidade pode ser testada por fronteira.
O manual mostra duas visões corretas e diferentes
O manual GNU gzip documenta que arquivos comprimidos podem ser concatenados e gunzip extrai todos os membros. Também diz que comprimir as entradas juntas costuma render melhor e que --list mostra tamanho descompactado e CRC apenas do último membro quando há vários.
Logo, descompactar e listar não têm a mesma cobertura. Um inventário que transforma o resumo do último membro em propriedade do arquivo inteiro cria certeza indevida sem que a ferramenta tenha mentido.
RFC 9110 mantém gzip como codificação de conteúdo HTTP por referência a RFC 1952. Isso define o termo do protocolo. Não prova que proxy, cliente e scanner atravessem sequências de membros de modo idêntico; tal afirmação exigiria teste operacional.
Uma especificação mínima pode ser precisa
Running-Code Primacy separa documento, implementação e uso. O RFC estabelece a estrutura; o manual fornece evidência de um programa mantido. Não há aqui uma pesquisa universal de adoção.
Minimum Initial Specification ilumina o acordo: identificação, método, tamanhos opcionais, bits reservados e trailer precisam ser determinísticos. Exibir comentário ou aplicar dica de OS pode permanecer local.
Reality Layers distingue o símbolo “um arquivo” da operação composta por vários inícios e fechamentos. O nome único é conveniente; a sequência interna é a realidade que o leitor executa.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
