[RUBY] Quelle est la différence entre un serveur Web et un serveur d'applications?

Je me suis demandé: "Quelle est la différence entre un serveur Web et un serveur d'applications?"

Qu'est-ce qu'un serveur

Tout d'abord, qu'est-ce qu'un serveur? L'histoire. Le serveur est un serveur en anglais, c'est-à-dire qu'il fournit et fournit. Selon IT Glossary, un serveur en est un autre dans un réseau informatique. Un ordinateur qui fournit ses propres fonctions, services, données, etc. à l'ordinateur. Lorsque nous parcourons une page Web, demandez au serveur "Je veux voir cette page!" Depuis notre PC. Ensuite, le serveur retournera une page disant "Oui, ça!". Vous pouvez maintenant voir la page Web heureuse. Normalement, chaque machine serveur ou logiciel serveur a une fonction ou un service fixe à fournir à l'extérieur, et un format de données ou protocole pris en charge (accord de communication). Ensuite, il est appelé "○○ serveur" avec les types de fonctions à fournir, telles que "serveur DB", "serveur Web" et "serveur d'application".

serveur Web

Le rôle du serveur Web est de recevoir les demandes de contenu du navigateur et de renvoyer une réponse au navigateur. Si la demande à ce moment est un contenu Web statique (contenu qui affiche le même contenu d'affichage à moins d'être mis à jour, comme des fichiers HTML, CSS et image), le serveur Web la traite et renvoie une réponse. Dans le cas d'un contenu Web dynamique qui nécessite un traitement pour modifier le contenu d'affichage de chaque client, le serveur Web envoie une requête au serveur d'applications. Ensuite, le résultat renvoyé par le serveur d'applications est renvoyé en tant que réponse. Les serveurs Web bien connus incluent Nginx et Apache.

Serveur d'application

Le serveur d'applications exécute l'application que nous avons créée. La requête envoyée par le serveur Web est transmise du serveur d'application à l'application et le résultat traité par l'application est renvoyé au serveur Web. Dans le cas d'un développement dans un environnement local, seul le serveur d'application est mis en place, mais dans l'environnement de production, en plaçant le serveur web devant l'application, il arrive souvent que le traitement du contenu statique soit alourdi.

Par exemple Rails

Les serveurs d'applications Rails typiques sont Unicorn, Thin, Rainbows, Puma, etc. La requête envoyée par le serveur Web est transmise du serveur d'application à l'application Rails et le résultat traité par l'application Rails est renvoyé au serveur Web. Pour le développement dans un environnement local, configurez uniquement un serveur d'application pour Rails tel que Puma (celui qui est généralement effectué dans l'environnement de développement). En revanche, dans l'environnement de production, le serveur Web est souvent placé devant l'application Rails pour supporter la charge du traitement de contenu statique. Cela permet au serveur Web de traiter plusieurs applications à la fois, de rendre les actifs rapidement et de gérer de nombreuses choses qui se produisent avec chaque demande.

Rack Parlons de Rack ici. Rack fait le lien entre le framework Ruby et le serveur d'application et sert de lien entre eux. En utilisant Rack, le serveur convertit la requête HTTP envoyée sous une forme compréhensible par l'application. Inversement, la réponse de l'application est convertie en HTTP via Rack et renvoyée au serveur. Rack vous permet de combiner librement serveurs et frameworks.

Résumé

Je vais résumer le contenu jusqu'à présent. Le serveur Web reçoit la demande envoyée par le navigateur et, s'il s'agit d'un contenu Web statique, renvoie une réponse au navigateur. Cependant, si la demande est un contenu Web dynamique, elle n'est pas traitée par le serveur Web et envoyée au serveur d'applications. Ensuite, le serveur d'applications informe l'application via le middleware. Lorsque le processus est terminé, les résultats sont renvoyés au navigateur dans l'ordre inverse.

référence

