Todos los días cuando nos sentamos delante del ordenador, solemos poner en la barra de direcciones de nuestro navegador «Google.com», eso si no tenemos Google como página de inicio, que sería lo más normal. ¿Sabéis internamente todo lo que ocurre en el ordenador y en la conexión a Internet para que nosotros simplemente veamos la página principal del buscador?
Lo primero que debemos hacer es utilizar el teclado, dependiendo de si nuestro teclado lo conectamos a través de USB o con el antiguo puerto PS2 ocurrirá una cosa u otra. En líneas generales, cuando pulsamos una tecla el sistema operativo manejará una interrupción para poder recoger la información del teclado e incorporarlo en el navegador web, dependiendo del sistema operativo, la forma de manejar estas interrupciones serán diferentes. Otro detalle importante es que al poner una letra en nuestro navegador web, se está ejecutando una gran cantidad de código debido al auto completado de nuestro navegador, nos sacará el historial de búsqueda, los favoritos e incluso nos sugerirá que vamos a escribir «Google.es» próximamente. Podéis visitar nuestro tutorial sobre funcionamiento de BrowsingHistoryView.
Una vez que hemos escrito la dirección web en el navegador, el propio navegador se encargará de usar un protocolo (HTTP o HTTPS) y también si hemos indicado que queremos entrar en la página principal «/». El navegador también tendrá que decidir si lo que hemos introducido es una URL o un término de búsqueda. Una vez que hemos llegado hasta este punto, el navegador revisará la lista de sitios con el protocolo HSTS para protegernos de ataques Man In The Middle, de esta forma, el navegador web se conectará usando únicamente el protocolo HTTPS. Si la web no está en la lista de HSTS, intentará realizar la solicitud vía HTTPS, y si no funciona, lo hará vía HTTP.
A continuación, el navegador comprobará la codificación de los caracteres y realizará una petición DNS para encontrar dónde se encuentra el dominio, primero consultará el fichero hosts del sistema operativo y posteriormente realizará la petición a los servidores DNS configurados en nuestro equipo. Para poder realizar la petición a los servidores DNS, se debe ejecutar el proceso ARP para encontrar dónde está el router y que los paquetes viajen desde nuestro equipo hasta el router y viceversa.
Lo último que deberá hacer el navegador es abrir un socket TCP en nuestro ordenador, enviar un ClientHello para el TLS Handshake y posteriormente usar el protocolo HTTP para recibir toda la información, procesarla y mostrarla por pantalla. Siempre puedes proteger los marcadores del navegador.
Os recomendamos visitar el GitHub What happens when donde se explica en detalle todo lo que ocurre en cada uno de los pasos anteriores que os hemos explicado.