¿Cómo funciona la descarga de archivos en los navegadores?

Instala Wireshark y puedes verlo por ti mismo:
Wireshark · Profundiza.

Pero cuando hace clic en un enlace como http: // server: port / uri, el navegador ve que se supone que debe usar el protocolo http para conectarse al servidor en el puerto y solicitar la uri. (Si no hay puerto en el enlace, el valor predeterminado es 80 para http).

Comienza abriendo una conexión tcp al servidor. Entonces, envía un SYN al servidor y espera SYN / ACK, luego envía ACK de regreso y la conexión está abierta y lista para http.

El navegador envía la solicitud http:

OBTENER uri HTTP / 1.1
Anfitrión: nombre de host
User-Agent: nombre y versión del navegador

(El nombre de host es necesario si varios dominios / subdominios están alojados en el mismo servidor). El servidor responde con un encabezado http:

HTTP / 1.1 200 OK
Tipo de contenido: aplicación / flujo de octetos
Longitud del contenido: tamaño de archivo
Fecha: martes 26 de marzo de 2013 09:20:42 GMT

Y luego el contenido del archivo sigue.

Los datos se dividen en paquetes mediante tcp y su computadora envía ACK para cada paquete para verificar que los haya recibido; de lo contrario, el servidor reenviará el paquete.

Su computadora guardará esto en un archivo temporal con un nombre aleatorio o le preguntará si desea elegir el nombre y la ubicación.

(Luego, por supuesto, también está la IP (capa de red) que envía / enruta los paquetes tcp a su destino utilizando la dirección IP lógica, la capa de enlace de datos para las direcciones reales (MAC) y finalmente cómo funciona la comunicación en los cables).