Introduction

Un serveur HTTP est un logiciel qui, lorsqu'il est lancé sur une machine reliée à Internet, permet à tout utilisateur d'Internet de se connecter sur cette machine avec un client HTTP tel que Netscape Navigatoir ou NCSA Mosaic et d'obtenir des informations, en particulier des documents HTML.

On parle de serveur HTTP parce que leur rôle est de répondre à des requêtes et d'envoyer des pages d'information en utilisante le protocole HTTP (HyperText Transfer Protocol). Néanmoins, ces serveurs font souvent beaucoup plus que celà... à tel point qu'on pourrait se demander si l'appellation "serveur HTTP" n'est pas un peu réductrice. On parlera également de "Serveur WWW" ou de "HTTPd", le 'd' signifiant ici daemon, terme utilisé dans la terminologie UNIX pour désigner un programme qui attend en permanence des évènements (ici des requêtes HTTP) pour entreprendre des actions (ici envoyer des documents par HTTP). 

Bénéfices

Les bénéfices que vous tirerez de la mise en oeuvre de votre propre serveur HTTP sont multipes. Tout d'abord, si votre organisation ne dispose encore d'aucun serveur web, vous devez choisir entre faire héberger votre service web chez un prestataire ou alors installer votre propre serveur web.

Par ailleurs, même si votre organisation dispose déjà d'u ou plusieurs webs, il peut quand même être intéressant de disposer de votre propre serveur, par exemple pour avoir un contrôle direct sur vos programmes CGI ou sur les statistiques de connexions.

Dans tous les cas, les possibilités offertes à l'administrateur d'un serveur WWW sont bien plus larges que celles de la personne qui se contente d'écrire quelques pages HTML et de les placer sur un serveur géré par quelqu'un d'autre. Aussi, si vous en avez le temps et les moyens, vous devriez probablement commencer à envisager la possibilité d'administrer votre propre serveur...

 

Quel serveur choisir?

A ce jour, vous avez le choix entre plus de 40 serveurs HTTP dont un certain nombre sont gratuits. En voici une liste non exhaustive (mais assez complète quand même). En sélectionnant un nom dans la liste vous accéderez au service WWW dédié à ce serveur.

Plusieurs critères sont à prendre en compte lors du choix de votre serveur:

  • Exigences marérielles et logicielles
    • Disponibilité sur votre plate-forme serveur
    • Disponibilité pour votre système d'exploitation
  • Niveau de support Technique
  • Prix
  • Capacité à offirir des services Web différents pour des adresses IP différentes
  • Enregistrement de journal (Logs)
    • Compatibilité avec syslog (UNIX) ou EventLog (Windows NT)
    • Utilisation du format commun CERN/NCSA
    • Archivage/cyclage automatique des fichiers jounral
    • Posssibilité de personnalisé les enregistrements de hits
    • Possibilité de logguer dans plusieurs fichiers différents
    • Possibilité de générer des enregistrements spéciaux dans les fichier de log(commentaires...)
    • Possibilité pour les scripts CGI de créer leurs propres entrées de log
    • Logs de mesure de performances
  • Richesse du protocole
    • Réponse automatique à "If-Modified-Since"
    • Selection de fichiers basé sur le header "Accept"
    • Changer d'action basé sur le header "User-Agent"
    • Répondre avec des documents différents basé sur des headers clients tels que "Accept", "User-Agent" et "URL"
    • Inclusions faites par le serveur
    • Inclusions faites d'après commentaires HTML (sans utilisation de CGI)
    • Inclusion automatique de headers HTTP pour les documents non HTML (sans utilisation de CGI)
    • Accès au variables d'état du serveur depuis CGI
    • Possibility d'envoyer des documents ou images dynamiques (Server Push)
  • Sécurité
    • Possibilité d'exiger un mot de passe
    • Support de SSL
    • Support de S-HTTP
    • Restriction à certains noms de domaines
    • Restrictions à certaines adresses IP
    • Accès à certaines hierarchies selon l'adresse IP
    • Groupes d'utilisateurs configurables
    • Possibilité de changer la liste de contrôles d'accès sans redémarrer le serveur
    • Restrictions d'accès à certains fichiers
    • Encryptage et authentification par clé publique
  • Autres fonctions
    • Outils de configuration graphiques
    • Outils de maintenance graphiques
    • Maintenance à distance pendant que le serveur tourne
    • Outils de mesure de performances temps-réel
    • Implmente d'autres protocoles (ftp, gopher...)
    • Arborescence automatique
    • Gestion des répertoires utilisateurs
    • Inclue un moteur de recherche
    • Peut servir de serveur proxy
    • Peut servir de serveur proxy avec cache