C'est en remarquant la montée de la popularité d'un serveur web libre sympathique de chez acme.com (thttpd utilisé par quelques FAI américains et français, dont club-internet, je crois) que je me suis égaré sur une page citant des serveurs web pour le moins exotiques : un en Javascript avec un interpreteur Js-cli, un autre en shell (bon ça tout le monde l'a fait ok), et un en Postscript (là il faut aimer). Bref, aucun ne peut ouvrir une socket, évidemment, et se base donc sur inetd.
Et puis il y a micro_httpd, écrit en C, basé aussi sur inetd.
Je l'ai modifié hier pour le booster en lui retirant un sale appel à system(), puis je l'ai installé sur mon portable. il supporte allègrement les 2 ou 3 requêtes par seconde en pointe lorsque toute la famille veut accéder à mon portable (ce qui n'arrive pour ainsi dire jamais).
Bref, micro_httpd est idéal pour l'apprentissage, et pour le fun,
à lire et à customizer (couleurs, 404, page d'index et que sais-je encore..) pour le plaisir de faire joujou.
la version originale:
http://www.acme.com/software/micro_httpd/
le patch (vite-fait) pour virer l'appel à system():
http://brouits.free.fr/share/patches/micro_httpd-nosed.diff
--
petite précision :
Vu que je suis naté, sur 192.168.0.0, il m'a fallu modifier la config de tous les navigateurs des autres PC pour leur interdire d'utiliser le proxy du FAI pour aller sur ce portable. (il m'a fallu un certain temps avant de comprendre pourquoi diantre cela ne fonctionnait pas au début)
# Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # scandir()
Posté par Ben (site web personnel) . Évalué à 3.
Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie
# En PHP :)
Posté par andeus . Évalué à 3.
Il supporte une partie du protocol 1.1 (Keep-Alive, etc...) , il fait proxy, et est à peu près modulable. Comme PHP5 peut ouvrir une socket de type serveur, il fonctionne en standalone.
C'est environ 2 fois plus lent que Apache 1 sur des fichiers statiques, mais la performance n'était pas le but non plus (enfin il y a moyen d'améliorer je pense).
J'ai fait une "abstract class" de gestion de serveur multiprocessus dont je me sert pour ce serveur. Je me suis inspiré de Apache pour la configuration (MaxClients, Max|MinSpareServers, etc...).
C'est assez amusant à faire, pour la gestion des processus, le protocol HTTP, etc...
Je suis en déménagement en ce moment, donc pas de site ni de démo, mais je peu envoyer un petit tgz si quelqu'un est intéressé.
Il y a encore des trucs à faire, genre un module CGI, ou encore le support SSL.
[^] # Re: En PHP :)
Posté par Cali_Mero . Évalué à 3.
Pour revenir sur le sujet des serveurs http en php, il y a aussi nanoweb (qui est connu et assez mature) :
une vieille news dlfp : http://linuxfr.org/2002/10/29/10142.html
le site : http://nanoweb.si.kz/
# lighttpd
Posté par The Fab . Évalué à 3.
Il est à la fois très léger, rapide (plus qu'apache notamment sur les fichiers statiques) et il supporte des fonctionnalités avancées (fastcgi...). Enfin, il est très simple à configurer.
L'essayer c'est l'adopter.
[^] # Re: lighttpd
Posté par kd . Évalué à 2.
http://www.fefe.de/fnord/
C'est vraiment très petit, et c'est très rapide.
# IOCCC
Posté par Moonz . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.