El servidor web no envía "todo el sitio web", sino los documentos que solicitan los navegadores.
Por ejemplo, cuando accede a https://www.google.com/, el navegador consulta el servidor para el documento https://www.google.com/
. El servidor procesa la solicitud y devuelve un código HTML.
Luego, el navegador verifica lo que el servidor ha enviado. En este caso, es una página web HTML, por lo que analiza el documento y busca guiones, hojas de estilo, imágenes, fuentes, etc.
En esta etapa, el navegador ha terminado de descargar ese documento, pero aún no ha descargado los documentos de referencia. Puede elegir hacerlo o saltearlos. Los navegadores regulares intentarán descargar todos los documentos referenciados para una mejor experiencia de visualización. Si tiene un bloqueador de anuncios (como Adblock) o un complemento de privacidad (Ghostery, NoScript), también puede bloquear algunos recursos.
Luego, el navegador descarga los documentos de referencia uno por uno, cada vez que solicita explícitamente al servidor un solo recurso. En nuestro ejemplo de Google, el navegador encontrará las siguientes referencias, solo por nombrar algunas:
(los archivos reales pueden ser diferentes para diferentes usuarios, navegadores y sesiones y pueden cambiar con el tiempo)
Los navegadores basados en texto no descargan imágenes, archivos Flash, videos HTML5, etc., por lo que descargan menos datos.
@NathanOsman hace un buen punto en los comentarios: a veces, las imágenes pequeñas se incrustan directamente en documentos HTML y, en esos casos, no se puede evitar descargarlas. Este es otro truco utilizado para reducir el número de solicitudes. Sin embargo, son muy pequeños, de lo contrario, la sobrecarga de codificación de archivos binarios en base64 es demasiado grande. Hay pocas imágenes de este tipo en Google.com: ( tamaño codificado base64 / tamaño decodificado )
- Icono de teclado 19 × 11 (106 B / 76 B)
- Icono de micrófono 28 × 38 (334 B / 248 B)
- GIF transparente de 1 × 1 px (62 B / 43 B) que aparece en la pestaña Recursos de herramientas de desarrollo de Chrome , pero no pude encontrarlo en la fuente, probablemente agregado más tarde con JavaScript
- Archivo GIF dañado de 1 × 1 px que aparece dos veces (34 B / 23 B). Su propósito es un misterio para mí.