<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_brotli - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<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">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_brotli</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_brotli.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_brotli.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<div class="outofdate">Cette traduction peut &ecirc;tre p&eacute;rim&eacute;e. V&eacute;rifiez la version
            anglaise pour les changements r&eacute;cents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Compression du contenu via Brotli avant sa livraison au client</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>brotli_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_brotli.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.26 du serveur HTTP Apache</td></tr></table>
<h3>Sommaire</h3>

    <p>Le module <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> fournit le filtre en sortie
    <code>BROTLI_COMPRESS</code> qui permet de compresser un contenu avant sa
    livraison au client en utilisant la biblioth&egrave;que brotli. Ce filtre est
    impl&eacute;ment&eacute; en utilisant la biblioth&egrave;que Brotli que l'on peut trouver &agrave; <a href="https://github.com/google/brotli">https://github.com/google/brotli</a>.</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#recommended">Exemples de configurations</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#enable">Activation de la compression</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxies">Interaction avec les serveurs mandataires</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#precompressed">Servir un contenu pr&eacute;-compress&eacute;</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#brotlialteretag">BrotliAlterETag</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#brotlicompressionmaxinputblock">BrotliCompressionMaxInputBlock</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#brotlicompressionquality">BrotliCompressionQuality</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#brotlicompressionwindow">BrotliCompressionWindow</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#brotlifilternote">BrotliFilterNote</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_brotli">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_brotli">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="../filter.html">Filters</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="recommended">Exemples de configurations <a title="Lien permanent" href="#recommended" class="permalink">&para;</a></h2>
    <div class="warning"><h3>Compression et TLS</h3>
        <p>Certaines applications web sont vuln&eacute;rables &agrave; une attaque de type vol
	d'informations lorsqu'une connexion TLS transmet des donn&eacute;es
	compress&eacute;es. Pour plus d'informations, &eacute;tudiez en d&eacute;tail la famille
	d'attaques "BREACH".</p>
    </div>
    <p>Voici une configuration simple qui compresse des types de contenus
    courants au format texte :</p>

    <div class="example"><h3>Compression de certains types seulement</h3><pre class="prettyprint lang-config">AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript</pre>
</div>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="enable">Activation de la compression <a title="Lien permanent" href="#enable" class="permalink">&para;</a></h2>
    <div class="warning"><h3>Compression et TLS</h3>
        <p>Certaines applications web sont vuln&eacute;rables &agrave; une attaque de type vol
	d'informations lorsqu'une connexion TLS transmet des donn&eacute;es
	compress&eacute;es. Pour plus d'informations, &eacute;tudiez en d&eacute;tail la famille
	d'attaques "BREACH".</p>
    </div>

    <h3 id="output">Compression en sortie</h3>
      <p>La compression est impl&eacute;ment&eacute;e par le <a href="../filter.html">filtre</a> <code>BROTLI_COMPRESS</code>. La
      directive suivante active la compression pour les documents correspondant
      au conteneur dans lequel elle est plac&eacute;e :</p>

      <pre class="prettyprint lang-config">SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli</pre>


      <p>Si vous voulez restreindre la compression &agrave; certains types MIME
      particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Dans l'exemple
      suivant, l'activation de la compression est restreinte aux fichiers html
      de la documentation d'Apache :</p>

      <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
    AddOutputFilterByType BROTLI_COMPRESS text/html
