Estoy pensando en esta pregunta por mucho tiempo. Es una gran pregunta , ya que casi cubre todas las esquinas relacionadas con el desarrollo web.¿Cuál es el proceso completo desde la introducción de una URL a la barra de direcciones del navegador para obtener la página representada en el navegador?
A mi entender, el proceso debe ser como:
- introducir la URL de la barra de direcciones
- se enviará una solicitud al servidor DNS basado en la configuración de red
- hará DNS ruta usted a la IP real del nombre de dominio
- se enviará una solicitud (con el encabezado Http completo) al servidor (con IP de 3 para identificar) de 80 puertos (supongamos que no especificamos otro puerto)
- servidor buscará en los puertos de escucha y reenviará la solicitud a la aplicación que está escuchando 80 puertos (digamos nginx aquí) oa otro servidor (entonces el servidor de 3 será como un equilibrador de carga)
- nginx intentará hacer coincidir la URL con su configuración y servir como una página estática directamente, o invocar el intérprete de script correspondiente (por ejemplo, PHP/Python) u otra aplicación para obtener el contenido dinámico (con consulta DB u otras lógicas)
- un html será enviado de vuelta al navegador con un encabezado de respuesta HTTP completa
- navegador va a analizar el DOM de hTML utilizando su programa de análisis
- recursos externos (JS/CSS/images/flash/vídeos ..) se solicitará en secuencia (o no?)
- para la JS, que será ejecutado por el motor de JS
- para CSS, será generado por el motor de CSS y se basará la pantalla del HTML ajustado en el CSS (también en secuencia o no ?)
- si hay un iframe en el DOM, a continuación, un mismo proceso separado se ejecutará desde el paso 1-12
lo anterior es mi entendimiento, pero no sé si es correcto o no? ¿Cuán preciso? ¿Me he perdido algo?
Si es correcta (o casi correcta), espero:
- Hacer la descripción del paso más preciso en sus palabras, o escribir sus pasos si hay un gran cambio
- Hacer una explicación profunda de cada paso con el que estás más familiarizado
- Una respuesta por paso. Otros pueden hacer un suplemento en el comentario de cada respuesta.
Y espero que este hilo pueda ayudar a todos los desarrolladores web a tener una mejor comprensión de lo que hacemos todos los días.
Y voy a actualizar esta pregunta en función de las respuestas.
Gracias.
http://www.vladstudio.com/de/wallpaper/?how_internet_works/800x600/low ;-) Buena pregunta. +1 – Boldewyn
Relacionado: Cómo se procesan las páginas web ASP.NET en el servidor web - http://www.4guysfromrolla.com/articles/011404-1.aspx – mvark
+1 Esta pregunta me ha sido solicitada en muchas entrevistas. Es bueno encontrarlo aquí. Sería genial tener esta pregunta como punto de partida y seguir los enlaces de aquí a otras preguntas que explican los detalles más finos de los pasos involucrados. Buen trabajo ... –