¿Por qué es HTTP basic-auth más popular que pasar nombre de usuario / contraseña en forma de publicación?

[Divulgación: trabajo para AgileBits, los creadores de 1Password]

Dudo mucho que HTTP Auth sea más popular. De los cientos de inicios de sesión que tengo en mis datos de 1Password, 4 de ellos son HTTP Auth. Todos estos son para servidores muy livianos (impresoras, enrutadores), etc. que ejecutan sus servidores web en firmware y tienen un almacenamiento en disco muy limitado. Pero la gran cantidad de sitios web utilizan POST y ejecutan varios scripts del lado del servidor para la autenticación.

En 2011, 1Password (ver mi divulgación anterior) cambió radicalmente la forma en que se integra con los navegadores web al cambiar a la forma en que los navegadores preferían (y han llegado a insistir) que se escriban las extensiones del navegador. Un efecto secundario de este cambio fue que perdimos la capacidad de nuestra extensión de navegador para llenar paneles de autenticación HTTP.

Como puede imaginar, no todos estaban contentos con esa pérdida particular de capacidad. Pero incluso en el verano de 2011, estaba claro que solo una pequeña minoría de sitios web usaban HTTP Auth. Y todo lo que vemos de nuestros clientes y de nuestra propia experiencia es que HTTP Auth sigue siendo poco frecuente.

Supongo que a medida que el “Internet de las cosas” entre más en juego, tendremos muchos servidores web realmente pequeños, y algunos más HTTP Auth. Pero realmente no puedo imaginar que se vuelva “más popular que POST”.

Estoy seguro de que no es así: durante años no hubo forma de cerrar sesión sin salir del navegador, y no puede poner un botón de cierre de sesión en un sitio web, y no puede expirar las sesiones, por lo que un navegador desatendido aún iniciar sesión semanas después.
Sospecho que la forma habitual de manejar el inicio de sesión es con POST, ya que eso no registra los valores del formulario en los registros del servidor web como lo hace GET, y luego establece una cookie de sesión que debería ser una clave de base de datos aleatoria en lugar de contener una contraseña. El servidor rastrea la clave de sesión y decide si aún es válida como un token “usted ha iniciado sesión”.