Cuando se conecta a un sitio web HTTPS que utiliza un "certificado problemático" (por ejemplo, uno que no es emitido por una CA reconocida, un certificado caducado o un certificado que no contiene el nombre del servidor tal como aparece en la URL) ), el navegador solicita confirmación del usuario. Esto puede suceder solo después de que se haya recuperado el certificado del servidor, como parte de un protocolo de enlace SSL. Esto representa al menos una conexión inicial con el protocolo de enlace.
Mantener una conexión SSL abierta utiliza algunos recursos en el servidor; por lo tanto, los servidores cierran automáticamente las conexiones luego de cierta inactividad, y los navegadores intentan no mantener las conexiones abiertas por mucho tiempo. Mostrar la advertencia sobre el certificado no válido implica esperar a que el usuario humano tome una decisión (hacer clic o no, esa es la pregunta). Esto tomará algún tiempo; los humanos son lentos . Por lo tanto, el navegador primero cerrará su conexión SSL inicial, la que usó para obtener el certificado del servidor, pero aún no se ha producido HTTP, solo el protocolo de enlace SSL. Cuando el usuario humano finalmente decide conectarse a pesar de la advertencia de miedo, el navegador abrirá una nueva conexión, con un nuevo protocolo de enlace SSL, y en ese habrá algunos HTTP (como "datos de la aplicación").
En cuanto a la otra conexión (la "conexión inicial" es en realidad dos conexiones hechas en paralelo): Chrome abre conexiones especulativas para acelerar las solicitudes posteriores; en general, una página web incluye imágenes que deberán descargarse rápidamente. Chrome parece ser demasiado entusiasta a veces . El escenario plausible es entonces:
- Chrome abre dos conexiones con protocolo de enlace SSL.
- Chrome advierte que el certificado es inestable y requiere intervención humana. Cierra las dos conexiones sin hacer ningún HTTP dentro de los túneles SSL.
- Cuando el usuario decide abrir la página, Chrome abre una tercera conexión, realiza un protocolo de enlace SSL y esta vez sigue con el cuadro de diálogo HTTP.