Grâce à un serveur Web, on peut en­re­gis­trer des contenus Web et assurer leur ac­ces­si­bi­lité aux uti­li­sa­teurs de manière sûre. Lorsque vous chargez une adresse Internet dans votre na­vi­ga­teur Web, les éléments que vous apercevez d’une page sont toujours envoyés sur votre or­di­na­teur depuis un serveur Web. Pour qu’un site Web soit ac­ces­sible à tout moment, le serveur Web sur lequel il est hébergé doit être connecté à Internet en per­ma­nence.

Qu’est-ce qu’un serveur Web ? Dé­fi­ni­tion et origine

Par serveur Web (aussi appelé serveur HTTP), on entend tout type de serveur per­met­tant de diffuser des contenus Web sur Internet ou Intranet. En tant que partie d’un réseau d’or­di­na­teurs, un serveur Web transmet des documents (d’une page Web à un na­vi­ga­teur par exemple) à ce qu’on appelle un client.

Le terme de serveur Web peut en général se référer à deux choses dif­fé­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é­fi­ni­tion, on parle gé­né­ra­le­ment d’hébergeur ou d’hôte (un tel hébergeur peut abriter plusieurs pro­grammes de serveur Web). Dans la suite de ce guide, nous parlerons de logiciels de serveurs Web (ou pro­grammes) ou d’hé­ber­geurs (hôtes) pour dis­tin­guer ces deux dé­fi­ni­tions.

On évoque souvent le physicien et in­for­ma­ti­cien Tim Berners-Lee lorsqu’on parle du dé­ve­lop­pe­ment du serveur Web. En 1989, ce dernier suggérait de baser l’échange d’in­for­ma­tions du CERN (Or­ga­ni­sa­tion eu­ro­péenne pour la recherche nucléaire) sur un système hy­per­texte, plus simple et plus rapide. En 1990, avec Robert Caillau, il pré­sen­tait un plan de projet pour le premier serveur Web du nom de « CERN httpd », mais aussi le premier na­vi­ga­teur Web et d’autres éléments fon­da­men­taux qui ont résulté quelque temps plus tard sur les pro­to­coles HTML et HTTP par exemple. Berners-Lee est aujourd’hui considéré, à ce titre, comme fondateur du World Wide Web.

Comment fonc­tionne un serveur Web ?

Un logiciel de serveur Web sert avant tout à donner une re­pré­sen­ta­tion à des données de contenus Web. Dans ce but, le programme com­mu­nique avec un client Web (en général un na­vi­ga­teur Web ou un crawler de moteurs de recherche).

Si vous voulez visiter un site Web, vous devez ren­seig­ner l’adresse Internet cor­res­pon­dante dans un na­vi­ga­teur. Autrement dit, le na­vi­ga­teur 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 en­re­gis­tré 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 na­vi­ga­teur in­ter­prète alors cette réponse et envoie d’autres requêtes pour charger, par exemple, les images ou les fichiers CSS.

La trans­mis­sion est effectuée via le protocole de com­mu­ni­ca­tion HTTP (et sa variante sécurisée HTTPS), qui repose sur le protocole de réseau IP et TCP (aussi UDP dans de rares ex­cep­tions). Un serveur Web est capable de livrer le contenu d’un site Web à de nombreux or­di­na­teurs et na­vi­ga­teurs dif­fé­rents en même temps. Le nombre et la rapidité de trai­te­ment des requêtes uti­li­sa­teur dépendent entre autres du matériel et de la charge des flux de données de l’hébergeur. La com­plexité des contenus Web joue également un rôle : les processus de tâches de calcul intensif demandent lo­gi­que­ment plus de res­sources 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 cor­res­pon­dant à vos besoins en termes de res­sources, les pannes sont toujours probables. Ces pannes ou erreurs peuvent être en­traî­nées par une coupure de courant ou un autre problème technique dans le data center de l’hébergeur. 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 fonc­tion­ne­ment 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 tech­niques via une meilleure ré­par­ti­tion des charges et un système de répliques per­met­tant d’éviter la perte de données.

Quelles sont les fonctions avancées d’un serveur Web ?

