qué sucede cuando escribes una URL en el navegador [cerrado]


293

¿Alguien puede decirme todo lo que sucede detrás de escena desde el momento en que escribo una URL en el navegador hasta el momento en que veo la página en el navegador? Una descripción detallada del proceso sería de gran ayuda.


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

28
Obtenga el libro de DNS y Bind de O'Reilly . Son solo 624 páginas.
Wim Hollebrandse

77
edusagar.com/articles/view/70/… ¡ esta es la mejor respuesta posible!
Shivendra

1
Por el bien de la posteridad, aquí hay una versión detallada de cómo funciona Internet: goo.gl/eEHmpZ .
Ashwin Krishnamurthy

44
Ahora hay un esfuerzo de colaboración para responder esto con el mayor detalle posible: github.com/alex/what-happens-when/blob/master/README.rst
Piskvor salió del edificio el

Respuestas:


587

Atención: este es un boceto extremadamente simple y excesivamente simplificado , suponiendo la solicitud HTTP más simple posible (sin HTTPS, sin HTTP2, sin extras), DNS más simple posible, sin proxy, IPv4 de una sola pila, solo una solicitud HTTP, un servidor HTTP simple en El otro extremo, y sin problemas en ningún paso. Este es, para la mayoría de los propósitos y propósitos contemporáneos, un escenario poco realista; Todos estos son mucho más complejos en el uso real, y la pila de tecnología se ha convertido en un orden de magnitud más complicado desde que esto fue escrito. Con esto en mente, la siguiente línea de tiempo sigue siendo algo válida:

  1. el navegador verifica el caché; Si el objeto solicitado está en caché y es nuevo, salte al # 9
  2. el navegador solicita al sistema operativo la dirección IP del servidor
  3. El sistema operativo realiza una búsqueda de DNS y responde la dirección IP al navegador
  4. el navegador abre una conexión TCP al servidor (este paso es mucho más complejo con HTTPS)
  5. el navegador envía la solicitud HTTP a través de la conexión TCP
  6. el navegador recibe la respuesta HTTP y puede cerrar la conexión TCP o reutilizarla para otra solicitud
  7. el navegador verifica si la respuesta es una redirección o una respuesta condicional (códigos de estado de resultado 3xx), solicitud de autorización (401), error (4xx y 5xx), etc .; estos se manejan de manera diferente a las respuestas normales (2xx)
  8. si se puede almacenar en caché, la respuesta se almacena en caché
  9. respuesta de decodificador del navegador (por ejemplo, si está comprimido)
  10. el navegador determina qué hacer con la respuesta (por ejemplo, ¿es una página HTML, es una imagen, es un clip de sonido?)
  11. el navegador proporciona una respuesta u ofrece un cuadro de diálogo de descarga para tipos no reconocidos

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


¿Qué sucederá en caso de solicitudes https en el paso 4? ¿Puede explicar un poco más?
Mohammad Raheem

2
Eso está más allá del alcance de esta respuesta. Pero revise la página de GH vinculada anteriormente, da una breve descripción: github.com/alex/what-happens-when/blob/master/…
Piskvor salió del edificio el

41

Primero, la computadora busca el host de destino. Si existe en el caché de DNS local, utiliza esa información. De lo contrario, las consultas DNS se realizan hasta que se encuentra la dirección IP.

Luego, su navegador abre una conexión TCP al host de destino y envía la solicitud de acuerdo con 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 usando el protocolo HTTP, envía los datos al cliente (= su navegador)

El navegador luego usa el analizador HTML para recrear la estructura del documento que luego se le 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.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.