2010-01-19 11 views
265

¿Alguien puede decirme qué sucede detrás de las escenas desde el momento en que escribo una URL en el navegador hasta el momento en que puedo ver la página en el navegador? Una descripción detallada del proceso sería de gran ayuda.qué sucede cuando ingresas una URL en el navegador

+2

Aunque esto puede estar relacionado con la programación (eventualmente) - el nivel de detalle al que podría responderse esto (y ha) llenado los volúmenes. Por favor repita como una consulta de programación. – KevinDTimm

+0

Buscar DNS en wikipedia para comenzar. –

+21

Obtenga O'Reilly's * DNS and Bind * libro. Son solo 624 páginas. –

Respuesta

37

Primero, la computadora busca el host de destino. Si existe en el caché DNS local, usa esa información. De lo contrario, la consulta DNS se realiza hasta que se encuentre la dirección IP.

Luego, su navegador abre una conexión TCP al host de destino y envía la solicitud según HTTP 1.1 (o puede usar HTTP 1.0, pero los navegadores normales ya no lo hacen).

El servidor busca el recurso requerido (si existe) y responde mediante el protocolo HTTP, envía los datos al cliente (= su navegador)

El navegador usa analizador HTML para volver a crear la estructura del documento, que luego se te presenta en la pantalla. Si encuentra referencias a recursos externos, como imágenes, archivos css, archivos javascript, estos se entregan de la misma manera que el documento HTML en sí.

557

Atención: esta es una muy áspera y excesivamente simplificada boceto, asumiendo la solicitud más sencilla posible HTTP (sin HTTPS, sin HTTP2, sin extras), más simple DNS posible, sin proxies, de una sola pila IPv4, una petición HTTP solamente , un servidor HTTP simple en el otro extremo, y sin problemas en ningún paso. Esto es, para la mayoría de los intentos y propósitos contemporáneos, un escenario poco realista; todos estos son mucho más complejos en el uso real, y la tecnología se ha vuelto un orden de magnitud más complicada desde que se escribió esto. Teniendo esto en cuenta, la siguiente línea de tiempo aún es algo válida:

  1. caché de los controles del navegador; si el objeto solicitado está en la memoria caché y es fresco, pase al # 9
  2. navegador pregunta OS para la dirección IP del servidor de
  3. OS hace una búsqueda de DNS y responde la dirección IP en el navegador
  4. navegador abre una conexión TCP con el servidor (este paso es mucho más compleja con HTTPS)
  5. navegador envía la solicitud HTTP a través de la conexión TCP
  6. navegador recibe respuesta HTTP y puede cerrar la conexión TCP, o la reutilización para otro petición
  7. navegador comprueba si la respuesta es una redirección o una respuesta condicional (códigos de estado de resultado 3xx), una solicitud de autorización (401), error (4xx y 5xx), etc .; estos se manejan de manera diferente de las respuestas normales (2xx)
  8. si cacheables, la respuesta se almacena en caché
  9. navegador descodifica la respuesta (por ejemplo, si está comprimido con gzip)
  10. navegador determina qué hacer con la respuesta (por ejemplo, se trata de una página HTML , que es una imagen, se trata de un clip de sonido)
  11. navegador hace respuesta, o ofrece un diálogo de descarga para este tipo no reconocidos

una vez más, la discusión de cada uno de estos puntos se han llenado innumerables páginas; toma esto solo como un resumen, abreviado en aras de la claridad.Además, hay muchas otras cosas sucediendo paralelamente a esto (procesamiento de la dirección ingresada, captación previa especulativa, adición de la página al historial del navegador, visualización del progreso al usuario, notificación de complementos y extensiones, visualización de la página mientras se descarga, canalización, seguimiento de la conexión para keep-alive, gestión de cookies, comprobación de contenido malicioso, etc.) y toda la operación adquiere un orden de magnitud más complejo con HTTPS (certificados y cifrados y fijación, ¡ay!).

+2

https://medium.com/@maneesha.wijesinghe1/what-happens-when-you-type-an-url-in-the-browser-and-press-enter-bb0aa2449c1a – Kaushal28

+0

@ Kaushal28 Algo similar, ya que está en exactamente el mismo tema, sí. Tal vez inspirado por este post, pero no el plagio, creo. – Piskvor

+0

Editado para disipar la aparente idea errónea de que "esto sucede cuando presionas Enter, simple, no?" – Piskvor

Cuestiones relacionadas