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?
curl -I -L google.com
En la línea de comandos y ver el flujo de redirecciones.curl -I -L google.com
Veo un 301 que me envía ahttp://www.google.com/
¿Y el destino final donde obtengo un 200 no parece ser HTTPS a menos que esté leyendo los encabezados incorrectamente?Respuestas:
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 escribirhttp://
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 escribirgoogle.com
en la barra de direcciones de su navegador, su navegador primero se conecta ahttp://google.com
, y el servidor web engoogle.com
redirige su solicitud ahttps://google.com
. Es por eso que todavía terminas en elhttps://
versión de google.Incluso puedes intentar esto manualmente escribiendo
http://google.com
en su barra de direcciones. Google todavía te redirige ahttps://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 porhttp://
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 comohttps://
, 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 ofrecenhttps://
conexiones seguras, y cuando un usuario ingresa la URL de dicho sitio conhttp://
o sin ningún protocolo en la parte frontal, el usuario se redirige alhttps://
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.fuente