Qu’est-ce qu’un serveur Web ? Quels logiciels utiliser ?
Grâce à un serveur Web, on peut enregistrer des contenus Web et assurer leur accessibilité aux utilisateurs de manière sûre. Lorsque vous chargez une adresse Internet dans votre navigateur Web, les éléments que vous apercevez d’une page sont toujours envoyés sur votre ordinateur depuis un serveur Web. Pour qu’un site Web soit accessible à tout moment, le serveur Web sur lequel il est hébergé doit être connecté à Internet en permanence.
Si vous souhaitez lancer un site Web sur Internet, vous devez par conséquent utiliser un serveur Web. Les grandes entreprises et organisations possèdent souvent leurs propres serveurs Web pour leurs contenus Intranet et Internet. La plupart des administrateurs de sites Internet utilisent toutefois des centres de données hébergés par des fournisseurs de service Internet. Peu importe si vous disposez d’un serveur dédié ou si vous en louez un en externe, vous avez systématiquement besoin d’un logiciel pour gérer les données d’un site Web et les garder disponibles pour les internautes. Pour cela, vous avez le choix entre de nombreux programmes de gestion de serveurs Web conçus pour différents systèmes d’exploitation et domaines d’application.
Serveur Web : définition et histoire
Par serveur Web (aussi appelé serveur http), on entend tout type de serveur qui permet de diffuser des contenus Web sur Internet ou Intranet. En tant que partie d’un réseau d’ordinateurs, un serveur Web transmet des documents (d’une page Web à un navigateur par exemple) à ce qu’on appelle un client. Le terme de serveur Web peut en général se référer à deux choses différentes : soit au logiciel d’un serveur Web, soit à la machine sur laquelle s’exécute le programme. Lorsqu’il s’agit de la seconde définition, on parle généralement d’hébergeur ou d’hôte (un tel hébergeur peut abriter plusieurs programmes de serveur Web). Dans la suite de ce guide, nous parlerons de logiciels de serveurs Web (ou programmes) ou d’hébergeurs (hôtes) pour distinguer ces deux définitions. On évoque souvent le physicien et informaticien Tim Berners-Lee lorsqu’on parle du développement du serveur Web. En 1989, ce dernier suggérait de baser l’échange d’informations du CERN (organisation européenne pour la recherche nucléaire) sur un système hypertexte, plus simple et plus rapide. En 1990, avec Robert Caillau, il présentait un plan de projet pour le premier serveur Web du nom de « CERN httpd », mais aussi le premier navigateur Web et d’autres éléments fondamentaux qui ont résulté quelques temps plus tard sur les protocoles HTML et HTTP par exemple. Berners-Lee est aujourd’hui considéré, à ce titre, comme fondateur du World Wide Web.
Serveur Web : comment fonctionne cette technologie ?
Un logiciel de serveur Web sert avant tout à donner une représentation à des données de contenus Web. Dans ce but, le programme communique avec un client Web (en général un navigateur Web ou un moteur de recherche).
Si vous voulez visiter un site Web, vous devez renseigner l’adresse Internet correspondante dans un navigateur. Autrement dit, le navigateur envoie une requête au serveur Web et ce dernier lui envoie une réponse sous forme de page HTML. Un tel document HTML peut être enregistré sur l’hébergeur de manière statique ou dynamique. Cela signifie que le serveur Web doit exécuter des codes de programme (PHP ou Java) avant la réponse. Le navigateur interprète la réponse, ce qui occasionne de nouvelles demandes au serveur qui ont pour but d’intégrer par exemple les images ou les données CSS associées.
La transmission est effectuée via le protocole de communication HTTP (et sa variante sécurisée HTTPS), qui repose sur le protocole de réseau IP et TCP (aussi UDP dans de rares exceptions). Un serveur Web est capable de livrer le contenu d’un site Web à de nombreux ordinateurs et navigateurs différents en même temps. Le nombre et la rapidité de traitement des requêtes utilisateur dépendent entre autres du matériel et de la charge des flux de données de l’hébergeur. La complexité des contenus Web joue également un rôle : les processus de tâches de calcul intensif demandent logiquement plus de ressources que des processus plus simples.
Le choix du serveur (hôte) approprié (entre un serveur virtuel, dédié ou cloud) permet de prévenir une surcharge de votre serveur. Pourtant, même si vous utilisez un serveur correspondant à vos besoins en termes de ressources, les pannes sont toujours probables. Ces pannes ou erreurs peuvent être entrainées par une coupure de courant ou un autre problème technique dans le centre de données de l’hébergeur utilisé. Même si une telle panne ne se répète que très rarement, cela entraîne une coupure totale du réseau et donc l’arrêt du fonctionnement du site Web. Un système tel que le réseau de diffusion de contenu (CDN pour Content Delivery Network) permet de remédier à ces problèmes techniques via une meilleure répartition des charges et un système de répliques permettant d’éviter la perte de données.
Les tâches supplémentaires d’un serveur Web
Même si la transmission de contenus Web est la mission principale des logiciels de serveurs Web, de nombreux programmes proposent des fonctions supplémentaires :
Sécurité | Cryptage des communications entre serveur et client Web via HTTPS |
Identification utilisateur | Authentification HTTP autorisant l’accès à des domaines particuliers du Web |
Redirections | Redirection et réécriture d’URL (URL Rewriting) grâce au Rewrite-Engine |
Caching (mémoire cache) | Enregistrement intermédiaire de documents dynamiques pour répondre plus vite aux demandes et prévenir une surcharge du serveur Web |
Attribution de Cookies | Envoi et traitement de cookies HTTP |
Un hébergeur peut être mis en relation avec d’autres programmes que des logiciels de serveur Web. Un client FTP peut par exemple servir au chargement de données ou en tant que base de données de serveur pour des contenus dynamiques (pour lesquels les professionnels utilisent en général différents matériels supplémentaires). Par ailleurs, on trouve de nombreuses formes de serveurs variées pour des buts d’utilisation différents, comme par exemple un serveur email, un serveur de jeu ou encore un serveur proxy.
Définitions : serveur Web vs. Hébergement Web
Quels rôles jouent les serveurs Web dans l’hébergement Web ? Et qu’est-ce que l’hébergement Web exactement ? Un serveur Web représente par définition une composante fondamentale d’un hébergement Web. La distinction entre les deux notions n’est toutefois pas toujours facile, et notamment pour les plus novices. Ce guide vous permettra de distinguer ces deux notions.
L’hébergement Web se caractérise par le stockage et la mise à disponibilité de contenus Web. Les données d’un site Web sont déposées sur un espace Web défini. Cet espace Web est pour ainsi dire un disque dur sur lequel les contenus Web sont stockés. Cette mémoire est liée à un serveur Web, pour que les contenus en ligne soient rendus disponibles (comme un site Internet par exemple).
Un hébergeur ou hôte, c’est à dire un ordinateur de serveur Web, ainsi que l’espace Web correspondant s’obtient par le biais d’un hébergeur Web. De nombreux fournisseurs de services Internet tels que IONOS par exemple font office d‘hébergeurs Web. Si vous vous êtes décidé pour un hébergement autonome lors du choix du fournisseur de service d’hébergement Web, vous devrez l’aménager par vous-même. Pour cela, vous aurez besoin d’un programme de serveur Web.
Les logiciels de gestion de serveurs Web courants (gratuits)
Il existe de nombreux programmes permettant d’exploiter un serveur Web. La plupart sont disponibles gratuitement en téléchargement sur Internet. Le serveur Web utilisé doit évidemment être compatible avec le système d’exploitation de l’hébergeur. La plupart des serveurs Web reposent sur UNIX ou sur Linux (Apache, Nginx, Tomcat, etc.) mais souvent aussi sous Windows. Microsoft IIS représente une exception, car il ne fonctionne que sous Windows. Voici une brève présentation des programmes d’administration de serveurs Web les plus utilisés :
- Serveur http Apache : le serveur http Apache (ou plus simplement serveur Apache) est continuellement développé et amélioré grâce à sa base open source. Ce programme modulaire fonctionne aussi bien avec tous les systèmes d’exploitation, c’est le serveur Web le plus utilisé. Il est très adapté aux contenus Web dynamiques : on peut en effet intégrer du langage script PHP sans problème. Grâce à l’interface CGI, Apache peut exécuter d’autres programmes.
Il est possible de contourner l’installation d’un serveur Web Apache, qui est assez compliquée, en utilisant un ensemble de logiciels XAMPP ou LAMP. De tels ensembles de programmes simplifient en effet fortement l’installation. Ils comportent, en dehors d’Apache, des logiciels de gestion de base de données et de langages script.
Dernièrement, le serveur http Apache a perdu en rapidité en comparaison avec la concurrence. En effet, de nombreux concurrents se démarquent par des temps de réponse et des transferts de données plus courts.
- Apache Tomcat : Il s’agit d’un programme de serveur open source basé sur un environnement Java. Si vous souhaitez produire des contenus Web avec Java, ce logiciel est très adapté dans la mesure où il propose un conteneur Web. De plus, il peut être incorporé à d’autres serveurs Web (serveur Apache HTTP ou Microsoft IIS) via un connecteur AJP.
- Nginx : ce logiciel gratuit propose plus de fonctions qu’un serveur Web habituel. Nginx propose entre autres aussi un proxy inverse, ce qui permet de réduire la charge sur le serveur et donc de travailler plus rapidement. Ces dernières années, nginx a beaucoup gagné en popularité. Vous trouverez de plus amples informations sur ce programme dans notre introduction à nginx.
- Microsoft IIS : le programme Microsoft Internet Information Service (IIS) correspond à un ensemble de logiciels dans lequel on trouve aussi un serveur Web (programme). Auparavant, IIS était un élément intégré système de serveur Windows. Depuis, le programme peut être installé ultérieurement et indépendamment, si besoin, sur quelques systèmes d’exploitation Windows. Le fait que l’on ne puisse utiliser IIS que sur des serveurs basés sous Windows est peu surprenant, mais joue en sa défaveur.
- Serveur Web LiteSpeed : Litespeed est un logiciel de serveur Web pour Linux et Unix avec lequel vous avez le choix entre une version open source, une version standard gratuite et une variante pour les entreprises. Le serveur Web Litespeed se caractérise surtout pour sa rapidité de transmission de données. Celle-ci est d’autant plus élevée dans la version professionnelle.
L’administration d’un programme de serveur Web est en général effectuée par un autre ordinateur via un accès à distance. Dans la plupart des cas, le système d’exploitation de l’hébergeur ne doit pas forcément être le même que celui de l’ordinateur sur lequel fonctionne le programme de gestion du serveur Web. Un des programmes les plus connus d’accès à distance est Plesk. Grâce à ce logiciel, vous pouvez gérer un serveur Web sous Linux, UNIX, mais aussi Windows. Par conséquent, vous pouvez par exemple gérer un hébergeur sous Linux depuis votre ordinateur fonctionnant sous Windows et inversement.
Trouver et configurer le serveur Web adapté
Si vous souhaitez créer un serveur Web pour votre projet en ligne, vous avez tout d’abord besoin d’un hébergeur disposant d’un espace (mémoire) suffisant. Une des variantes les plus courantes est la location de ressources d’un serveur chez un fournisseur. Si vous n’avez pas ou presque pas de connaissances en administration de serveur Web, des offres telles qu’un hébergement partagé ou bien un hébergement cloud avec infogérance peuvent vous permettre de configurer un serveur Web personnalisé. Au contraire d’un serveur à accès racine, avec lequel vous avez tous les droits d’accès mais aussi l’entière responsabilité en termes de sécurité du serveur, l’hébergeur d’une solution cloud avec infogérance prend en charge une grande partie de l’administration de base. Avec une telle solution, les mises à jour de logiciels et mises à jour de sécurité sont entre autres prises en charge par le fournisseur de service, mais vous pouvez tout de même configurer votre serveur Web selon vos préférences. Avec un hébergement partagé, vous n’avez pas du tout à vous soucier de mettre à jour vos logiciels et vous avez toutefois accès à l’espace Web mis à disposition par le fournisseur selon ses possibilités de configuration. Louer un serveur implique généralement une participation financière mensuelle. Le coût dépend de la performance et de la portée des différents composants, comme l’efficacité de l’ordinateur (CPU et RAM), l’espace Web disponible, et le type de mémoire du disque dur (SSD ou HDD). Celui qui veut avoir une certaine flexibilité dans l’hébergement de son site Internet devrait opter pour une solution d‘hébergement Cloud. Ici, la performance de nombreux composants peut être adaptée à tout moment aux exigences actuelles d’un projet Web quelconque. La performance requise pour les composants d’hébergement respectifs dépend des défis de votre projet en ligne : les petits blogs ou cartes de visite en ligne ne nécessitent guère plus d’une offre d’hébergement de faible performance. Les plus grands portails en ligne ou sites Internet avec de nombreux contenus à fort volume utilisent beaucoup plus la performance de certains composants. De plus, un volume de transfert de données plus élevé est nécessaire pour certains types de projets : ceux qui proposent des contenus téléchargeables par exemple, qui ont besoin d’une certaine vitesse d’échange en ce qui concerne la circulation de données, pour que le transfert ne se déroule pas plus lentement qu’à l’accoutumée. Même si vous voulez mettre des vidéos ou de la musique à disposition sur votre site, le volume du trafic disponible doit correspondre, afin que le serveur ne rencontre pas de surcharge, et donc de disfonctionnement. Pour vous assurer de cela, vous pouvez réserver un pack avec un forfait de trafic chez la plupart des fournisseurs. Cela garantit un échange de données avec une capacité suffisante. Lorsque vous avez trouvé le serveur adapté, vous pouvez configurer votre logiciel de serveur Web http de manière adaptée à vos besoins. Toutefois, il y a quelques aspects auxquels il faut tenir compte quant à la sécurité.
Sécurité du serveur Web
Une fois le serveur Web créé et configuré, vous devez veiller à ce que tous les programmes soient à jour. Les versions obsolètes ouvrent la porte aux criminels et aux pirates, et leur permettent dans le pire des cas de prendre le contrôle du serveur. Avec l’hébergement Cloud avec infogérance, le fournisseur Internet s’occupe de toutes les préventions liées à la sécurité. Cela vous incombe dans le cas contraire.
Outre l’actualisation des programmes, un Firewall propose une protection en cas de cyber attaque. La configuration d’une zone démilitarisée est aussi pertinente. De plus, le Framework Fail2ban peut vous protéger d’accès non autorisés.
Un autre principe de base, en tant qu’administrateur, en matière de sécurité de serveur Web, est de restreindre les fonctions du serveur à celles qui sont absolument nécessaires. Fermez tous les ports, et laissez les services nécessaires fonctionner. Par ailleurs, l’attribution de mots de passe sûrs fait partie des mesures de prévention fondamentales en termes de sécurité pour la prise en charge d’un serveur. En cas de questions ou bien en cas d’urgence, un service après-vente fiable et qualifié est d’une grande valeur, notamment pour les administrateurs les moins expérimentés.
Si votre hébergeur ne s’occupe pas complètement de la protection de votre serveur, vous avez besoin d’un certain savoir-faire ainsi qu’une compréhension des bases de l’hébergement pour l’entretien de votre serveur. Vous pouvez aussi acquérir ce savoir-faire sur le tas, et dans l’idéal sur un réseau fermé, afin d’éviter tout risque de cyber attaque.
Processus exemplaire d’une opération sur serveur Web
Un serveur Web fonctionne sur le modèle de client de serveur. Par exemple, si vous visitez le site Web de IONOS, vous devez entrer le nom de domaine (« www.ionos.fr ») dans votre navigateur (le client). Voici comment se déroule le processus de chargement d’une page Web :
- Dès que vous commencez une requête, votre navigateur transmet l’adresse Internet à un « nameserver » (aussi appelé DNS pour système de noms de domaines). En tant qu’élément de ce Domain Name System (DNS), à savoir un service de répertoire d’Internet, ce nameserver a pour ainsi dire accès à la totalité du carnet d’adresses du Web. Le nom de domaine alpha numérique (www.ionos.fr) est transformé en adresse IP numérique (217.160.72.6) et cette dernière est renvoyée au navigateur par la suite.
- Par la suite, le navigateur émet une requête au serveur au sujet des contenus de la page Web en question. Le navigateur Web envoie l’URL de la page Web demandée à l’adresse IP reçue. Il peut enfin contacter le serveur Web contenant les contenus de la page Web.
- Le serveur Web répond à la requête en renvoyant un document de la page Web demandée au navigateur. Par la suite, le navigateur envoie de nouveau une requête au serveur Web, cette fois-ci pour un autre document, à savoir une partie de la page Web demandée. Ce processus se répète jusqu’à ce que tous les éléments de la page Web soient transmis et que cette dernière soit entièrement représentée dans la fenêtre de votre navigateur. Si vous cliquez sur un lien du site Internet IONOS, une autre page Web sera demandée par le serveur. C’est ainsi que se déclenche le processus de chargement d’une page Web.
Vous vous sentez bien informé sur la configuration de votre propre serveur Web et vous souhaitez louer un serveur ? Peu importe si vous souhaitez opter pour un serveur dédié, un Serveur Cloud ou un serveur virtuel, IONOS a la solution optimale pour vous. Découvrez notre catalogue de produits sur notre boutique en ligne.