Blame docs/manual/mod/mod_ext_filter.html.fr.utf8

Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
Packit 90a5c9
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
Packit 90a5c9
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
              This file is generated from xml source: DO NOT EDIT
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
      -->
Packit 90a5c9
<title>mod_ext_filter - Serveur HTTP Apache Version 2.4</title>
Packit 90a5c9
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
Packit 90a5c9
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
Packit 90a5c9
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
Packit 90a5c9
<script src="../style/scripts/prettify.min.js" type="text/javascript">
Packit 90a5c9
</script>
Packit 90a5c9
Packit 90a5c9
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
Packit 90a5c9
<body>
Packit 90a5c9
Packit 90a5c9

Modules | Directives | FAQ | Glossaire | Plan du site

Packit 90a5c9

Serveur HTTP Apache Version 2.4

Packit 90a5c9
Packit 90a5c9
<-
Packit 90a5c9
Packit 90a5c9
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
Packit 90a5c9
Packit 90a5c9

Module Apache mod_ext_filter

Packit 90a5c9
Packit 90a5c9

Langues Disponibles:  en  |

Packit 90a5c9
 fr  |
Packit 90a5c9
 ja  |
Packit 90a5c9
 ko 

Packit 90a5c9
Packit 90a5c9
Description:Fait traiter le corps de la réponse par un programme
Packit 90a5c9
externe avant de l'envoyer au client
Packit 90a5c9
Statut:Extension
Packit 90a5c9
Identificateur de Module:ext_filter_module
Packit 90a5c9
Fichier Source:mod_ext_filter.c
Packit 90a5c9

Sommaire

Packit 90a5c9
Packit 90a5c9
    

mod_ext_filter représente un modèle de

Packit 90a5c9
    programmation simple et bien connu pour les filtres. Avec ce module, tout programme
Packit 90a5c9
    qui lit l'entrée standard stdin et écrit sur la sortie standard
Packit 90a5c9
    stdout (autrement dit une commande filtre de style Unix) peut
Packit 90a5c9
    servir de filtre pour Apache. Ce mécanisme de filtrage est beaucoup
Packit 90a5c9
    plus lent qu'un filtre spécialement écrit pour
Packit 90a5c9
    l'API d'Apache et faisant partie intégrante du processus du serveur
Packit 90a5c9
    Apache, mais il présente les avantages suivants :

