Si l'on s'en tient à une définition stricte, un serveur Web est un sous-ensemble commun d'un serveur d'applications.
Un serveur Web fournit un contenu Web statique, tel que des pages HTML, des fichiers, des images, des vidéos, principalement en réponse aux demandes HTTP d'un navigateur Web.
En règle générale, un serveur d'applications peut également fournir du contenu Web, mais sa tâche principale consiste à permettre l'interaction entre les clients de l'utilisateur final et le code d'application côté serveur (le code représentant ce que l'on appelle généralement la logique métier) afin de générer et de fournir du contenu dynamique, tel que des résultats de transaction, l'aide à la décision ou des analyses en temps réel. Le client d'un serveur d'applications peut être la propre interface utilisateur de l'application, un navigateur Web ou une application mobile, et l'interaction client-serveur peut se faire par le biais d'un certain nombre de protocoles de communication.
Dans la pratique, cependant, la frontière entre les serveurs Web et les serveurs d'applications est devenue plus floue, notamment parce que le navigateur Web s'est imposé comme le client d'application de prédilection et que les attentes des utilisateurs en matière d'applications Web et de performances des applications Web ont augmenté.
La plupart des serveurs Web prennent en charge des plug-in pour les langages de script (par exemple, ASP, JSP, PHP, Perl) qui leur permettent de générer un contenu dynamique basé sur une logique côté serveur. De plus en plus de serveurs d'applications non seulement intègrent des fonctionnalités de serveur Web, mais utilisent également HTTP comme protocole principal et prennent en charge d'autres protocoles (par exemple, CGI et les variantes de CGI) pour l'interface avec les serveurs Web. Ils permettent également aux applications Web d'exploiter des services, tels que le proxy inverse, le regroupement, la redondance et l'équilibrage de charge, qui améliorent performances et fiabilité, et permettent aux développeurs de se concentrer moins sur l'infrastructure et plus sur le codage.
Pour compliquer les choses, de nombreux serveurs Web et certains serveurs d'applications sont appelés serveurs d'applications Web ou se considèrent eux-mêmes comme tels.
En fin de compte, les serveurs Web et les serveurs d'applications les plus utilisés actuellement sont des hybrides des deux. La plupart des applications toujours plus enrichies que vous utilisez aujourd'hui comportent une combinaison de contenu Web statique et de contenu d'application dynamique, fournie par une combinaison de technologies de serveur Web et de serveur d'applications.
Le marché est inondé de serveurs Web et de serveurs d'applications. Ils sont trop nombreux pour les répertorier ici. Nous avons donc pensé qu'il serait plus utile de répertorier les options open source gratuites les plus courantes :
Nginx (lien externe à ibm.com) est un serveur Web open source qui inclut des fonctionnalités de proxy inverse, d'équilibrage de charge, de proxy mail et de cache HTTP. Des versions commerciales et prises en charge de Nginx sont également disponibles auprès de Nginx, Inc. (lien externe à ibm.com). Selon la société Netcraft (lien externe à ibm.com), spécialisée dans la recherche sur Internet et la prévention de la cybercriminalité, Nginx a été utilisé comme serveur ou comme proxy par près de 38 % de tous les sites Web du monde et par plus de 25 % du million de sites les plus fréquentés en décembre 2019. Parmi les entreprises utilisatrices de Nginx connues dans le monde entier figurent Dropbox, Netflix et Zynga.
Publié pour la première fois en 1995, le serveur HTTP Apache (également appelé Apache) est un autre serveur Web open source gratuit très utilisé qui, jusqu'à très récemment, alimentait plus de sites Web que tout autre serveur Web – 71 % à son apogée – avant d'être dépassé par Nginx en avril 2019. En décembre 2019, Apache servait plus de 24 % de tous les sites dans le monde et 31 % du million de sites les plus actifs.
Apache Tomcat (lien externe à ibm.com) est un serveur d'applications open source qui exécute des servlets Java, affiche et fournit des pages Web incluant la page de code JavaServer et sert des applications Java Enterprise Edition (Java EE). Lancé en 1998, Tomcat est le serveur d'applications Java open source le plus largement utilisé.
Glassfish (lien externe à ibm.com) est un serveur d'applications Java EE open source lancé par Sun Microsystems en 2006 et hébergé aujourd'hui par Eclipse Foundation (lien externe à ibm.com). Comme la plupart des serveurs d'applications Java, Glassfish prend en charge les servlets Java, les Enterprise JavaBeans (EJB), etc., mais il peut également fonctionner en tant que serveur Web, en servant du contenu Web en réponse aux demandes HTTP.
IBM® WebSphere® Application Server est le serveur d'applications le plus avancé pour créer et exécuter des applications Java et des applications d'entreprise.
Un serveur d'applications Java EE et MicroProfile complet et flexible pour la nouvelle ère des applications et des services cloud.
Découvrez comment soutenir le développement cloud natif, la modernisation des applications et la prise en charge des applications existantes avec WebSphere® Hybrid Edition.
Ce guide explique comment accélérer la modernisation de vos applications et améliorer la productivité des développeurs, l'efficacité opérationnelle et la standardisation.
Dans ce guide, découvrez comment l'équilibrage de charge optimise les performances des sites Web et des applications.
Découvrez pourquoi Java figure toujours parmi les plateformes de développement les plus utilisées et comment elle accélère les projets et prend en charge une large gamme de technologies émergentes.