J'ai beaucoup entendu parler du langage côté serveur Javascript, c'est-à-dire Node.js, et j'ai vu de nombreuses comparaisons en faveur de Node.
Je ne comprends pas ce qui le rend meilleur ou plus rapide, ni comment il se rapporte même à quelque chose d'aussi mature que les servlets Java.
Mais les servlets sont construits sur un langage de programmation multithread par opposition à Node.js. Alors, comment node.js peut-il être plus rapide?
Si supposons que les utilisateurs de 1000 Ko demandent des enregistrements de base de données, Node.js ne devrait pas être plus lent que les servlets.
Les servlets n'ont-ils pas une meilleure sécurité que Node.js?
javascript
java-ee
node.js
log N
la source
la source
Réponses:
Vous mélangez des pommes et des oranges, en quelque sorte.
Les servlets (ou héritant de HttpServlet) vous permettent d'accéder aux paramètres de demande HTTP et de répondre avec quelque chose, via (ou par-dessus) une implémentation de serveur HTTP existante.
Bien qu'utilisant Javascript comme langue, Node.js est à un niveau inférieur à cela. Cela commence par l' implémentation effective du serveur HTTP. Vous pouvez néanmoins continuer à y faire plus de choses de haut niveau, telles que des applications Web.
À propos du multi-threading, ce n'est pas nécessaire. Les serveurs Node.js ne sont pas plus rapides en raison du multithread, ils sont plus rapides car ils ne bloquent pas les demandes d'E / S, ils peuvent donc continuer à les pomper dans la file d'attente, tout en faisant d'autres choses. Ils ne fonctionnent que lorsqu'il y a du travail à faire - ils ne l'attendent pas - et cela entraîne une sérieuse amélioration des performances, comme il s'est avéré.
En ce qui concerne les requêtes de base de données, il s'agit vraiment plus de contraintes dans le modèle de base de données et l'API que de client.
En ce qui concerne la sécurité - c'est vraiment un sujet différent, et est finalement entre les mains de tout développeur, pas tellement dans la bibliothèque.
la source