Sabe como funciona a minificação? Em termos muito simples é isso. ELe elimina o que não precisa. Elimina o que está lá por burocracia ou atender uma demanda que não é necessária em todas as situações. Bem, é um jeito de ver, a minificação tem perda de dados, que não deixa de funcionar.
Complementando o que já foi dito, o básico é encontrar padrões que podem ser representados de uma outra forma mais eficiente.
Os dados tendem a desperdiçar bits de alguma forma, seja no mais básico e simples, até mesmo um único byte, ou em um grupo de dados por completo enorme onde você pode analisar e criar padrões que podem economizar bits.
Cada tipo de dados pode ter um algoritmo que funciona melhor e alguns deles podem tender a conseguir mais compactação em troca de pior performance.
E pode até mesmo escolher se será bem ruim para compactar mas rápido para descompactar ou o contrário, ou algum balanço. Cada necessidade tem uma forma que entrega algo melhor. Imagine que tem coisas que raramente descompacta ou compacta e é distribuído para descompactar muito, ou precisa entregar compactado ou descompactar muito rápido para não atrasar (manter baixa latência).
Como alguns dados aparecem muito mais que outros é possível estabelecer que estes serão representados com menos bits (bem menos que 8), o que vai obrigar alguns dados serem representados com mais de 8 bits (até 15), o que não é problema porque eles aparecerão poucas vezes.
Você pode ter longos textos ou outras formas padrões que você pode criar uma tabela e usar alguns bits (pouco ou muitos) para cada palavra ou até mesmo frase. O ganho pode ser imenso.
Exemplo bem tosco do ganho:
abababababababababababab == 12ab
Fonte.
Em uma imagem e outros tipos de arquivos semelhantes você tem muitos dados extremamente repetidos e pode dizer qual é o dado e quantas vezes repete, e em que padrão. Se for vídeo dá para fazer mais ainda porque cada quadro pode ter pixels que não mudam, você só precisa informar isso, não todos os bytes necessários para representar um único pixel. E tem alguns conceitos matemáticos aplicados bem interessantes que podem economizar muito.
Uma coisa que muita gente deve pensar que seria bom ir compactando o que já está compactado e ficar cada vez melhor. Mas isso não é possível. Pelo menos não na física tradicional :P Quando o dado já está bem eficiente em espaço tentar achar um padrão que permita economizar mais é quase impossível ou até tem efeito contrário. Experimenta compactar algo já compactado, pode ser um vídeo. Se o software for inteligente ele percebe e não compacta, se não for ele gastará um tempão e possivelmente o resultado será um arquivo maior :D
Algumas pessoas gostam de distinguir compactação (sem perda de dados) e compressão (com perda de dados), mas há discordâncias quanto ao uso do termo.
Alguns tipos de dados, como vídeo e áudio, pode ser interessante eliminar (antes de compactar tradicionalmente) alguns dados. Sons que o humano não pode ouvir, diferenças de cor que não conseguem ser percebidas, ou alguma coisa nesse sentido. Há uma perda de dados, o descompactado não será idêntico ao original, mas ninguém percebe, e pode dar um ganho enorme. Em alguns casos pode ter ganho maior que 99,9%.
Não sei com oestá hoje, mas os algoritomos mais usados semrpe foram o LZW (e diversas variações dele) e o Huffman. Muitas vezes os mais modernos compactadores usam uma forma otimnizada deles ou até apenas escolhem melhor os parâmetros e quando escolhe um ou outro.
Me lembro na faculdade, logo no primeiro semestre tivemos que criar alguns algoritmos assim, de forma bem simplificada, foi uma experiência interessante e uma das melhores do curso. Por que não tenta fazer um bem simples que só funcione em alguns casos, sem estudar nada mesmo, pelo menos por repetição.
Não vou repetir links já postados. Mas nunca deixe de ver a Wikipedia. Obviamente que em inglês é muito melhor e tem melhores referências para se aprofundar.
O que é Gzip? Como ele melhora um site?
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).