Différence entre le serveur Web et le serveur d'applications Glossaire informatique Différences entre le serveur Web et le serveur d'applications dans le développement de Rails (traduction)

Recommended Posts

Quelle est la différence entre un serveur Web et un serveur d'applications?
Quelle est la différence entre une action et une méthode d'instance?
Quelle est la différence entre SimpleDateFormat et DateTimeFormatter? ??
Quelle est la différence entre System Spec et Feature Spec?
[Rails] Quelle est la différence entre la redirection et le rendu?
Quelle est la différence entre ignorer et en attente? [RSpec]
[Rails] Quelle est la différence entre l'installation et la mise à jour du bundle?
[Java] Quelle est la différence entre form, entity et dto? [Haricot]
Quelle est la différence entre les responsabilités de la couche domaine et de la couche application dans l’architecture onion [DDD]
Serveur Web et serveur d'applications Rails
[Ruby] Relation entre la classe parent et la classe enfant. Relation entre classe et instance.
À propos de la différence entre irb et pry
De quoi avez-vous besoin à la fin pour créer une application Web en utilisant Java? Expliquer le mécanisme et ce qui est nécessaire pour apprendre
[Spring Boot] Précautions lors du développement d'une application Web avec Spring Boot et du placement d'une guerre sur un serveur Tomcat indépendant
[Java] Comprendre la différence entre List et Set
[Rails / Active Record] À propos de la différence entre créer et créer!
Comprenez la différence entre les classes abstraites et les interfaces!
[Java] Différence entre equals et == dans une chaîne de caractères qui est un type de référence
Indique combien d'années et de mois la différence par rapport à une date spécifique est
Apprenez à créer un serveur WEB Introduction au développement d'applications WEB à partir des bases
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
[Ruby] J'ai réfléchi à la différence entre each_with_index et each.with_index
[Rails] J'ai étudié la différence entre les ressources et les ressources
Qu'est-ce qu'une interface
Différences entre les classes et les instances dans Ruby
Qu'est-ce qu'un initialiseur?
Qu'est-ce qu'un opérateur?
Comparez la différence entre dockerfile avant et après docker-slim
Qu'est-ce qu'une annotation?
Comprenez en 3 minutes! Une explication très approximative de la différence entre session et cookie
Créez une application JAVA WEB et essayez OMC APM
J'ai essayé de créer une application Web qui recherche les tweets avec vue-word cloud et examine la tendance de ce qui est écrit dans le profil associé
Différence entre vh et%
Qu'est-ce qu'un servlet?
Qu'est-ce que le développement Web?
Différence entre i ++ et ++ i
[Swift] UITextField m'a appris la différence entre nil et ""
Je vais expliquer la différence entre le développement d'applications Android et le développement d'applications iOS du point de vue des ingénieurs iOS
Maintenant dans la troisième année, le malentendu que j'ai remarqué est la différence entre la méthode equals et ==
Une application qui acquiert la valeur du capteur d'accélération par communication UDP entre C # et Android
[Docker-compose] Différence entre env_file et environnement. À propos de la priorité de l'application de variable d'environnement
Différence entre Java et JavaScript (comment trouver la moyenne)
Qu'est-ce que la classe LocalDateTime? [Java débutant] -Date et classe d'heure-
La première application WEB avec Spring Boot-Making a Pomodoro timer-
[Java] Vérifiez la différence entre orElse et orElseGet avec IntStream
[Java] Une classe est un système d'exploitation et une instance est un ordinateur virtuel.
Remplaçons la différence entre == (identité) et méthode equals (équivalence)
La différence entre la programmation qui utilise des classes Ruby et la programmation qui n'utilise pas
Le journal de journalisation n'est pas généré lorsque l'application serveur est fermée
L'évaluation des courts-circuits est-elle vraiment rapide? Différence entre && et & en Java
[Mémorandum] Qu'est-ce qu'une erreur?
Qu'est-ce qu'une classe wrapper?
Qu'est-ce qu'un module Ruby?