¿Cómo determina un navegador qué ruta solicitar al ingresar a un sitio web? ¿Y cómo sabe si descargar imágenes o no?

Lo único que el navegador sabe sobre las rutas es lo que pones en la barra de URL. De lo contrario, no tiene conocimiento del sistema de archivos del servidor (y, realmente, no debería tener tal conocimiento, por razones de seguridad).

El servidor es el que controla cómo se maneja la parte de ruta de una URL. Si coloca example.com/hello.jpg en la barra de URL, el servidor puede responder como quiera: con una imagen JPEG, con una respuesta de error 404, con una redirección a otro lugar, o incluso con algunos datos JSON sobre la imagen. Todo depende del servidor.

Algo como Apache o nginx se puede configurar para traducir ciertas rutas en rutas de sistema de archivos reales, por lo que, por ejemplo, una solicitud de example.com/public/js/main.js podría dar como resultado que el archivo se almacene en el servidor en /var/www/site/public/js/main.js está enviando, pero nuevamente esto depende completamente de cómo esté configurado el servidor. No es necesario que exista una relación directa entre la estructura de ruta URL y la estructura de ruta del sistema de archivos, y en el caso de una aplicación web, las respuestas a menudo se crean sobre la marcha combinando consultas de bases de datos y plantillas HTML, no archivos.

En cuanto a saber si descargar imágenes o no, en el caso más simple, el navegador carga un documento HTML, ve que hay algunas y le solicita al servidor los datos de imagen relevantes . El servidor generalmente agregará un encabezado a la respuesta HTTP que indica qué tipo de datos contiene la respuesta (el tipo MIME), por lo que el navegador no tiene que adivinar cómo interpretarla (por ejemplo, el tipo MIME para una imagen PNG es image/png ).

Finalmente, podría valer la pena leer cómo funciona exactamente HTTP. No es terriblemente complicado, realmente, y puede ayudarte a entender mucho de lo que sucede detrás de escena.

El navegador solicita el archivo ‘índice’ para el dominio …

DNS proporciona la dirección IP del dominio

entonces el servidor en esa dirección decide qué enviar.

El navegador decide qué aceptar.