Même si la trans­mis­sion de contenus Web est la mission prin­ci­pale des logiciels de serveurs Web, de nombreux pro­grammes proposent des fonctions sup­plé­men­taires :

Fonction sup­plé­men­taire du serveur Web
Sécurité Chif­fre­ment des com­mu­ni­ca­tions entre le serveur Web et le client Web via HTTPS
Au­then­ti­fi­ca­tion uti­li­sa­teur Au­then­ti­fi­ca­tion HTTP pour res­treindre l’accès à certaines parties d’une ap­pli­ca­tion Web
Re­di­rec­tion Re­di­rec­tion d’une requête de document à l’aide d’un moteur de réé­cri­ture (rewrite engine)
Caching Mise en cache de documents dy­na­miques pour répondre plus ra­pi­de­ment aux requêtes et éviter la surcharge du serveur Web
At­tri­bu­tion de cookies Envoi et trai­te­ment des cookies HTTP

Un hébergeur peut être mis en relation avec d’autres pro­grammes que des logiciels de serveur Web. Un client FTP peut par exemple servir au char­ge­ment de données ou en tant que base de données de serveur pour des contenus dy­na­miques (pour lesquels les pro­fes­sion­nels utilisent en général dif­fé­rents matériels sup­plé­men­taires). Par ailleurs, on trouve de nom­breuses formes de serveurs variées pour des buts d’uti­li­sa­tion dif­fé­rents, par exemple un serveur email, un serveur de jeu ou encore un serveur proxy.

Quelle dif­fé­rence entre serveur Web et hé­ber­ge­ment Web ?

Quels rôles jouent les serveurs Web dans l’hé­ber­ge­ment Web ? Et qu’est-ce que l’hé­ber­ge­ment Web exac­te­ment ? Un serveur Web re­pré­sente par dé­fi­ni­tion une com­po­sante fon­da­men­tale d’un hé­ber­ge­ment Web. La dis­tinc­tion entre les deux n’est toutefois pas toujours facile, notamment pour les plus novices. Ce guide vous permettra de dis­tin­guer ces deux notions.

L’hé­ber­ge­ment Web se ca­rac­té­rise par le stockage et la mise à dis­po­ni­bi­lité de contenus Web. Les données d’un site Web sont déposées sur un espace Web défini. Il s’agit en quelque sorte d’un espace de stockage sur 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 dis­po­nibles (comme un site Internet par exemple).

Un hébergeur ou hôte, c’est-à-dire un or­di­na­teur de serveur Web, ainsi que l’espace Web cor­res­pon­dant s’obtient par le biais d’un hébergeur Web. De nombreux four­nis­seurs de services Internet tels que IONOS font office d’hé­ber­geurs Web. Si vous vous êtes décidé pour un hé­ber­ge­ment autonome lors du choix du four­nis­seur de service d’hé­ber­ge­ment Web, vous devrez le con­fi­gu­rer par vous-même. Pour cela, vous aurez besoin d’un programme de serveur Web.

Quels sont les meilleurs logiciels de serveur Web gratuits ?

Il existe de nombreux pro­grammes per­met­tant de con­fi­gu­rer un serveur Web. La plupart sont dis­po­nibles gra­tui­te­ment en té­lé­char­ge­ment sur Internet. Le serveur Web utilisé doit évi­dem­ment être com­pa­tible avec le système d’ex­ploi­ta­tion 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 re­pré­sente une exception, car il ne fonc­tionne que sous Windows.

Voici une brève pré­sen­ta­tion des pro­grammes d’ad­mi­nis­tra­tion de serveurs Web les plus utilisés.

Serveur HTTP Apache

Le serveur HTTP Apache est con­ti­nuel­le­ment développé et amélioré grâce à sa base open source. Ce programme modulaire fonc­tionne aussi bien avec tous les systèmes d’ex­ploi­ta­tion, c’est le serveur Web le plus utilisé. Il est très adapté aux contenus Web dy­na­miques : on peut en effet intégrer du langage script PHP sans problème. Grâce à l’interface CGI, Apache peut exécuter d’autres pro­grammes.

