¿Cómo envían los navegadores las solicitudes http y https en consecuencia?


2

Cuando escribimos un nombre de sitio web sin protocolo, los navegadores dan el sitio web correcto con su protocolo correcto (es decir, http o https)

Por ejemplo, si escribo google.com y presiono la tecla de retorno, el navegador me da la https://google.com

¿Cómo hace esto el navegador?


1
"Cuando escribimos el nombre de un sitio web sin protocolo, los navegadores proporcionan el sitio web correcto con el protocolo correcto". ¿Está seguro de eso? La mayoría de las veces el servidor web maneja redirecciones de esa manera. No sabe en qué sistema operativo se encuentra, pero intente escribir curl -I -L google.com En la línea de comandos y ver el flujo de redirecciones.
JakeGould

1
Y dicho eso, cuando lo haga. curl -I -L google.com Veo un 301 que me envía a http://www.google.com/ ¿Y el destino final donde obtengo un 200 no parece ser HTTPS a menos que esté leyendo los encabezados incorrectamente?
JakeGould

Respuestas:


5

Este no es un comportamiento estandarizado, ya que ningún documento RFC dice cómo debe comportarse un cliente si el usuario no especifica el protocolo. Pero probablemente, en la mayoría de las configuraciones predeterminadas, los clientes intentan conectarse utilizando una conexión no segura (por ejemplo, http:// ) primero. Sólo suponen que querías escribir http:// delante de tu URL.

En ese caso, no es el cliente quien se da cuenta de que este sitio está disponible a través de una conexión segura (por ejemplo, https:// ), es el servidor web que redirige la solicitud de su cliente. Entonces, al escribir google.com en la barra de direcciones de su navegador, su navegador primero se conecta a http://google.com, y el servidor web en google.com redirige su solicitud a https://google.com. Es por eso que todavía terminas en el https:// versión de google.

Incluso puedes intentar esto manualmente escribiendo http://google.com en su barra de direcciones. Google todavía te redirige a https://google.com. Pero este no es el comportamiento predeterminado de la mayoría del software de servidor web que existe, Google tuvo que especificar manualmente un "redireccionamiento HTTPS" en la configuración de sus servidores web.

Aún así, es posible, que algunos clientes prueben un https:// -conexión primero, y solo conectar por http:// si eso falla Ese es un comportamiento más seguro, y aunque probablemente no sea el predeterminado en la mayoría de los casos, existe, p. Ej. HSTS que permite a los sitios marcarse como https://, y algunos sitios pueden incluso estar marcados previamente en el navegador. (Como @kicken señaló, ¡gracias!) Luego hay complementos de navegador (por ejemplo, "HTTPS Everywhere" para Firefox) que implementan este procedimiento. Esos complementos vienen con listas de sitios que ofrecen https:// conexiones seguras, y cuando un usuario ingresa la URL de dicho sitio con http:// o sin ningún protocolo en la parte frontal, el usuario se redirige al https:// Versión del navegador, no del servidor web, incluso si el administrador del sitio web no configuró una redirección de HTTPS para su sitio.


6
HSTS permite que un navegador vaya directamente a https para los sitios marcados. Algunos sitios están marcados previamente en los navegadores de forma predeterminada.
kicken

Agregaré eso a mi publicación, gracias :) Me refiero a cosas como esas diciendo "es posible que los clientes prueben https primero", pero haré esto más explícito, tienes razón.
LukeLR

Vale la pena señalar que un atacante realmente podría secuestrar esa conexión inicial no segura y redirigirlo a otro lugar que no sea la versión https del sitio, en un escenario público de WiFi, por ejemplo. Si el HTTPS simplemente impide que un atacante de solo lectura lea su tráfico (números de tarjeta de crédito), la redirección no se verá afectada. Pero si HTTPS es lo único que lo está salvando de que alguien inyecte un exploit en el navegador en las páginas web que ve o que lo redireccione a un clon de la página con una URL ligeramente diferente, entonces esa conexión inicial no segura significa que está perdido.
Peter Cordes
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.