O servidor da Web não envia "site inteiro", mas documentos solicitados pelos navegadores.
Por exemplo, quando você acessa https://www.google.com/, o navegador consulta o servidor para o documento https://www.google.com/
. O servidor processa a solicitação e envia de volta algum código HTML.
Em seguida, o navegador verifica o que o servidor enviou. Nesse caso, é a página da Web em HTML; portanto, ele analisa o documento e procura scripts, folhas de estilo, imagens, fontes etc.
Nesta fase, o navegador terminou o download desse documento, mas ainda não baixou os documentos referenciados. Pode optar por fazê-lo ou ignorá-los. Navegadores comuns tentarão baixar todos os documentos referenciados para obter a melhor experiência de visualização. Se você possui um bloqueador de anúncios (como o Adblock) ou um plugin de privacidade (Ghostery, NoScript), ele também pode bloquear alguns recursos.
Em seguida, o navegador baixa os documentos referenciados, um por um, cada vez que solicita explicitamente ao servidor um único recurso. No nosso exemplo do Google, o navegador encontrará as seguintes referências, apenas para citar algumas delas:
(os arquivos reais podem ser diferentes para diferentes usuários, navegadores e sessões e podem mudar com o tempo)
Os navegadores baseados em texto não baixam imagens, arquivos Flash, vídeo HTML5 etc., portanto, eles baixam menos dados.
@NathanOsman faz um bom argumento nos comentários: Às vezes, pequenas imagens são incorporadas diretamente em documentos HTML e, nesses casos, o download delas não pode ser evitado. Esse é outro truque usado para reduzir o número de solicitações. Eles são muito pequenos, porém, caso contrário, a sobrecarga de codificação de arquivo binário na base64 é muito grande. Existem poucas imagens no Google.com.br: ( tamanho codificado em base64 / tamanho decodificado )
- Ícone do teclado 19 × 11 (106 B / 76 B)
- Ícone do microfone 28 × 38 (334 B / 248 B)
- GIF transparente de 1 × 1 px (62 B / 43 B) que aparece na guia Recursos das Ferramentas de Desenvolvimento do Chrome , mas não consegui encontrá-lo na fonte - provavelmente adicionado posteriormente com JavaScript
- Arquivo GIF corrompido de 1 × 1 px que aparece duas vezes (34 B / 23 B). Seu objetivo é um mistério para mim.