¿Cuál es el propósito de un lenguaje de programación de secuencias de comandos del lado del servidor?

TL; DR: Simplemente no podemos hacer todo lo que necesitamos en el lado del cliente, por lo que necesitamos idiomas del lado del servidor para manejar el trabajo pesado.

Tiene un servidor de base de datos en alguna parte: no puede (y no debe) acceder directamente a ese servidor desde el cliente. La razón de esto es predominantemente por seguridad. Tener un servidor de base de datos expuesto en ese nivel no solo es irresponsable, es imprudente y la configuración necesaria para permitir que los hosts aleatorios accedan a ese servidor sería una pesadilla. Es mucho más seguro y más fácil restringir el acceso a la base de datos por localhost u otra dirección IP LAN interna. Por supuesto, cuando se trata de contenedores y escalabilidad, tendrá configuraciones redundantes ejecutándose con un equilibrador de carga en la parte delantera. Por lo general, estos servidores aún no se conocen entre sí, solo del equilibrador de carga.

El lenguaje del lado del servidor permite que un programador maneje una lógica empresarial compleja que podría requerir mucha memoria o potencia de procesamiento. A menudo, este tipo de lógica ralentizará el navegador del cliente hasta el punto de ser inutilizable. Por ejemplo, escriba un bucle infinito en javascript y vea qué tan pronto su navegador se ralentiza a un rastreo absoluto. O intente calcular algo que tenga un número muy, muy grande (piense en la magnitud de [matemáticas] 10e64 [/ matemáticas]). Teniendo en cuenta que los servidores suelen tener una gran cantidad de potencia de procesamiento, aunque no son los procesadores más rápidos y bancos masivos de memoria, son mucho más adecuados que los cerdos de memoria que componen los navegadores modernos en el lado del cliente.

Además, los lenguajes del lado del servidor permiten la representación dinámica que de otro modo sería muy difícil de lograr solo en el lado del cliente. Teniendo en cuenta que tenemos que usar servidores web de todos modos, podríamos descargar tanto como podamos al back-end y permitir que el cliente haga lo que debe hacer: mirar sitios web bonitos.

No puede realizar un cálculo seguro en hardware inseguro [1] [2] . ¡Esto significa que algunos cálculos no pueden realizarse en el cliente!

Imagine que está escribiendo una tienda web: si calcula el monto total adeudado al cliente, alguien puede simplemente presionar F12, ir al depurador, establecer un punto de interrupción en esa función, presionar “pagar”, hacer doble clic en “total” variable para cambiar su valor a 0.01, luego reanude la aplicación como si nada hubiera pasado.

Entonces, para evitar eso, solo le pide al cliente los identificadores de los productos y utiliza los precios de su propia base de datos en su propio servidor para calcular el total, al menos en lo que respecta a los pagos (es decir, todavía puede hacerlo el cálculo del lado del cliente, pero solo para fines de visualización, no para enviar ese número a PayPal).


[1] Donde “inseguro” significa, en general, “usted no controla completamente”.

[2] Con algunas excepciones como DRM (no realmente, sino más o menos), Bitcoin Blockchain o Ethereum Virtual Machine (EVM), por razones que están fuera del alcance de esta respuesta.

La secuencia de comandos del lado del servidor es una técnica utilizada en el desarrollo web que implica el uso de secuencias de comandos en un servidor web que produce una respuesta personalizada para la solicitud de cada usuario (cliente) al sitio web. Las secuencias de comandos del lado del servidor a menudo se utilizan para proporcionar una interfaz personalizada para el usuario