&lt;/Directory&gt;</pre>


      <div class="note"><h3>Note</h3>
        Le filtre <code>BROTLI_COMPRESS</code> est toujours ins&eacute;r&eacute; apr&egrave;s les
	filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les sous-requ&ecirc;tes
	internes.
      </div>
      <div class="note"><h3>Note</h3>
        D&eacute;finie via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, la variable
	d'environnement <code>no-brotli</code> permet de d&eacute;sactiver la
	compression brotli pour une requ&ecirc;te particuli&egrave;re, et ceci m&ecirc;me si elle
	est support&eacute;e par le client.
      </div>

    

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="proxies">Interaction avec les serveurs mandataires <a title="Lien permanent" href="#proxies" class="permalink">&para;</a></h2>

    <p>Le module <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> envoie un en-t&ecirc;te de r&eacute;ponse HTTP
    <code>Vary:Accept-Encoding</code> pour indiquer aux mandataires qu'une
    r&eacute;ponse mise en cache ne doit &ecirc;tre envoy&eacute;e qu'aux clients qui envoient
    l'en-t&ecirc;te de requ&ecirc;te <code>Accept-Encoding</code> appropri&eacute;. Ceci permet
    d'&eacute;viter d'envoyer du contenu compress&eacute; &agrave; un client qui ne sera pas en
    mesure de le d&eacute;compresser.</p>

    <p>Si vous utilisez des exclusions sp&eacute;ciales d&eacute;pendant, par exemple, de
    l'en-t&ecirc;te <code>User-Agent</code>, vous devez faire un ajout manuel &agrave;
    l'en-t&ecirc;te <code>Vary</code> afin d'informer les mandataires des restrictions
    suppl&eacute;mentaires. Par exemple, dans une configuration typique o&ugrave; l'addition
    du filtre <code>BROTLI_COMPRESS</code> d&eacute;pend de l'en-t&ecirc;te <code>User-Agent</code>,
    vous devez ajouter :</p>

    <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>


    <p>Si votre d&eacute;cision d'utiliser la compression ou non d&eacute;pend d'autres
    informations que le contenu d'en-t&ecirc;tes de requ&ecirc;tes (par exemple la version
    HTTP), vous devez affecter la valeur <code>*</code> &agrave; l'en-t&ecirc;te
    <code>Vary</code>. Ceci permet d'&eacute;viter que des mandataires qui le
    supportent n'effectuent une mise en cache int&eacute;grale.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="precompressed">Servir un contenu pr&eacute;-compress&eacute; <a title="Lien permanent" href="#precompressed" class="permalink">&para;</a></h2>

    <p>comme <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> compresse syst&eacute;matiquement un contenu
    pour chaque requ&ecirc;te le concernant, il est possible d'obtenir un gain en
    performance en pr&eacute;-compressant le contenu et en disant &agrave; mod_brotli de le
    servir sans le recompresser. Pour cela, vous pouvez utiliser une
    configuration du style :</p>

    <pre class="prettyprint lang-config">&lt;IfModule mod_headers.c&gt;
    # Sert des fichiers CSS compress&eacute;s par brotli, s'ils existent
    # et si le client supporte brotli.
    RewriteEngine On
    RewriteCond "%{HTTP:Accept-encoding}" "br"
    RewriteCond "%{LA-U:REQUEST_FILENAME}.br" "-s"
    RewriteRule "^(.*)\.css"              "$1.css.br" [QSA]

    # Sert des fichiers JS compress&eacute;s par brotli, s'ils existent
    # et si le client supporte brotli.
    RewriteCond "%{HTTP:Accept-encoding}" "br"
    RewriteCond "%{LA-U:REQUEST_FILENAME}.br" "-s"
    RewriteRule "^(.*)\.js"               "$1.js.br" [QSA]

    # Sert des types de contenu corrects, et &eacute;vite la double compression.
    RewriteRule "\.css\.br$" "-" [T=text/css,E=no-brotli:1,E=no-gzip:1]
    RewriteRule "\.js\.br$"  "-" [T=text/javascript,E=no-brotli:1,E=no-gzip:1]

    &lt;FilesMatch "(\.js\.br|\.css\.br)$"&gt;
      # Sert un type d'encodage correct.
      Header append Content-Encoding br

      # Force les mandataires &agrave; mettre en cache s&eacute;par&eacute;ment les fichiers css/js
      # compress&eacute;s ou non par brotli.
      Header append Vary Accept-Encoding
    &lt;/FilesMatch&gt;
