mirror of
https://github.com/apache/httpd.git
synced 2025-08-13 14:40:20 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1852290 13f79535-47bb-0310-9956-ffa450edef68
199 lines
9.3 KiB
Plaintext
199 lines
9.3 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision: 1852223 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- Reviewed by : Vincent Deffontaines -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_xml2enc.xml.meta">
|
|
|
|
<name>mod_xml2enc</name>
|
|
<description>Support avancé de l'internationalisation et des jeux de
|
|
caractères pour les modules de filtrage basés sur libxml2</description>
|
|
<status>Base</status>
|
|
<sourcefile>mod_xml2enc.c</sourcefile>
|
|
<identifier>xml2enc_module</identifier>
|
|
<compatibility>Disponible depuis la version 2.4 du serveur HTTP Apache.
|
|
Disponible en tant que module tiers dans les versions 2.2.x</compatibility>
|
|
|
|
<summary>
|
|
<p>Ce module fournit un support avancé de l'internationalisation
|
|
pour les modules de filtrage supportant les balises (markup-aware)
|
|
comme <module>mod_proxy_html</module>. Il est capable de détecter
|
|
automatiquement l'encodage des données en entrée et de s'assurer
|
|
qu'elle sont traitées correctement par l'interpréteur <a
|
|
href="http://xmlsoft.org/">libxml2</a>, y compris la conversion en
|
|
Unicode (UTF-8) si nécessaire. Il peut aussi convertir les données
|
|
dans l'encodage de votre choix après le traitement des balises, et
|
|
s'assurera que le <var>jeu de caractères</var> approprié sera défini
|
|
dans l'en-tête HTTP <var>Content-Type</var>.</p>
|
|
</summary>
|
|
|
|
<section id="usage"><title>Utilisation</title>
|
|
<p>Il existe deux scénarios d'utilisation : le cas des modules
|
|
programmés pour travailler avec mod_xml2enc ; et les autres :</p>
|
|
<dl>
|
|
<dt>Modules de filtrages programmés pour mod_xml2enc</dt><dd>
|
|
<p>Les modules comme <module>mod_proxy_html</module> versions 3.1 et
|
|
supérieures utilisent la fonction optionnelle
|
|
<code>xml2enc_charset</code> pour déterminer la valeur de l'argument
|
|
"jeu de caractères" à transmettre à l'interpréteur libxml2, et
|
|
disposent de la fonction optionnelle <code>xml2enc_filter</code>
|
|
pour effectuer un encodage ultérieur éventuel. L'utilisation de
|
|
mod_xml2enc avec un module préprogrammé à cet effet ne nécessite
|
|
aucune configuration : ce dernier configurera mod_xml2enc pour vous
|
|
(sachant que vous pouvez tout de même le personnaliser via les
|
|
directives de configuration ci-dessous).</p>
|
|
</dd>
|
|
<dt>Modules de filtrages non programmés pour mod_xml2enc</dt><dd>
|
|
<p>Pour utiliser mod_xml2enc avec un module basé sur libxml2 qui n'a
|
|
pas été explicitement programmé pour mod_xml2enc, vous devrez
|
|
configurer la chaîne de filtrage vous-même. Ainsi, pour utiliser
|
|
mod_xml2enc avec un filtre <strong>foo</strong> fourni par un module
|
|
<strong>mod_foo</strong> et pour
|
|
améliorer le support i18n de ce dernier avec HTML et XML, vous
|
|
pouvez utiliser les directives suivantes :</p>
|
|
<pre><code>
|
|
FilterProvider iconv xml2enc Content-Type $text/html
|
|
FilterProvider iconv xml2enc Content-Type $xml
|
|
FilterProvider markup foo Content-Type $text/html
|
|
FilterProvider markup foo Content-Type $xml
|
|
FilterChain iconv markup
|
|
</code></pre>
|
|
<p><strong>mod_foo</strong> supportera alors tout jeu de caractère supporté soit par
|
|
libxml2, soit par apr_xlate/iconv, soit par les deux.</p>
|
|
</dd></dl>
|
|
</section>
|
|
|
|
<section id="api"><title>API de programmation</title>
|
|
<p>Les programmeurs de modules de filtrage basés sur libxml2 sont
|
|
encouragés à les préprogrammer pour mod_xml2enc, afin de fournir un
|
|
support i18n solide aux utilisateurs sans avoir à réinventer la
|
|
roue. L'API de programmation est décrite dans
|
|
<var>mod_xml2enc.h</var>, et <module>mod_proxy_html</module> est un
|
|
exemple de son utilisation.</p>
|
|
</section>
|
|
|
|
<section id="sniffing"><title>Détection et encodage</title>
|
|
<p>A la différence de <module>mod_charset_lite</module>, mod_xml2enc
|
|
est conçu pour travailler avec des données dont l'encodage ne peut
|
|
pas être connu, et donc configuré, à l'avance. Il utilise donc les
|
|
techniques de 'reniflage' suivantes pour détecter le type d'encodage
|
|
des données HTTP :</p>
|
|
<ol>
|
|
<li>Si l'en-tête HTTP <var>Content-Type</var> contient un
|
|
paramètre <var>charset</var>, c'est ce dernier qui sera utilisé.</li>
|
|
<li>Si les données commancent par une balise XML concernant
|
|
l'ordre des octets (BOM) ou par une déclaration d'encodage XML,
|
|
c'est celle-ci qui sera utilisée.</li>
|
|
<li>Si un type d'encodage est déclaré dans un élément HTML
|
|
<code><META></code>, c'est ce dernier qui sera utilisé.</li>
|
|
<li>Si aucun des éléments précédents n'est trouvé, c'est la
|
|
valeur par défaut définie par la directive
|
|
<directive>xml2EncDefault</directive> qui sera utilisée.</li>
|
|
</ol>
|
|
<p>Les conditions sont testées dans cet ordre . Dès qu'une règle
|
|
s'applique, elle est utilisée et la détection est terminée.</p>
|
|
</section>
|
|
|
|
<section id="output"><title>Codage en sortie</title>
|
|
<p><a href="http://xmlsoft.org/">libxml2</a> utilise toujours UTF-8
|
|
(Unicode) en interne, et les modules de filtrage basés sur libxml2
|
|
utiliseront cet encodage en sortie par défaut. mod_xml2enc peut modifier
|
|
l'encodage en sortie via l'API, mais il n'y a actuellement aucun moyen de le
|
|
configurer directement.</p>
|
|
<p>La modification de l'encodage en sortie ne devrait (du moins en théorie)
|
|
jamais être nécessaire, et est même déconseillée à cause de la charge de
|
|
traitement supplémentaire imposée au serveur par une conversion non
|
|
nécessaire.</p>
|
|
</section>
|
|
|
|
<section id="alias"><title>Codages non supportés</title>
|
|
<p>Si vous travaillez avec des encodages non supportés par aucune des
|
|
méthodes de conversion disponibles sur votre plateforme, vous pouvez
|
|
tout de même leur associer un alias vers un code supporté via la
|
|
directive <directive>xml2EncAlias</directive>.</p>
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
<name>xml2EncDefault</name>
|
|
<description>Définit un encodage par défaut à utiliser lorsqu'aucune
|
|
information ne peut être <a href="#sniffing">automatiquement détectée</a></description>
|
|
<syntax>xml2EncDefault <var>nom</var></syntax>
|
|
<contextlist><context>server config</context>
|
|
<context>virtual host</context><context>directory</context>
|
|
<context>.htaccess</context></contextlist>
|
|
<override>All</override>
|
|
|
|
<usage>
|
|
<p>Si vous traitez des données dont l'encodage est connu, mais ne
|
|
contenant aucune information à propos de ce dernier, vous pouvez
|
|
définir une valeur par défaut afin d'aider mod_xml2enc à traiter
|
|
correctement les données. Par exemple, pour définir la valeur par
|
|
défaut Latin1 (<var>iso-8859-1</var>) specifiée dans HTTP/1.0,
|
|
utilisez :</p>
|
|
<highlight language="config">
|
|
xml2EncDefault iso-8859-1
|
|
</highlight>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>xml2EncAlias</name>
|
|
<description>Définit des alias pour les valeurs d'encodage</description>
|
|
<syntax>xml2EncAlias <var>jeu-de-caractères alias [alias ...]</var></syntax>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>Cette directive de niveau serveur permet de définir un ou
|
|
plusieurs alias pour un encodage. Elle permet au support d'encodage de
|
|
libxml2 de traiter en interne des encodages non reconnus par libxml2
|
|
en utilisant la table de conversion pour un encodage reconnu. Elle
|
|
permet d'atteindre deux objectifs : supporter des jeux (ou noms) de
|
|
caractères non reconnus par libxml2 ou iconv, et éviter une
|
|
conversion pour un encodage lorsque cela n'est pas nécessaire.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>xml2StartParse</name>
|
|
<description>Indique à l'interpréteur à partir de quelle balise il doit
|
|
commencer son traitement.</description>
|
|
<syntax>xml2StartParse <var>élément [élément ...]</var></syntax>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
<context>directory</context><context>.htaccess</context></contextlist>
|
|
<override>All</override>
|
|
|
|
<usage>
|
|
<p>Cette directive permet de spécifier à partir de quelle balise,
|
|
parmi les éléments spécifiés, l'interpréteur de balise doit
|
|
commencer son traitement. Ccei permet de contourner le problème des
|
|
serveurs d'arrière-plan qui insèrent des éléments non conformes en
|
|
début de données, ce qui a pour effet de perturber l'interpréteur (<a
|
|
href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/"
|
|
>voir un exemple ici</a>).</p>
|
|
<p>Elle ne doit être utilisée ni pour les documents XML, ni pour les
|
|
documents HTML correctement formatés.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|
|
|