- Une conception saine : en application directe de la philosophie UNIX, ashd est découpé en plusieurs programmes qui font une seule chose, mais le font bien
- La sécurité : comme chaque processus ne fait qu'une seule chose, il est facile de restreindre ses droits au minimum dont il a vraiment besoin
- Une configuration simple et sensée : chaque programme ayant une responsabilité limitée, il est facile de le configurer (les options en ligne de commande suffisent généralement)
- La persistance : les processus sont persistants et peuvent ainsi garder des données de session en mémoire ou conserver des connexions vers des backends.
Ashd est composé des modules suivants :
- htparser, pour écouter les connexions TCP et parler en HTTP avec les clients
- dirplex, pour servir des fichiers depuis un répertoire (la réponse est déléguée à sendfile)
- patplex, pour les règles de gestion virtuelle
- sendfile, pour répondre aux clients avec un fichier et gérer les entêtes HTTP associés (content-type, last-modified, etc.)
- callcgi, pour appeler des scripts CGI
- userplex, pour servir les répertoires des utilisateurs à la /~user/ (ce programme est lancé avec l'utilisateur en question, ce qui évite les problèmes que l'on peut avoir avec apache qui tourne en www-data)...