node.js - las - nodejs pdf español
¿Podemos decir que node.js es un servidor web? (8)
Servidor web
El servidor web puede referirse al hardware (la computadora) o al software (la aplicación de la computadora) que ayuda a entregar contenido al que se puede acceder a través de Internet. 1
La función principal de un servidor web es entregar páginas web sobre la solicitud a los clientes. Esto significa la entrega de documentos HTML y cualquier contenido adicional que pueda incluir un documento, como imágenes, hojas de estilo y scripts.
Un servidor web es lo básico para entregar solicitudes / pagess a los clientes / usuarios en internet.
Marco web
Un marco de aplicación web es un marco de software que está diseñado para soportar el desarrollo de sitios web dinámicos, aplicaciones web y servicios web. El marco apunta a aliviar la sobrecarga asociada con las actividades comunes realizadas en el desarrollo web. Por ejemplo, muchos marcos proporcionan bibliotecas para el acceso a bases de datos, marcos de plantillas y administración de sesiones, y con frecuencia promueven la reutilización de códigos.
Un marco web utiliza un servidor web para entregar las solicitudes al cliente, pero no es el servidor web.
Node.js
Node.js es una plataforma basada en el tiempo de ejecución de JavaScript de Chrome para crear fácilmente aplicaciones de red escalables y rápidas. Node.js utiliza un modelo de E / S sin bloqueo controlado por eventos que lo hace liviano y eficiente, perfecto para aplicaciones de tiempo real con uso intensivo de datos que se ejecutan en dispositivos distribuidos.
Pero, de nuevo, también puede crear aplicaciones CLI, así que creo que debería verlo más como una plataforma para escribir programas javascript para ejecutar en su servidor (computadora) usando un lenguaje de programación Javascript lugar de solo en el navegador como al principio. Creo que puedes verlo como Javascript++
?
También puede escribir un servidor web con node.js como puede ver en la página principal de node.js. Al principio, Ryan dijo que podrías poner a Nginx delante de node.js debido a la estabilidad del proyecto. El proyecto era y sigue siendo bastante joven. Nginx es un servidor web comprobado que seguirá funcionando mientras que node.js puede fallar. Entonces, nuevamente, muchos usuarios simplemente usan node.js para eso.
Encontré que estoy confundido entre el marco web y el servidor web.
Apache is a web server.
Tornado is a web server written in Python.
Nginx is a web server written in C
Zend is a web framework in php
Flask/Bottle is a web framework in Python
RoR is a web framework written in Ruby
Express is a web framework written in JS under Node.JS
¿Podemos decir que node.js es un servidor web? Estoy tan confundido entre el servidor web / framework.
Si, de alguna manera, node.js es un tipo de servidor web, no webframework (Express), ¿por qué necesitamos poner todo el node.js encima del servidor Nginx en una práctica útil? Pregunta sobre SO
¿Quién puede ayudar?
Equipo
Clasificaría node.js como un marco de servidor, con paquetes disponibles que pueden usarlo como un servidor HTTP, un servidor WebSocket o su propio protocolo personalizado, etc.
La razón por la que podría colocar nginx delante de su servidor node.js es para el equilibrio de carga HTTP y el proxy inverso en varias máquinas que ejecutan su aplicación de servidor.
Creo que el problema es que la terminología de "servidor web" o "servidor de aplicaciones web" está dominada por el mundo JEE y los productos, que no están tan modularizados como el mundo de marcos de JavaScript de hoy en día, que a su vez se pueden combinar más o menos libremente.
No veo ninguna razón por la que una tecnología, que puede servir aplicaciones complejas a través de la web, no deba llamarse servidor web o servidor de aplicaciones web.
Si se combina, digamos Nuxt como frontend, con Feathers como backend: ¡tendrá un backend al servicio de una API REST y una interfaz de usuario renderizada del lado del servidor!
Por supuesto, podría (mal) usar eso para servir contenido estático, luego lo llamaría servidor web, o podría usarlo para crear y servir una aplicación completa, luego lo llamaría servidor de aplicaciones web.
Son las características o cualidades combinadas las que resumen un propósito: ¿verdad? - Las características como la estabilidad, la escalabilidad y tales son, en mi humilde opinión, algo que se agregará a esas tecnologías con el tiempo. Por ahora, son bastante nuevas todavía.
Decir nodo es un servidor web es como decir que javacript solo puede ejecutarse dentro de un navegador, puedes decir eso pero también puede hacer muchas otras cosas.
NodeJS
- [Entorno de tiempo de ejecución de Javascript (motor de Chrome v8) + API / biblioteca de nodos]
- Puede crear un servidor web, también puede ser descrito como un servidor de aplicaciones.
Exprimir
- Marco web (utiliza el servidor web de nodejs para servir archivos)
Nginx
- Servidor web
En producción, la mayoría de las personas utilizan Nginx delante del servidor de nodo como un servidor proxy para servir archivos estáticos y otros elementos diversos como el almacenamiento en caché, el enrutamiento, etc.
El servidor web es algo que sirve a sus clientes a través de Internet a través de protocolos y el marco web es algo que llamamos compilador. Se compone de todas las bibliotecas requeridas, reglas de sintaxis, etc.
Y node.js es un framework !!
No, es un entorno de tiempo de ejecución ... por lo que no es un servidor web pero no necesita uno para ejecutarse. Así que probablemente esta es la razón por la que podría ser confuso. Puede ejecutarse de forma independiente sin necesidad de ningún servidor web porque es un tiempo de ejecución en sí mismo, pero de nuevo no es un servidor web.
Nodo es básicamente un entorno de tiempo de ejecución. Cuando ejecutas javascript en el nodo, le das mucha potencia (esteroides), uno de los cuales es la creación de la funcionalidad del servidor que se usa para servir páginas http. Por lo tanto, técnicamente, Node.js no es un servidor, pero tiene funcionalidades habilitadas para el servidor.
Yo diría que Node.js es un Runtime Environment o un Runtime Engine.
Probablemente la mejor definición que he encontrado hasta ahora proviene de un artículo de Rob Gravelle titulado "An Intro to Node.js" :
Node.js es una parte del entorno de ejecución y una biblioteca de piezas para crear aplicaciones de red utilizando JavaScript del lado del servidor. Utiliza el motor de ejecución de JavaScript de Chrome para ejecutar el código JS directamente sin la necesidad del arenero del navegador.
También la Enciclopedia PCMAG.COM proporciona la siguiente definición de "motor de tiempo de ejecución":
Software del que dependen ciertas aplicaciones para ejecutarse en la computadora. El motor de tiempo de ejecución debe estar ejecutándose en la computadora para que la aplicación se ejecute. Proporciona las rutinas y funciones comunes que requieren las aplicaciones y, por lo general, convierte el programa, que está en un idioma intermedio e intermedio, en lenguaje de máquina.
También el artículo de Wikipedia titulado "Sistema de tiempo de ejecución" declara:
Un sistema de tiempo de ejecución (también llamado sistema de tiempo de ejecución, entorno de tiempo de ejecución o simplemente tiempo de ejecución) implementa el comportamiento básico de un lenguaje informático, ya sea que se trate de un lenguaje compilado, un lenguaje interpretado, un lenguaje incrustado específico del dominio o se invoque a través de una API como es pthreads.
... Un sistema en tiempo de ejecución puede implementar el comportamiento de tareas como dibujar texto en la pantalla o hacer una conexión a Internet. También suele actuar como una capa de abstracción que oculta la complejidad o las variaciones en los servicios ofrecidos por el sistema operativo.
Bueno, ¿hay algún entorno de ejecución (o incluso plataformas de software) como Node.js? Supongo que JRE es un buen ejemplo de tal entorno. Node.js y JRE - tienen muchos en común. Todos tienen (un tipo de) máquina virtual, una biblioteca de clases y un marco para implementar muchos tipos de aplicaciones, incluidas las CLI.
Entonces, volviendo a su pregunta, ¿podemos decir que Node.js es un servidor web? Cambiemos "Node.js" por "JRE" y respondamos si JRE es un servidor web. La respuesta es no.
Todo lo que podemos decir es que Node.js es un entorno de ejecución que se puede usar para implementar un servidor web. Bueno, esa es mi opinión.