Il est possible de con­tour­ner l’ins­tal­la­tion d’un serveur Web Apache, qui est assez com­pli­quée, en utilisant un ensemble de logiciels XAMPP. De tels ensembles de pro­grammes sim­pli­fient en effet fortement l’ins­tal­la­tion. Ils com­por­tent, en dehors d’Apache, des logiciels de gestion de base de données et de langages script.

Apache Tomcat

Il s’agit d’un programme de serveur open source basé sur un en­vi­ron­ne­ment 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 con­nec­teur 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 tra­vail­ler plus ra­pi­de­ment. Ces dernières années, NGINX a beaucoup gagné en po­pu­la­rité.

Microsoft IIS

Le programme Microsoft Internet In­for­ma­tion Service (IIS) cor­res­pond à un ensemble de logiciels dans lequel on trouve aussi un serveur Web (programme). Au­pa­ra­vant, IIS était un élément intégré système de serveur Windows. Depuis, le programme peut être installé ul­té­rieu­re­ment et in­dé­pen­dam­ment, si besoin, sur quelques systèmes d’ex­ploi­ta­tion Windows. Le fait que l’on ne puisse utiliser IIS que sur des serveurs basés sous Windows est peu sur­pre­nant, mais joue en sa défaveur.

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 en­tre­prises. Le serveur Web Litespeed se ca­rac­té­rise surtout pour sa rapidité de trans­mis­sion de données. Celle-ci est d’autant plus élevée dans la version pro­fes­sion­nelle.

Note

L’ad­mi­nis­tra­tion des pro­grammes de serveurs HTTP s’effectue gé­né­ra­le­ment à distance, depuis un autre or­di­na­teur. L’uti­li­sa­tion d’un logiciel de gestion à distance rend cette tâche par­ti­cu­liè­re­ment con­for­table. Avec Plesk, l’un des outils les plus connus pour l’ad­mi­nis­tra­tion à distance, il est possible de gérer un serveur Web aussi bien depuis un système Linux ou Unix que depuis un or­di­na­teur Windows. Vous pouvez ainsi, par exemple, piloter un serveur Linux depuis un PC Windows à domicile, et in­ver­se­ment.

Comment choisir et con­fi­gu­rer un serveur Web ?

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 res­sources d’un serveur chez un four­nis­seur. Si vous n’avez pas ou presque pas de con­nais­sances en ad­mi­nis­tra­tion de serveur Web, des offres telles qu’un hé­ber­ge­ment partagé ou bien un hé­ber­ge­ment Cloud avec in­fo­gé­rance peuvent vous permettre de con­fi­gu­rer un serveur Web per­son­na­lisé.

Au contraire d’un serveur à accès racine (root), avec lequel vous avez tous les droits d’accès mais aussi l’entière res­pon­sa­bi­lité en termes de sécurité du serveur, l’hébergeur d’une solution Cloud avec in­fo­gé­rance prend en charge une grande partie de l’ad­mi­nis­tra­tion de base. Avec une telle solution, les mises à jour de logiciels et de sécurité sont entre autres prises en charge par le four­nis­seur de service, mais vous pouvez tout de même con­fi­gu­rer votre serveur Web selon vos pré­fé­rences. Avec un hé­ber­ge­ment partagé, vous n’avez pas du tout à vous soucier de mettre à jour vos logiciels et vous avez toutefois accès à l’espace Web mis à dis­po­si­tion par le four­nis­seur selon ses pos­si­bi­li­tés de con­fi­gu­ra­tion.

Louer un serveur implique gé­né­ra­le­ment une par­ti­ci­pa­tion fi­nan­cière mensuelle. Le coût dépend de la per­for­mance et de la portée des dif­fé­rents com­po­sants, comme l’ef­fi­ca­cité de l’or­di­na­teur (CPU et RAM), l’espace Web dis­po­nible et le type de mémoire du disque dur (SSD ou HDD). Celui qui veut avoir une certaine flexi­bi­lité dans l’hé­ber­ge­ment de son site Internet devrait opter pour une solution d’hé­ber­ge­ment Cloud. Ici, la per­for­mance de nombreux com­po­sants peut être adaptée à tout moment aux exigences actuelles d’un projet Web quel­conque.