Packit 90a5c9
Packit 90a5c9
    
    Packit 90a5c9
          
  • le modèle de programmation est beaucoup plus simple
  • Packit 90a5c9
    Packit 90a5c9
          
  • tout langage de script ou de programmation peut être utilisé,
  • Packit 90a5c9
          pourvu qu'il permette au programme de lire l'entrée standard et
    Packit 90a5c9
          d'écrire sur la sortie standard.
    Packit 90a5c9
    Packit 90a5c9
          
  • on peut utiliser des programmes existants comme filtres Apache
  • Packit 90a5c9
          sans modification.
    Packit 90a5c9
        
    Packit 90a5c9
    Packit 90a5c9
        

    Même dans le cas où le niveau de performance est insuffisant pour

    Packit 90a5c9
        une utilisation en production, on peut utiliser
    Packit 90a5c9
        mod_ext_filter comme prototype d'environnement pour
    Packit 90a5c9
        les filtres.

    Packit 90a5c9
    Packit 90a5c9
    Packit 90a5c9
    Support Apache!

    Sujets

    Packit 90a5c9
      Packit 90a5c9
    • Exemples
    • Packit 90a5c9

      Directives

      Packit 90a5c9
        Packit 90a5c9
      • ExtFilterDefine
      • Packit 90a5c9
      • ExtFilterOptions
      • Packit 90a5c9
        Packit 90a5c9

        Traitement des bugs

        Voir aussi

        Packit 90a5c9
          Packit 90a5c9
        • Filtres
        • Packit 90a5c9
        • Commentaires
        • Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9

          Exemples

          Packit 90a5c9
          Packit 90a5c9
              

          Générer du HTML à partir d'un autre type de

          Packit 90a5c9
              contenu
          Packit 90a5c9
          Packit 90a5c9
                
          # la directive de mod_ext_filter définissant un filtre
          Packit 90a5c9
          # permettant de mettre des fichiers text/c au format HTML en
          Packit 90a5c9
          # utilisant le programme externe /usr/bin/enscript, le type du
          Packit 90a5c9
          # fichier résultant étant défini à text/html
          Packit 90a5c9
          ExtFilterDefine c-to-html mode=output \
          Packit 90a5c9
              intype=text/c outtype=text/html \
          Packit 90a5c9
              cmd="/usr/bin/enscript --color -w html -Ec -o -"
          Packit 90a5c9
          Packit 90a5c9
          <Directory "/export/home/trawick/apacheinst/htdocs/c">
          Packit 90a5c9
              # directive de base permettant de traiter la sortie avec le
          Packit 90a5c9
              # nouveau filtre
          Packit 90a5c9
              SetOutputFilter c-to-html
          Packit 90a5c9
          Packit 90a5c9
              # directive de mod_mime définissant le type des fichiers dont
          Packit 90a5c9
              # le nom possède l'extension .c à text/c
          Packit 90a5c9
              AddType text/c .c
          Packit 90a5c9
          </Directory>
          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              

          Implémentation d'un filtre de codage de

          Packit 90a5c9
              contenu
          Packit 90a5c9
                

          Note : cet exemple avec gzip n'est fourni qu'à titre

          Packit 90a5c9
                d'illustration. Veuillez vous reporter à la documentation de
          Packit 90a5c9
                mod_deflate pour un exemple d'implémentation plus
          Packit 90a5c9
                pratique.

          Packit 90a5c9
          Packit 90a5c9
                
          # la directive de mod_ext_filter qui définit le filtre externe
          Packit 90a5c9
          ExtFilterDefine gzip mode=output cmd=/bin/gzip
          Packit 90a5c9
          Packit 90a5c9
          <Location "/gzipped">
          Packit 90a5c9
          Packit 90a5c9
              # directive de base permettant de traiter la sortie avec le
          Packit 90a5c9
            # filtre gzip
          Packit 90a5c9
              SetOutputFilter gzip
          Packit 90a5c9
          Packit 90a5c9
              # la directive de mod_headers permettant d'ajouter le champ
          Packit 90a5c9
            # d'en-tête "Content-Encoding: gzip"
          Packit 90a5c9
              Header set Content-Encoding gzip
          Packit 90a5c9
          </Location>
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              

          Ralentissement du serveur

          Packit 90a5c9
                
          # directive de mod_ext_filter définissant un filtre qui fait
          Packit 90a5c9
          # passer tous les flux en sortie par la commande cat ; cat ne
          Packit 90a5c9
          # modifie rien ; elle ne fait que compliquer le cheminement des
          Packit 90a5c9
          # flux et consommer des ressources supplémentaires
          Packit 90a5c9
                 ExtFilterDefine slowdown mode=output cmd=/bin/cat \
          Packit 90a5c9
          ExtFilterDefine slowdown mode=output cmd=/bin/cat \
          Packit 90a5c9
              preservescontentlength
          Packit 90a5c9
          Packit 90a5c9
          <Location "/">
          Packit 90a5c9
              # directive de base permettant de traiter plusieurs fois la
          Packit 90a5c9
              # sortie avec le filtre slowdown
          Packit 90a5c9
              #
          Packit 90a5c9
              SetOutputFilter slowdown;slowdown;slowdown
          Packit 90a5c9
          </Location>
          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              

          Utilisation de sed pour remplacer du texte dans la

          Packit 90a5c9
              réponse
          Packit 90a5c9
          Packit 90a5c9
                
          # directive de mod_ext_filter définissant un filtre qui
          Packit 90a5c9
          # remplace du texte dans la réponse
          Packit 90a5c9
          #
          Packit 90a5c9
          ExtFilterDefine fixtext mode=output intype=text/html \
          Packit 90a5c9
              cmd="/bin/sed s/verdana/arial/g"
          Packit 90a5c9
          Packit 90a5c9
          <Location "/">
          Packit 90a5c9
              # directive de base permettant de traiter la sortie avec le
          Packit 90a5c9
              # filtre fixtext
          Packit 90a5c9
              SetOutputFilter fixtext
          Packit 90a5c9
          </Location>
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9

          Vous pouvez aussi utiliser mod_substitute pour

          Packit 90a5c9
          effectuer le même traitement sans avoir à invoquer un programme
          Packit 90a5c9
          externe.

          Packit 90a5c9
                
          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              

          Tracer un autre filtre

          Packit 90a5c9
                
          # Trace les données lues et écrites par mod_deflate pour un
          Packit 90a5c9
          # client particulier (IP 192.168.1.31) qui a des problèmes de
          Packit 90a5c9
          # compression.
          Packit 90a5c9
          # Ce premier filtre va tracer ce qui entre dans mod_deflate.
          Packit 90a5c9
          ExtFilterDefine tracebefore \
          Packit 90a5c9
              cmd="/bin/tracefilter.pl /tmp/tracebefore" \
          Packit 90a5c9
              EnableEnv=trace_this_client
          Packit 90a5c9
          Packit 90a5c9
          # Ce second filtre va tracer ce qui sort de mod_deflate.
          Packit 90a5c9
          # Notez que sans le paramètre ftype, le type de filtre par
          Packit 90a5c9
          # défaut AP_FTYPE_RESOURCE placerait le filtre *avant*
          Packit 90a5c9
          # mod_deflate dans la chaîne de filtrage. Le fait d'affecter
          Packit 90a5c9
          # à ce paramètre une valeur numérique sensiblement supérieure à
          Packit 90a5c9
          # AP_FTYPE_CONTENT_SET permet de s'assurer que le filtre sera
          Packit 90a5c9
          # placé après mod_deflate.
          Packit 90a5c9
          ExtFilterDefine traceafter \
          Packit 90a5c9
              cmd="/bin/tracefilter.pl /tmp/traceafter" \
          Packit 90a5c9
              EnableEnv=trace_this_client ftype=21
          Packit 90a5c9
          Packit 90a5c9
          <Directory "/usr/local/docs">
          Packit 90a5c9
              SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
          Packit 90a5c9
              SetOutputFilter tracebefore;deflate;traceafter
          Packit 90a5c9
          </Directory>
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
                

          Voici le filtre qui trace les données :

          #!/usr/local/bin/perl -w
          Packit 90a5c9
          use strict;
          Packit 90a5c9
          Packit 90a5c9
          open(SAVE, ">$ARGV[0]")
          Packit 90a5c9
              or die "can't open $ARGV[0]: $?";
          Packit 90a5c9
          Packit 90a5c9
          while (<STDIN>) {
          Packit 90a5c9
              print SAVE $_;
          Packit 90a5c9
              print $_;
          Packit 90a5c9
          }
          Packit 90a5c9
          Packit 90a5c9
          close(SAVE);
          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Description:Définit un filtre externe
          Packit 90a5c9
          Syntaxe:ExtFilterDefine nom_filtre paramètres
          Packit 90a5c9
          Contexte:configuration globale
          Packit 90a5c9
          Statut:Extension
          Packit 90a5c9
          Module:mod_ext_filter
          Packit 90a5c9
          Packit 90a5c9
              

          La directive ExtFilterDefine

          Packit 90a5c9
              définit les caractéristiques d'un filtre externe, et en particulier
          Packit 90a5c9
              le programme à exécuter ainsi que ses arguments.

          Packit 90a5c9
          Packit 90a5c9
              

          nom_filtre spécifie le nom du filtre en cours de

          Packit 90a5c9
              définition. On peut ensuite utiliser ce nom pour référencer le
          Packit 90a5c9
              filtre dans les directives SetOutputFilter. Il doit être unique parmi les noms de
          Packit 90a5c9
              tous les filtres enregistrés. Pour le moment, aucune erreur
          Packit 90a5c9
              n'est signalée par l'API register-filter, si bien qu'un problème de
          Packit 90a5c9
              noms dupliqués ne sera pas porté à la connaissance de
          Packit 90a5c9
              l'utilisateur.

          Packit 90a5c9
          Packit 90a5c9
              

          Viennent ensuite un ou plusieurs paramètres dans un ordre

          Packit 90a5c9
              indéfini, qui permettent de spécifier la commande externe à exécuter
          Packit 90a5c9
              et certaines autres caractéristiques. Le seul paramètre obligatoire
          Packit 90a5c9
              est cmd=. Voici la liste de ces paramètres :

          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
                
          cmd=ligne de commande
          Packit 90a5c9
          Packit 90a5c9
                
          Le mot-clé cmd= spécifie la commande
          Packit 90a5c9
                externe à exécuter. Si la ligne de commande comporte des
          Packit 90a5c9
                arguments, elle doit être entourée de guillemets (par exemple
          Packit 90a5c9
                cmd="/bin/mypgm arg1
          Packit 90a5c9
                arg2"). Les guillemets habituels du shell ne
          Packit 90a5c9
                sont pas nécessaires car le programme est lancé directement, sans
          Packit 90a5c9
                passer par le shell. Les arguments du programme doivent être
          Packit 90a5c9
                séparés par des espaces. Si un argument contient des espaces, ces
          Packit 90a5c9
                derniers doivent être échappés par un antislash '\'. Si un
          Packit 90a5c9
                argument contient des antislashes '\', ces derniers doivent être
          Packit 90a5c9
                eux-mêmes échappés par un antislash '\'. Outre les variables
          Packit 90a5c9
                d'environnement CGI standards, les variables DOCUMENT_URI,
          Packit 90a5c9
                DOCUMENT_PATH_INFO, et QUERY_STRING_UNESCAPED seront également
          Packit 90a5c9
                définies pour le programme.
          Packit 90a5c9
          Packit 90a5c9
                
          mode=mode
          Packit 90a5c9
          Packit 90a5c9
                
          Utilisez mode=output (valeur par défaut) pour les
          Packit 90a5c9
                filtres qui traitent les réponses. Utilisez
          Packit 90a5c9
                mode=input pour les filtres qui traitent les
          Packit 90a5c9
                requêtes. mode=input est disponible depuis la version
          Packit 90a5c9
                2.1 d'Apache.
          Packit 90a5c9
          Packit 90a5c9
                
          intype=type MIME
          Packit 90a5c9
          Packit 90a5c9
                
          Ce paramètre spécifie le type de médium Internet
          Packit 90a5c9
                (c'est à dire le type MIME) des documents qui doivent être
          Packit 90a5c9
                filtrés. Par défaut, tous les documents sont filtrés. Aucun des
          Packit 90a5c9
                documents possédant un type MIME autre que celui spécifié par
          Packit 90a5c9
                intype= ne sera filtré.
          Packit 90a5c9
          Packit 90a5c9
                
          outtype=type MIME
          Packit 90a5c9
          Packit 90a5c9
                
          Ce paramètre spécifie le type de médium Internet
          Packit 90a5c9
                (c'est à dire le type MIME) des documents filtrés. Il intervient
          Packit 90a5c9
                lorsque les opérations de filtrage comprennent une modification du
          Packit 90a5c9
                type MIME. Par défaut, le type MIME n'est pas modifié.
          Packit 90a5c9
          Packit 90a5c9
                
          PreservesContentLength
          Packit 90a5c9
          Packit 90a5c9
                
          Le mot-clé PreservesContentLength indique que le
          Packit 90a5c9
                filtre doit conserver la taille du contenu. Ce n'est pas le
          Packit 90a5c9
                comportement par défaut, car la plupart des filtres modifient cette
          Packit 90a5c9
                taille. Ce mot-clé doit être spécifié si le filtre ne doit pas
          Packit 90a5c9
                modifier la taille du contenu.
          Packit 90a5c9
          Packit 90a5c9
                
          ftype=type de filtre
          Packit 90a5c9
          Packit 90a5c9
                
          Ce paramètre spécifie une valeur numérique
          Packit 90a5c9
                représentant le type de filtre sous lequel le filtre doit être
          Packit 90a5c9
                enregistré. La valeur par défaut, AP_FTYPE_RESOURCE, convient dans
          Packit 90a5c9
                la plupart des situations. Ce paramètre devient nécessaire dès lors
          Packit 90a5c9
                que le filtre doit opérer à un autre point de la chaîne de filtrage
          Packit 90a5c9
                que les filtres de ressources.
          Packit 90a5c9
                Voir les définitions de AP_FTYPE_...
          Packit 90a5c9
                dans util_filter.h pour trouver une valeur appropriée.
          Packit 90a5c9
          Packit 90a5c9
                
          disableenv=env
          Packit 90a5c9
          Packit 90a5c9
                
          Ce paramètre spécifie le nom d'une variable
          Packit 90a5c9
                d'environnement qui, si elle est définie, va désactiver le
          Packit 90a5c9
                filtre.
          Packit 90a5c9
          Packit 90a5c9
                
          enableenv=env
          Packit 90a5c9
          Packit 90a5c9
                
          Ce paramètre spécifie le nom d'une variable
          Packit 90a5c9
                d'environnement qui doit être définie pour que le filtre ne soit
          Packit 90a5c9
                pas désactivé.
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Description:Configure les options de
          Packit 90a5c9
          mod_ext_filter
          Packit 90a5c9
          Syntaxe:ExtFilterOptions option [option] ...
          Packit 90a5c9
          Défaut:ExtFilterOptions NoLogStderr
          Packit 90a5c9
          Contexte:répertoire
          Packit 90a5c9
          Statut:Extension
          Packit 90a5c9
          Module:mod_ext_filter
          Packit 90a5c9
          Packit 90a5c9
              

          La directive ExtFilterOptions

          Packit 90a5c9
              spécifie des options de traitement particulières pour
          Packit 90a5c9
              mod_ext_filter. Les arguments option
          Packit 90a5c9
              peuvent contenir :

          Packit 90a5c9
          Packit 90a5c9
              
          Packit 90a5c9
                
          LogStderr | NoLogStderr
          Packit 90a5c9
          Packit 90a5c9
                
          Le mot-clé LogStderr indique que les messages
          Packit 90a5c9
                envoyés par le programme de filtrage externe sur la sortie
          Packit 90a5c9
                d'erreurs standard doivent être enregistrés dans le journal des
          Packit 90a5c9
                erreurs d'Apache. NoLogStderr inverse ce
          Packit 90a5c9
                comportement.
          Packit 90a5c9
          Packit 90a5c9
                
          Onfail=[abort|remove]
          Packit 90a5c9
                
          Indique la marche à suivre si le programme de filtrage externe
          Packit 90a5c9
                ne peut pas démarrer. Avec abort (la valeur par
          Packit 90a5c9
                défaut), le traitement de la requête sera abandonné. Avec remove, le
          Packit 90a5c9
                filtre est supprimé, et le traitement de la requête se poursuit
          Packit 90a5c9
                sans lui.
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              
          ExtFilterOptions LogStderr
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
              

          Les messages envoyés vers la sortie d'erreurs standard du filtre

          Packit 90a5c9
              seront enregistrés dans le journal des erreurs d'Apache.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9

          Langues Disponibles:  en  |

          Packit 90a5c9
           fr  |
          Packit 90a5c9
           ja  |
          Packit 90a5c9
           ko 

          Packit 90a5c9
          top

          Commentaires

          Notice:
          This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
          Packit 90a5c9
          <script type="text/javascript">
          Packit 90a5c9
          var comments_shortname = 'httpd';
          Packit 90a5c9
          var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_ext_filter.html';
          Packit 90a5c9
          (function(w, d) {
          Packit 90a5c9
              if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
          Packit 90a5c9
                  d.write('
          <\/div>');
          Packit 90a5c9
                  var s = d.createElement('script');
          Packit 90a5c9
                  s.type = 'text/javascript';
          Packit 90a5c9
                  s.async = true;
          Packit 90a5c9
                  s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
          Packit 90a5c9
                  (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
          Packit 90a5c9
              }
          Packit 90a5c9
              else { 
          Packit 90a5c9
                  d.write('
          Comments are disabled for this page at the moment.<\/div>');
          Packit 90a5c9
              }
          Packit 90a5c9
          })(window, document);
          Packit 90a5c9
          //--></script>
          Packit 90a5c9

          Copyright 2018 The Apache Software Foundation.
          Autorisé sous Apache License, Version 2.0.

          Packit 90a5c9

          Modules | Directives | FAQ | Glossaire | Plan du site

          <script type="text/javascript">
          Packit 90a5c9
          if (typeof(prettyPrint) !== 'undefined') {
          Packit 90a5c9
              prettyPrint();
          Packit 90a5c9
          }
          Packit 90a5c9
          //--></script>
          Packit 90a5c9
          </body></html>