Apache est un logiciel de serveur Web gratuit et open source utilisé par environ 40% des sites internet dans le monde entier. Apache HTTP Server est son nom officiel. Il est développé et maintenu par le Fondation logicielle Apache . Apache permet aux propriétaires de sites Web de diffuser du contenu sur le Web. C'est la raison pour laquelle on l'appelle ' serveur Web .' L'une des versions les plus fiables et les plus anciennes du serveur Web Apache a été publiée en 1995.
Si quelqu'un souhaite visiter un site Web, il remplit le nom du domaine dans la barre d'adresse de son navigateur. Le serveur web apportera les fichiers demandés en jouant le rôle de livreur virtuel.
Signification du serveur Web
Serveurs de messagerie, serveurs de bases de données, serveurs Web, et serveurs de fichiers utiliser différents types de logiciels serveur. Toutes ces applications peuvent accéder à de nombreux fichiers enregistrés sur le serveur physique et les appliquer à de nombreux objectifs.
L'objectif des serveurs Web est de fournir des sites Web sur Internet. Il se comporte comme un intermédiaire entre les machines clientes et les serveurs pour atteindre cet objectif. Il peut extraire le contenu via le serveur à chaque demande de l'utilisateur. En outre, il transmet cette demande au Web.
L’une des tâches les plus critiques de tout serveur Web est de fournir des services simultanément à différents utilisateurs du Web. Les serveurs Web exécutent des fichiers spécifiés dans un autre type de langages de programmation comme Java , Python , PHP , et plein d'autres. Les serveurs Web transforment ces fichiers en fichiers HTML statiques. Il fournit des services à ces fichiers dans le navigateur du serveur Web. Le navigateur Web peut être défini comme un outil responsable d’une communication client-serveur décente.
Fonctionnement d'Apache
Apache n'est pas un serveur physique ; c'est un logiciel qui s'exécute sur le serveur. Cependant, nous le définissons comme un serveur Web. Son objectif est d'établir une connexion entre les navigateurs des visiteurs du site (Safari, Google Chrome, Firefox, etc.) et le serveur. Apache peut être défini comme un logiciel multiplateforme, il peut donc fonctionner sur les serveurs Windows et UNIX.
Lorsqu'un visiteur souhaite charger une page de notre site Web, la page d'accueil, par exemple, ou notre page « À propos de nous », le navigateur du visiteur enverra une demande sur notre serveur. Apache renverra une réponse avec chaque fichier demandé (images, fichiers, etc.). Le client et le serveur communiquent via le protocole HTTP, et Apache est responsable de la communication sécurisée et fluide entre les deux machines.
Apache est un logiciel hautement personnalisable . Il contient la structure basée sur les modules. Divers modules permettent aux administrateurs de serveur d'activer et de désactiver des fonctionnalités supplémentaires. Apache comprend des modules pour la mise en cache, la sécurité, l'authentification par mot de passe, la réécriture d'URL et à d'autres fins. De plus, nous pouvons configurer notre propre configuration du serveur à l'aide d'un fichier appelé .htaccess . Il s'agit d'un fichier de configuration pris en charge par Apache.
Autres serveurs Web par rapport à Apache
Il existe de nombreux serveurs Web différents d’Apache. Toutes les applications du serveur Web ont été conçues pour différents types d'objectifs. Apache a quelques rivaux et alternatives et il s’agit principalement de logiciels utilisés.
Apache contre NGINX
Nginx se prononce comme Moteur-X . Il s'agit d'une nouvelle application de serveur Web publiée pour la première fois en 2004. Nginx a gagné en popularité parmi les propriétaires de sites Web. Il a été développé pour résoudre le problème c10k, ce qui signifie que les serveurs Web utilisant des threads pour gérer diverses requêtes des utilisateurs sont incapables de gérer plus de 10 000 connexions à la fois.
- Les propriétaires de sites Web à fort trafic peuvent rencontrer des problèmes de performances car Apache utilise une structure basée sur des threads. Nginx définit le problème c10k qui est probablement l'un des plus chanceux.
- Nginx contient une architecture basée sur les événements. Il ne crée pas de processus plus récent pour toutes les demandes. Au lieu de cela, il gère toutes les demandes entrantes dans un thread individuel. Ce processus gère divers processus de travail qui implémentent le traitement réel de la demande. Le modèle basé sur les événements de Nginx partage les demandes des utilisateurs entre les techniques de travail de manière simple et efficace, offrant ainsi une meilleure évolutivité.
- Nginx peut être un meilleur choix car il peut gérer des sites Web à fort trafic en utilisant un minimum de ressources. Plus précisément, il peut être utilisé par plusieurs sites Web à haute visibilité comme Airbnb, Pinterest, Hulu et Netflix.
- Cependant, Apache offre de nombreux avantages sur Nginx car il dispose d'une configuration simple, d'un environnement convivial pour les débutants et de divers modules pour les joueurs moyens ou petits.
Apache contre Tomcat
Matou cab peut être défini comme un serveur Web et il est amélioré par Apache Software Foundation. Par conséquent, Apache Tomcat est son nom officiel. Tomcat est également un serveur HTTP. Cependant, il améliore les applications Java plutôt que les sites Web statiques. Ce serveur Web peut exécuter de nombreuses applications Java distinctes telles que WebSocket, Java EL , JSP (Pages du serveur Java), et Servlet Java .
- Plus précisément, Tomcat a été créé pour les applications Java, tandis qu'Apache a été créé en tant que serveur HTTP. Nous pouvons appliquer Apache avec des langages de programmation distincts (Perl, Python, PHP, etc.) avec le support du module Apache approprié (mod_perl, mod_python, mod_php, etc.).
- Bien que nous puissions utiliser un serveur Web Tomcat pour servir des pages Web (statiques), il est moins efficace à cet effet que le serveur Apache. Tomcat peut précharger la machine virtuelle Java et d'autres bibliothèques Java dont nous n'aurons pas besoin sur la plupart des sites Web.
- De plus, Tomcat est moins configurable que les autres types de serveurs Web. La meilleure option est un serveur HTTP comme NGINX ou Apache pour exécuter WordPress.
Avantages et inconvénients d'Apache
Apache peut être une excellente option pour exécuter notre site Web sur une plateforme polyvalente et stable. Cependant, cela présente quelques inconvénients que nous devons comprendre.
Avantages:
- Logiciel stable et fiable.
- Gratuit et open source, même pour un usage économique.
- Correctifs de sécurité réguliers, fréquemment mis à jour.
- Adapté aux débutants, facile à configurer.
- Flexible grâce à la structure basée sur les modules.
- Fonctionne immédiatement avec les sites WordPress.
- Multiplateforme (implémentations sur serveurs Windows et Unix).
- Assistance facilement disponible et immense communauté en cas de problème.
Les inconvénients:
- Divers problèmes de performances sur les sites Web à trafic extrêmement important.
- Plusieurs options de configuration peuvent entraîner des vulnérabilités en matière de sécurité.
Versions d'Apache
Version 1.1
Cette version d'Apache a été autorisée en 2000 par l'ASF. Le principal changement concerne la « clause de publicité » par rapport à la licence 1.0. Le produit dérivé « Clause publicitaire » n'est plus nécessaire pour inclure des aspects du matériel publicitaire (dans la documentation uniquement).
Version 2.0
La version 2.0 d'Apache a été adoptée par l'ASF en janvier 2004. Ses objectifs déclarés comprenaient la création d'une licence facile à appliquer pour certains projets non ASF. Cela peut améliorer la compatibilité avec le logiciel basé sur GPL. Il permet à la licence d'être ajoutée par référence plutôt que répertoriée dans tous les fichiers. Il clarifie également la licence sur les contributions. Il a besoin de toute licence de brevet sur les contributions qui enfreignent nécessairement les brevets de la contribution.
Sécurité d'Apache
Comme les autres serveurs Web, Apache peut être exploité et piraté. Le principal outil d’attaque d’Apache est Slowloris. Slowloris peut exploiter les bugs du logiciel Apache. Il peut créer plusieurs sockets, maintenir toutes ces sockets actives et envoyer divers octets (appelés « en-têtes keep-alive ») pour informer le serveur que le système est connecté et ne rencontre aucun problème de réseau.
De nombreux développeurs d'Apache ont défini Slowloris avec plusieurs modules pour limiter les dégâts causés. Divers modules d'Apache tels que mod_antiloris, mod_noloris, mod_security, mod_evasive, mod_qos, et mod_limitipconn ont chacun été suggérés pour réduire la possibilité d’une attaque réussie de Slowloris. Apache livre le module mod_reqtimeout comme solution exécutive promue par les développeurs depuis Apache 2.2.15.
int pour chaîne java
Développement d'Apache
Versions du serveur HTTP Apache
Dernière version | Première version | Version |
---|---|---|
03-02-2010 (1.2.42) | 06-06-1998 | 1.3 |
07-10-2013 (2.0.65) | 04-06-2002 | 2.0 |
07-11-2017 (2.2.34) | 01-12-2005 | 2.2 |
08-07-2020 (2.4.46) | 21/02/2012 | 2.4 |
Le projet Apache est un effort collectif d'amélioration logicielle visant à créer une implémentation de serveur HTTP de code source de qualité commerciale, robuste, disponible gratuitement et riche en fonctionnalités. Le projet a été mené conjointement par une équipe de bénévoles répartis un peu partout. Cela peut être fait en utilisant le Web et Internet pour développer, communiquer et planifier n'importe quel serveur et la documentation associée.
Le projet fait partie de l'Apache Software Foundation. De nombreux utilisateurs ont partagé leur code, leur documentation et leurs idées sur le projet.
La version Apache 2.4 prend en charge les plateformes Tandem, NeXT, UX/A, TPF et BeOS.