La per­for­mance requise pour les com­po­sants d’hé­ber­ge­ment res­pec­tifs dépend des demandes de votre projet en ligne : les petits blogs ou cartes de visite en ligne ne né­ces­si­tent guère plus d’une offre d’hé­ber­ge­ment de faible per­for­mance. Les plus grands portails en ligne ou sites Internet avec de nombreux contenus à fort volume utilisent beaucoup plus la per­for­mance de certains com­po­sants. De plus, un volume de transfert de données plus élevé est né­ces­saire pour certains types de projets. Pour vous en assurer, vous pouvez réserver un pack avec un forfait de trafic chez la plupart des four­nis­seurs. Cela garantit un échange de données avec une capacité suf­fi­sante.

Lorsque vous avez trouvé le serveur adapté, vous pouvez con­fi­gu­rer 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é.

Comment sécuriser un serveur Web ef­fi­ca­ce­ment ?

Une fois le serveur Web créé et configuré, vous devez veiller à ce que tous les pro­grammes soient à jour. Les versions obsolètes ouvrent la porte aux criminels et aux pirates, et leur per­met­tent dans le pire des cas de prendre le contrôle du serveur. Avec l’hé­ber­ge­ment Cloud avec in­fo­gé­rance, le four­nis­seur Internet s’occupe de toutes les pré­ven­tions liées à la sécurité. Cela vous incombe dans le cas contraire.

Outre l’ac­tua­li­sa­tion des pro­grammes, un pare-feu propose une pro­tec­tion en cas de cy­be­rat­taque. La con­fi­gu­ra­tion d’une zone dé­mi­li­ta­ri­sée (DMZ) est aussi per­ti­nente. De plus, le Framework Fail2ban peut vous protéger d’accès non autorisés.

En tant qu’ad­mi­nis­tra­teur, l’un des principes fon­da­men­taux en matière de sécurité d’un serveur Web consiste à limiter ses fonctions stric­te­ment à ce qui est né­ces­saire. Fermez tous les ports, et laissez les services né­ces­saires fonc­tion­ner. Par ailleurs, l’at­tri­bu­tion de mots de passe sûrs fait partie des mesures de pré­ven­tion fon­da­men­tales 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 ad­mi­nis­tra­teurs les moins ex­pé­ri­men­tés.

Si votre hébergeur ne s’occupe pas com­plè­te­ment de la pro­tec­tion de votre serveur, vous avez besoin d’un certain savoir-faire ainsi qu’une com­pré­hen­sion des bases de l’hé­ber­ge­ment 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 cy­be­rat­taque.

Comment se déroule une requête sur un serveur Web ?

Un serveur Web fonc­tionne 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 na­vi­ga­teur (le client). Voici comment se déroule le processus de char­ge­ment d’une page Web :

  1. Dès que vous lancez une requête, votre na­vi­ga­teur transmet l’adresse Internet à un serveur de noms (ou DNS, pour Domain Name System). Ce composant du système de noms de domaine agit comme un annuaire global du Web. Il convertit le nom de domaine al­pha­nu­mé­rique (par exemple www.ionos.fr) en une adresse IP numérique (comme 217.160.72.6), que le na­vi­ga­teur utilise ensuite pour établir la connexion. Par la suite, le na­vi­ga­teur émet une requête au serveur au sujet des contenus de la page Web en question. Le na­vi­ga­teur Web envoie l’URL de la page Web demandée à l’adresse IP reçue. Il peut ensuite contacter le serveur Web contenant les contenus de la page Web.
  2. Le serveur Web répond à la requête en renvoyant un document de la page Web demandée au na­vi­ga­teur. Par la suite, le na­vi­ga­teur 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 en­tiè­re­ment re­pré­sen­tée dans la fenêtre de votre na­vi­ga­teur. Si vous cliquez sur un lien du site Internet de IONOS, une autre page Web sera demandée par le serveur. C’est ainsi que se déclenche le processus de char­ge­ment d’une page Web.
Conseil

Chez IONOS, vous pouvez louer votre propre serveur Web à des con­di­tions avan­ta­geuses pour une multitude de projets (serveur Web, serveur de mes­sa­ge­rie ou ap­pli­ca­tion per­son­nelle).

Aller au menu principal