web-dev-qa-db-fra.com

Différence entre serveur Web, serveur d'applications et serveur de base de données

J'ai lu quelque part qu'une application Web se compose d'un serveur Web, d'un serveur d'applications et d'un serveur de base de données. Quelle est la différence entre ces trois?


J'ai posé cette question car je me souviens que lorsque j'avais hébergé un site Web, je n'avais qu'un https de connexion au panneau de contrôle du site Web, dans lequel je mettais tous mes fichiers dans le dossier htdocs. Il n'y avait pas trois choses distinctes comme le serveur Web, le serveur d'applications et le serveur de base de données.

40
OneMoreError

Serveur Web -

Serveur sur lequel votre site Web est hébergé. Ce serveur aura installé des serveurs Web tels que IIS, Apache, etc.

Serveur d'applications -

Serveur sur lequel vos applications créées qui utilisent votre base de données, service Web, etc. Ce serveur d'applications hébergera la couche métier (enveloppée de services Web), les travaux planifiés, les services Windows, etc.

Serveur de base de données -

Le serveur de base de données hébergera votre ou vos bases de données telles qu'Oracle, Sql Server, MySql, etc.


Si vous faites référence à htdocs, il s'agit d'un serveur Web. La base de données que vous utilisez doit être installée sur un serveur différent qui est votre serveur de base de données. Le serveur d'applications peut également être installé sur la même machine de serveur Web.

enter image description here

Référence - Modèles de déploiement

37
Parag Meshram

Cela devient souvent déroutant.

Premièrement - "Serveur" peut désigner une chose physique (un ordinateur) ou une chose logique (un logiciel).

Les logiciels de serveur Web, d'application et de base de données peuvent tous s'exécuter sur la même machine serveur physique ou être répartis sur plusieurs machines physiques. La plupart des grands sites Web ont plusieurs machines; la plupart des packages d'hébergement "grand public" fonctionnent sur une seule boîte.

La séparation logique est la suivante.

Le serveur Web traite les requêtes HTTP (S) et les transmet aux "gestionnaires". Ils ont des gestionnaires intégrés pour les demandes de fichiers - pages HTML, images, CSS, JavaScript, etc. Vous pouvez ajouter des gestionnaires supplémentaires pour les demandes qu'ils ne peuvent pas gérer - par exemple pages dynamiques fournies par le serveur d'applications. Les serveurs Web implémentent la spécification HTTP et savent comment gérer les en-têtes de demande et de réponse.

Le serveur d'applications gère les requêtes qui créent des pages dynamiques. Ainsi, au lieu de diffuser une page HTML stockée sur le disque dur, ils génèrent dynamiquement le code HTML envoyé à l'utilisateur final. Les langages/frameworks courants pour cela sont Java/JSP, .Net (aspx), PHP, Ruby (on Rails ou pas), Python etc. La plupart du temps, ce logiciel de serveur d'applications s'exécute sur la même machine serveur physique que le serveur Web.

Le logiciel serveur de base de données est l'endroit où l'application stocke ses informations structurées. En règle générale, cela signifie un logiciel personnalisé qui permet au serveur d'applications de poser des questions comme "combien d'articles l'utilisateur x a-t-il dans son panier?", En utilisant un langage de programmation. Les exemples sont MySQL, SQL Server, Oracle (toutes les "bases de données relationnelles") et MongoDB, Redis et CouchDB (solutions "NoSQL").

Le logiciel de base de données peut fonctionner sur la même machine physique que le serveur Web, mais c'est généralement la première chose qui est hébergée sur un matériel physique distinct lorsque le site doit évoluer.

33
Neville Kuyt