&lt;/IfModule&gt;</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlialteretag">Directive <span id="BrotliAlterETag">BrotliAlterETag</span> <a title="Lien permanent" href="#brotlialteretag" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Comment l'en-t&ecirc;te de r&eacute;ponse ETag doit &ecirc;tre modifi&eacute; au cours de la
compression</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliAlterETag AddSuffix|NoChange|Remove</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>BrotliAlterETag AddSuffix</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
    <p>La directive <code class="directive">BrotliAlterETag</code> permet d'indiquer
    comment l'en-t&ecirc;te ETag doit &ecirc;tre modifi&eacute; lorsqu'une r&eacute;ponse est compress&eacute;e.</p>
    <dl>
    <dt>AddSuffix</dt>
    <dd><p>Ajoute la m&eacute;thode de compression &agrave; la fin de l'en-t&ecirc;te ETag, ce qui
    implique que les repr&eacute;sentations compress&eacute;es et non compress&eacute;es poss&egrave;deront
    des en-t&ecirc;tes ETag uniques. C'est le comportement par d&eacute;faut depuis la
    version 2.4.0 avec un autre module de compression dynamique,
    mod-deflate. Ce param&egrave;tre permet d'&eacute;viter l'envoi de messages
    "HTTP Not Modified" (304) en r&eacute;ponse aux requ&ecirc;tes conditionnelles pour des
    contenus compress&eacute;s.</p></dd>
    <dt>NoChange</dt>
    <dd><p>Ne modifie pas l'en-t&ecirc;te ETag d'une r&eacute;ponse compress&eacute;e. C'&eacute;tait le
    comportement par d&eacute;faut avant la version 2.4.0 avec un autre module de
    compression dynamique, mod-deflate. Ce param&egrave;tre ne respecte pas la
    propri&eacute;t&eacute; HTTP/1.1 selon laquelle toutes les repr&eacute;sentations d'une m&ecirc;me
    ressource ont des en-t&ecirc;tes ETag uniques.</p></dd>
    <dt>Remove</dt>
    <dd><p>Supprime l'en-t&ecirc;te ETag des r&eacute;ponses compress&eacute;es, ce qui rend
    impossibles certaines requ&ecirc;tes conditionnelles, mais &eacute;vite les inconv&eacute;nients
    des options pr&eacute;c&eacute;dentes.</p></dd>
    </dl>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlicompressionmaxinputblock">Directive <span id="BrotliCompressionMaxInputBlock">BrotliCompressionMaxInputBlock</span> <a title="Lien permanent" href="#brotlicompressionmaxinputblock" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du bloc de donn&eacute;es en entr&eacute;e</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionMaxInputBlock <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>(automatic)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
    <p>La directive <code class="directive">BrotliCompressionMaxInputBlock</code> permet
    de sp&eacute;cifier la taille maximale du bloc de donn&eacute;es en entr&eacute;e entre 16 et 24,
    sachant que plus cette taille sera grande, plus grande sera la quantit&eacute; de
    m&eacute;moire consomm&eacute;e.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlicompressionquality">Directive <span id="BrotliCompressionQuality">BrotliCompressionQuality</span> <a title="Lien permanent" href="#brotlicompressionquality" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Qualit&eacute; de la compression</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionQuality <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>BrotliCompressionQuality 5</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
    <p>La directive <code class="directive">BrotliCompressionQuality</code> permet de
    sp&eacute;cifier la qualit&eacute; de la compression (une valeur entre 0 et
    11). Les valeurs les plus hautes correspondent &agrave; une compression de
    meilleure qualit&eacute; mais plus lente.
  </p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlicompressionwindow">Directive <span id="BrotliCompressionWindow">BrotliCompressionWindow</span> <a title="Lien permanent" href="#brotlicompressionwindow" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille de la fen&ecirc;tre de compression glissante brotli</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionWindow <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>BrotliCompressionWindow 18</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
    <p>La directive <code class="directive">BrotliCompressionWindow</code> permet de
    sp&eacute;cifier la taille de la fen&ecirc;tre de compression glissante brotli (une
    valeur comprise entre 10 et 24). Une taille de fen&ecirc;tre plus grande peut
    am&eacute;liorer la qualit&eacute; de la compression mais consomme d'avantage de m&eacute;moire.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlifilternote">Directive <span id="BrotliFilterNote">BrotliFilterNote</span> <a title="Lien permanent" href="#brotlifilternote" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre le taux de compression dans une note &agrave; des fins de
journalisation</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
    <p>La directive <code class="directive">BrotliFilterNote</code> permet d'indiquer
    qu'une note &agrave; propos du taux de compression doit &ecirc;tre attach&eacute;e &agrave; la
    requ&ecirc;te. L'argument <var>notename</var> permet de sp&eacute;cifier le nom de la
    note. Vous pouvez utiliser cette note &agrave; des fins de statistiques en ajoutant
    l'information correspondante &agrave; votre <a href="../logs.html#accesslog">access
    log</a>.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">BrotliFilterNote ratio

LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' brotli
CustomLog "logs/brotli_log" brotli</pre>
</div>

    <p>Si vous souhaitez que l'information enregistr&eacute;e dans vos journaux soit
    plus pertinente, vous pouvez renseigner l'argument optionnel <var>type</var>
    afin de sp&eacute;cifier le type de donn&eacute;es &agrave; enregistrer dans la note &agrave;
    journaliser. L'argument <var>type</var> accepte les valeurs suivantes :</p>

    <dl>
      <dt><code>Input</code></dt>
      <dd>Enregistre dans la note le nombre d'octets contenus dans le flux
      d'entr&eacute;e du filtre.</dd>

      <dt><code>Output</code></dt>
      <dd>Enregistre dans la note le nombre d'octets contenus dans le flux
      de sortie du filtre.</dd>

      <dt><code>Ratio</code></dt>
      <dd>Enregistre dans la note le taux de compression (<code>output/input *
      100</code>). Il s'agit de l'option par d&eacute;faut si l'argument
      <var>type</var> est omis.</dd>
    </dl>

    <p>Vous pouvez alors configurer vos journaux de la mani&egrave;re suivante :</p>

    <div class="example"><h3>Journalisation sp&eacute;cifique</h3><pre class="prettyprint lang-config">BrotliFilterNote Input instream
BrotliFilterNote Output outstream
BrotliFilterNote Ratio ratio

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' brotli
CustomLog "logs/brotli_log" brotli</pre>
</div>

<h3>Voir aussi</h3>
<ul>
<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
</ul>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_brotli.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_brotli.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>