Si bien, en teoría, podría enviar solicitudes directamente desde el front-end a la base de datos, es una simplificación excesiva. Veamos algunos de los problemas:
La seguridad es la más grande y solo ella debe detener la línea de pensamiento; Usted está dando a los navegadores acceso directo a su base de datos . No sabes quién está usando el navegador. No sabe qué extensiones están usando que pueden estar modificando su código. Sin embargo, sabrán las cadenas de conexión utilizadas para acceder a la base de datos, cómo se almacenan sus datos y pueden ejecutar consultas arbitrarias con algunos conocimientos técnicos. Esto debería ser inaceptable a menos que las cosas almacenadas en su base de datos no tengan valor.
Un servidor de fondo (bien escrito) ocultará muchos de los detalles para conectarse directamente a la base de datos desde el navegador y, como intermediario, puede desinfectar fácilmente muchas entradas de usuario para evitar consultas maliciosas.
- ¿Qué ventaja tiene una API no estándar para la base de datos de back-end (como SAP / ABAB) sobre una estándar (como SQL-92)?
- ¿Son .NET o PHP mejores para un usuario de servidor?
- ¿Cuáles son algunos casos de uso para Neon (Node + Rust)?
- ¿Cuál es un mejor marco para que un desarrollador web back-end aprenda, reaccione o sea angular?
- ¿Qué son los desarrolladores full stack, front-end y back-end? ¿Qué hacen cada uno de ellos?
La simplicidad sería el siguiente punto que haría; Los navegadores se escriben con la intención de hablar con servidores web utilizando un conjunto limitado de protocolos. Las bases de datos esperan que sus clientes también usen protocolos específicos. Raramente hacen las dos mallas, por lo que es probable que termines escribiendo mucho pegamento entre ellas.
Cuando llega al punto en el que intenta traducir los datagramas HTTP, WebSockets o UDP a un formato que actúe como cliente para su base de datos … ha desarrollado un servidor de aplicaciones de fondo.
El rendimiento es otra razón más; dependiendo de la cantidad y complejidad de los datos con los que está tratando, su base de datos se ralentizará. Las consultas rutinarias de información tomarán más tiempo en responder y degradarán lentamente su experiencia de usuario. Una conexión directa a la base de datos no resuelve este problema.
Los servidores de fondo a menudo tienen una variedad de estrategias para minimizar el acceso innecesario a una base de datos, desde el almacenamiento en caché hasta los esquemas de autenticación. Se pueden escribir para tomar una instantánea agregada de lo que sus usuarios buscan a menudo y pueden asegurarse de que los datos estén “activos” y listos para una respuesta inmediata mientras solo acceden a la base de datos para obtener datos “fríos” menos comunes.
Esto no es exhaustivo, solo informativo.