Serveur web

serveur informatique utilisant le protocole HTTP

Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes du World Wide Web sur un réseau public (Internet) ou privé (intranet)[1],[2],[3], en utilisant principalement le protocole HTTP.

Serveurs de la Fondation Wikimédia en 2012.
Le premier serveur web de l'histoire, le NeXTcube de Tim Berners-Lee.

Un serveur informatique peut être utilisé à la fois pour servir des ressources du Web et pour faire fonctionner en parallèle d'autres services liés, comme l'envoi de courriers électroniques, l'émission de flux en streaming, le stockage de données dans des bases de données, le transfert de fichiers par FTP[3].

Présentation

modifier

Les serveurs web publics sont reliés à Internet et hébergent des ressources (pages web, images, vidéos, etc.) du Web. Ces ressources peuvent être statiques (servies telle quelles) ou dynamiques (construites à la demande par le serveur).

Certains serveurs sont seulement accessibles sur des réseaux privés (intranets) et hébergent des sites utilisateurs, des documents, ou des logiciels, internes à une entreprise, une administration, etc.

Techniquement il serait possible qu'un même ordinateur remplisse ces deux fonctions, mais c'est rarement le cas pour des raisons de sécurité[réf. nécessaire]. La fonction principale d'un serveur Web est de stocker et délivrer des pages web qui sont généralement rendues en HTML. Le protocole de communication Hypertext Transfer Protocol (HTTP) permet le dialogue via le réseau avec le logiciel client, généralement un navigateur web.

Logiciel de serveurs HTTP

modifier

Les deux termes sont utilisés pour le logiciel car le protocole HTTP a été développé pour le Web, et les pages web sont en pratique toujours servies avec ce protocole. Cependant d'autres ressources du Web comme les fichiers à télécharger ou les flux audio ou vidéo sont parfois servis avec d'autres protocoles, telle que, par exemple, le protocole de transport Temps Réel (Real-time Transport Protocol), ainsi que son pendant sécurisé, le protocole de transport sécurisé Temps Réel (Secure Real-time Transport Protocol).

Exemples de serveur HTTP

modifier
Part des serveurs HTTP dans le monde.
Part des serveurs HTTP dans le monde en janvier 2016.

Part de marché du million de serveurs les plus actifs[4]

CERN httpd est le premier serveur HTTP, inventé en même temps que le World Wide Web, en 1990 au CERN de Genève. Il est rapidement devenu obsolète en raison de l'évolution exponentielle des fonctionnalités du protocole.

Quelques serveurs HTTP :

Part de marché

modifier

Le serveur HTTP le plus utilisé est Apache HTTP Server qui sert environ 55 % des sites web en selon Netcraft[6].

Le serveur HTTP le plus utilisé dans les mille sites les plus actifs est en revanche NGINX avec 38,2 % de parts de marché en 2016 selon w3techs et 53,9 % en [4]

Historiquement, d'autres serveurs HTTP importants furent CERN httpd, développé par les inventeurs du Web, abandonné le et NCSA HTTPd, développé au NCSA en même temps que NCSA Mosaic, abandonné mi-1994, ainsi que WebObjects.

Il existe aussi des serveurs HTTP qui sont des serveurs d'applications capables de faire serveur HTTP, comme Caudium et GlassFish. À l'inverse, on peut trouver des serveurs HTTP spécialisés dans un service distinct comme : HTTP File Server qui est uniquement destiné au partage de fichiers Le logiciel serveur HTTP ou daemon HTTP est le logiciel prenant en charge les requêtes client-serveur du protocole HTTP développé pour le World Wide Web. Ces logiciels intègrent généralement des modules permettant d'exécuter un langage serveur comme PHP pour générer des pages web dynamiques. Les plus connus sont Apache, NGINX, IIS, et Lighttpd.

Autres logiciels usuels

modifier

Le plus souvent, un serveur Web exécute continuellement d'autres logiciels qui fonctionnent en collaboration avec le logiciel de serveur HTTP. Selon les besoins, certains services gourmands en ressources, comme le serveur de base de données, peuvent être situés sur la même machine ou un serveur spécialisé.

Certaines combinaisons de logiciels de base sont connues sous différents acronymes, notamment celle d'Apache (serveur HTTP) logiciel installé et exécuté sur le serveur web en parallèle de MySQL (serveur de base de données) et le script d'interprétation et d'exécution de PHP (voire PHP-FPM)[7].

Voir en PDF l'introduction « Qu'entend-t-on par serveur HTTP et serveur Web ? » d'Anthony Garcia (2008) - IBISC[source insuffisante] :

Il existe aussi la distribution de Microsoft nommée IIS pour « Internet Information Services » qui comprend plusieurs services : HTTP, FTP, SMTP et NNTP.

Problématiques

modifier

Équilibrage de charge

modifier

L’équilibrage de charge des serveurs web, ou répartition de charge des serveurs Web, regroupe l’ensemble des mécanismes utilisés pour distribuer les requêtes sur de multiples serveurs Web. Cette pratique est devenue indispensable depuis l’explosion du trafic du Web qui a pour conséquence un accroissement important de la charge demandé au serveur. Cela a entraîné une évolution des architectures, destinée à apporter plus d'extensibilité, de disponibilité et de performances.

Références

modifier
  1. « Qu’est-ce qu’un serveur Web ? Quels logiciels utiliser ? », sur IONOS.fr, (consulté le ).
  2. Alain Mathieu et Dominique Lerond, « Serveur web - Définition », sur mosaique-info.fr (consulté le ).
  3. a et b Pierre Alexis, Hugues Bersini et Gilles Degols, Apprendre la programmation web avec Python & Django : Principes et bonnes pratiques pour les sites web dynamiques, Paris, Eyrolles, , 368 p. (ISBN 978-2-212-67515-3, lire en ligne), p. 9
  4. a et b (en) « Usage of web servers broken down by ranking » (consulté le ).
  5. (en) « BusyBox HTTP Daemon (httpd) », OpenWrt.
  6. (en) « January 2013 Web Server Survey », Netcraft, 7 janvier 2013.
  7. Anthony Garcia, Apache, (lire en ligne [PDF])

Annexes

modifier

Articles connexes

modifier