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.
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.
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:
el navegador verifica el caché; Si el objeto solicitado está en caché y es nuevo, salte al # 9
el navegador solicita al sistema operativo la dirección IP del servidor
El sistema operativo realiza una búsqueda de DNS y responde la dirección IP al navegador
el navegador abre una conexión TCP al servidor (este paso es mucho más complejo con HTTPS)
el navegador envía la solicitud HTTP a través de la conexión TCP
el navegador recibe la respuesta HTTP y puede cerrar la conexión TCP o reutilizarla para otra solicitud
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)
si se puede almacenar en caché, la respuesta se almacena en caché
respuesta de decodificador del navegador (por ejemplo, si está comprimido)
el navegador determina qué hacer con la respuesta (por ejemplo, ¿es una página HTML, es una imagen, es un clip de sonido?)
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!).
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.
Respuestas:
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:
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!).
fuente
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.
fuente
Busque la especificación de HTTP. O para comenzar, intente http://www.jmarshall.com/easy/http/
fuente