avec des variables d'environnement en plus pour essayer de contourner la limitation à un flux en entrée, bonjour le hack
En quoi est-ce un hack ? Pas mal d’outils font ça. Regarde la page man de ton outil préféré, tu verras probablement une section Environment qui te décrira comment passer des variables d’état. Par exemple pour ansible :
ANSIBLE_INVENTORY — Override the default ansible inventory file
ANSIBLE_LIBRARY — Override the default ansible module library path
ANSIBLE_CONFIG — Override the default ansible config file
Many more are available for most options in ansible.cfg
De plus d’autres solutions étaient disponibles, mais les concepteurs de CGI ont décidé d’utiliser les variables d’environnement : c’est probablement qu’ils pensaient que ce n’était pas un hack.
c'est pas pour rien qu'on a fini par le remplacer par d'autres outils.
On l’a pas remplacé pour la limitation des 3 flux, puisque même en FastCGI la logique est la même : un flux d’entrée pour la requête, un flux de sortie pour la réponse. On l’a remplacé pour éviter un fork() + execve() + rechargement complet du script (pas grave quand le script est un script perl de 30 lignes, plus gênant quand c’est une application Rails) à chaque requête. Et pouvoir gérer le nombre de workers (comme le fait php-fpm)
stdio est toujours utilisé dans des application modernes quand c’est intéressant, c’est ce qu’utilise Chrome pour son protocole de Native Messaging par exemple.
[^] # Re: Mon positionnement
Posté par Moonz . En réponse au journal Le libre et l'expérience utilisateur. Évalué à 2. Dernière modification le 13 février 2017 à 08:35.
En quoi est-ce un hack ? Pas mal d’outils font ça. Regarde la page
mande ton outil préféré, tu verras probablement une sectionEnvironmentqui te décrira comment passer des variables d’état. Par exemple pour ansible :De plus d’autres solutions étaient disponibles, mais les concepteurs de CGI ont décidé d’utiliser les variables d’environnement : c’est probablement qu’ils pensaient que ce n’était pas un hack.
On l’a pas remplacé pour la limitation des 3 flux, puisque même en FastCGI la logique est la même : un flux d’entrée pour la requête, un flux de sortie pour la réponse. On l’a remplacé pour éviter un
fork() + execve()+ rechargement complet du script (pas grave quand le script est un script perl de 30 lignes, plus gênant quand c’est une application Rails) à chaque requête. Et pouvoir gérer le nombre de workers (comme le fait php-fpm)stdio est toujours utilisé dans des application modernes quand c’est intéressant, c’est ce qu’utilise Chrome pour son protocole de Native Messaging par exemple.