mod_unique_id.html.fr revision e881a4190c2ee92f38e32a394029c047fb885753
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<?xml version="1.0" encoding="ISO-8859-1"?>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
c38e2a97e43fc69b22f6b03c6d2f60e3bd705f89sf XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd This file is generated from xml source: DO NOT EDIT
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
031b91a62d25106ae69d4693475c79618dd5e884fielding -->
031b91a62d25106ae69d4693475c79618dd5e884fielding<title>mod_unique_id - Serveur Apache HTTP Version 2.5</title>
031b91a62d25106ae69d4693475c79618dd5e884fielding<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
031b91a62d25106ae69d4693475c79618dd5e884fielding<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
031b91a62d25106ae69d4693475c79618dd5e884fielding<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" />
031b91a62d25106ae69d4693475c79618dd5e884fielding<script src="/style/scripts/prettify.min.js" type="text/javascript">
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd</script>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<link href="/images/favicon.ico" rel="shortcut icon" /></head>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<body>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<div id="page-header">
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<p class="apache">Serveur Apache HTTP Version 2.5</p>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<img alt="" src="/images/feather.gif" /></div>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<div id="path">
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<div id="page-content">
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<div id="preamble"><h1>Module Apache mod_unique_id</h1>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<div class="toplang">
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<p><span>Langues Disponibles: </span><a href="/en/mod/mod_unique_id.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<a href="/fr/mod/mod_unique_id.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<a href="/ja/mod/mod_unique_id.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<a href="/ko/mod/mod_unique_id.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd</div>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fournit une variable d'environnement contenant un
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecndidentifiant unique pour chaque requ�te</td></tr>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>unique_id_module</td></tr>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_unique_id.c</td></tr></table>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<h3>Sommaire</h3>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Ce module fournit un identifiant dont l'unicit� est garantie
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd parmi "toutes" les requ�tes sous des conditions tr�s pr�cises.
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd L'identifiant unique le sera aussi parmi plusieurs machines
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd appartenant � un cluster correctement configur�. L'identifiant est
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd affect� � la variable d'environnement <code>UNIQUE_ID</code> pour
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd chaque requ�te. Les identifiants uniques sont utiles pour diverses
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd raisons dont la nature se situe au del� de la port�e de ce
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd document.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd</div>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<div id="quickview"><h3 class="directives">Directives</h3>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<p>Ce module ne fournit aucune directive.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<h3>Sujets</h3>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<ul id="topics">
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<li><img alt="" src="/images/down.gif" /> <a href="#theory">Th�orie</a></li>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<div class="section">
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd<h2><a name="theory" id="theory">Th�orie</a></h2>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Tout d'abord un bref rappel de la mani�re dont le serveur Apache
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd fonctionne sous Unix (cette fonctionnalit� n'�tant actuellement pas
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd support�e sous Windows NT). Sous Unix, Apache cr�e plusieurs
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd processus enfants, ces derniers traitant les requ�tes une par une.
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd Chaque processus enfant peut traiter plusieurs requ�tes pendant sa
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd dur�e de vie. Dans le cadre de cette discussion, nous supposerons
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd que les diff�rents processus enfants ne s'�changent pas de donn�es
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd entre eux. Nous nous r�f�rerons aux processus enfants sous le nom de
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <dfn>processus httpd</dfn>.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Votre site web est r�parti entre une ou plusieurs machines dont
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd vous �tes l'administrateur, et que nous nommerons cluster de
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd serveurs. Chaque serveur peut ex�cuter plusieurs instances d'Apache.
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd L'ensemble de ces derni�res sera consid�r� comme "l'Univers", et
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd sous certaines hypoth�ses, nous montrerons qu'il est possible dans
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd cet univers, de g�n�rer des identifiants uniques pour chaque
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd requ�te, sans pour autant n�cessiter une communication importante
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd entre les diff�rents serveurs du cluster.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Les machines de votre cluster doivent satisfaire ces conditions
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd (m�me si le cluster ne comporte qu'une machine, vous devez
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd synchroniser son horloge avec NTP) :</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <ul>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <li>Les temps des machines sont synchronis�s via NTP ou tout autre
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd protocole de synchronisation du temps en r�seau.</li>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <li>Les nom d'h�tes des machines sont tous diff�rents, de fa�on �
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd ce que le module puisse recevoir une adresse IP diff�rente pour
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd chaque machine du cluster en effectuant une recherche sur le nom
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd d'h�te.</li>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd </ul>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Au vu des caract�ristiques actuelles du syst�me d'exploitation,
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd nous supposerons que les pids (identifiants processus) sont cod�s
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd sur 32 bits. Si le syst�me d'exploitation utilise plus de 32 bits
cd4620da15c004edd01caaa4716fd9cfd818b4c7nd pour un pid, la correction est triviale mais doit �tre effectu�e
cd4620da15c004edd01caaa4716fd9cfd818b4c7nd dans le code.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Ces hypoth�ses pos�es, � un instant donn�, nous pouvons
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd distinguer tout processus httpd sur toute machine du cluster de tous
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd les autres processus httpd. Pour ce faire, il suffit d'utiliser
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd l'adresse IP de la machine et le pid du processus httpd. Un
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd processus httpd peut traiter plusieurs requ�tes simultan�ment si
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd vous utilisez un module MPM multi-thread�. Pour identifier les
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd threads, Apache httpd utilise en interne un index de threads. Ainsi,
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd afin de g�n�rer des identifiants uniques pour chaque requ�te, il
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd suffit d'effectuer une distinction en fonction du temps.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Pour d�terminer le temps, nous utiliserons un rep�re de temps
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd Unix (les secondes �coul�es depuis le 1er janvier 1970 UTC), et un
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd compteur 16 bits. La pr�cision du rep�re de temps n'�tant que d'une
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd seconde, le compteur va repr�senter 65536 valeurs par seconde. Le
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd quadruplet <em>(adresse IP, pid, rep�re de temps, compteur)</em> est
44eb0fcf4ae95f4f77e97350fccf0e3a9d0b098bnd en mesure de distinguer 65536 requ�tes par seconde par processus
44eb0fcf4ae95f4f77e97350fccf0e3a9d0b098bnd httpd. Il peut cependant arriver que le m�me pid soit r�utilis� au
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd cours du temps, et le compteur est l� pour pallier cet
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd inconv�nient.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Lorsqu'un processus enfant httpd est cr��, le compteur est
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd initialis� avec (nombre de microsecondes actuel divis� par 10)
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd modulo 65536 (cette formule a �t� choisie pour �liminer certains
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd probl�me de variance avec les bits de poids faibles du compteur de
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd microsecondes sur certains syst�mes). Lorsqu'un identifiant unique
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd est g�n�r�, le rep�re de temps utilis� est le moment o� la requ�te
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd arrive sur le serveur web. Le compteur est incr�ment� � chaque
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd cr�ation d'identifiant (et peut repasser � 0 lorsqu'il a atteint sa
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd valeur maximale).</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Le noyau g�n�re un pid pour chaque processus lors de sa cr�ation,
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd et le compteur de pid est r�initialis� � une certaine valeur
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd lorsqu'il a atteint sa valeur maximale (les pid sont cod�s sur 16
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd bits sous de nombreux Unixes, mais les syst�mes les plus r�cents les
03e9ead3ab8fd4116e73d6b57133de1d333bd6fbnd ont �tendus � 32 bits). La m�me valeur de pid pourra donc �tre
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd r�utilis�e au cours du temps. Cependant, tant qu'elle n'est pas
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd r�utilis�e dans la m�me seconde, elle ne remet pas en cause
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd l'unicit� de notre quadruplet. Nous supposerons donc que le syst�me
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd ne cr�era pas plus de 65536 processus en une seconde (ce nombre peut
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd �tre de 32768 sous certains Unixes, mais m�me dans ce cas, on est en
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd g�n�ral loin de cette situation).</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>Il est possible que le temps se r�p�te pour une raison
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd quelconque.
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd Supposons par exemple que l'horloge syst�me soit retard�e et repasse
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd par un temps pass� (ou bien, comme elle avan�ait, elle a �t� remise
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd � l'heure, et elle repasse par un temps futur). Dans ce cas, il peut
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd �tre facilement d�montr� que le couple pid/rep�re de temps peut �tre
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd r�utilis�. Le choix de la formule d'initialisation du compteur a
0305003f05034ceb3fb958c8d8f29fdd3a1c48fckess �t� effectu� dans l'intention de pallier ce probl�me. Notez qu'un
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd nombre vraiment al�atoire serait souhaitable pour initialiser le
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd compteur, mais il n'existe pas de tel nombre directement lisible sur
0305003f05034ceb3fb958c8d8f29fdd3a1c48fckess la plupart des syst�mes (c'est � dire que vous ne pouvez pas
0305003f05034ceb3fb958c8d8f29fdd3a1c48fckess utiliser rand() car vous devez d�clencher le g�n�rateur avec une
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd valeur unique, et vous ne pouvez pas utiliser le temps � cet effet
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd car celui-ci , au moins � la seconde pr�s, s'est r�p�t�). Il ne
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd s'agit donc pas d'une d�fense parfaite.</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>M�me si elle n'est pas parfaite, quel est le degr� d'efficacit�
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd de cette d�fense ? Supposons
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd qu'une de vos machines serve au plus 500 requ�tes par seconde (ce
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd qui constitue une limite sup�rieure tr�s raisonnable au moment o� ce
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd document est �crit, car les syst�mes ne se contentent en g�n�ral pas
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd de d�biter des fichiers statiques). Pour y parvenir, un certain nombre
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd de processus enfants sera n�cessaire, qui d�pendra du nombre de
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd clients simultan�s pr�sents. Mais soyons pessimiste et supposons
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd qu'un seul processus enfant soit capable de servir 500 requ�tes par
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd secondes.
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd Il existe 1000 valeurs de d�marrage possibles du compteur pour
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd lesquelles deux s�quences de 500 requ�tes puissent se recouvrir. Il
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd y a donc 1,5% de chance que le processus enfant r�p�te une valeur de
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd compteur si le temps se r�p�te (avec une r�solution d'une seconde),
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd et l'unicit� sera alors remise en cause. C'est cependant un exemple
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd tr�s pessimiste, et avec les valeurs du monde r�el, il y a bien
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd moins de chances que cela ne se produise. Si vous estimez que ceci a
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd tout de m�me quelque chances de se produire sur votre syst�me, vous
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd pouvez migrer vers un compteur � 32 bits (en modifiant le code).</p>
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd <p>On pourrait supposer que ceci a plus de chance de se produire
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd lors du passage � l'heure d'hiver o� l'horloge est "retard�e". Cela
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd ne constitue cependant pas un probl�me car les temps pris en compte
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd ici sont des temps UTC, qui vont "toujours" de l'avant. Notez que
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd les Unixes � base de processeur x86 peuvent n�cessiter une
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd configuration particuli�re pour que ceci soit vrai -- il doivent
62664c6703ed9e8d8f4f8e4c5f5e893559ecefecnd �tre configur�s pour assumer que l'horloge syst�me est en UTC et
compenser de mani�re appropri�e. Mais m�me dans ce cas, si vous
utilisez NTP, votre temps UTC sera correct peu apr�s le
red�marrage.</p>
<p>La variable d'environnement <code>UNIQUE_ID</code> est construite
par codage du quadruplet de 144 bits (adresse IP sur 32 bits, pid
sur 32 bits, rep�re de temps sur 32 bits, compteur 16 bits et index
de threads sur 32 bits) en
utilisant l'alphabet <code>[A-Za-z0-9@-]</code> d'une mani�re
similaire � celle du codage MIME base64, et sa valeur se pr�sente
sous la forme d'une cha�ne de 24 caract�res. L'alphabet MIME base64
est en fait <code>[A-Za-z0-9+/]</code> ; cependant, les caract�res
<code>+</code> et <code>/</code> n�cessitent un codage particulier
dans les URLs, ce qui rend leur utilisation peu commode. Toutes les
valeurs sont cod�es dans l'ordre des octets d'une adresse r�seau de
fa�on � ce
que le codage soit comparable entre des architectures o� l'ordre des
octets est diff�rent. L'ordre r�el de codage est : rep�re de temps,
adresse IP, pid, compteur. Cet ordre de codage poss�de un but
pr�cis, mais il faut souligner que les applications n'ont aucun
int�r�t � entrer dans les d�tails de ce codage. Les applications
doivent se contenter de traiter la variable <code>UNIQUE_ID</code>
comme un symbole opaque, qui peut �tre compar� avec d'autres
<code>UNIQUE_ID</code>s en ne testant que leur �galit�.</p>
<p>L'ordre a �t� choisi de fa�on � ce qu'il soit possible de
modifier le codage dans le futur sans avoir � se pr�occuper de
conflits �ventuels avec une base de donn�es de
<code>UNIQUE_ID</code>s existante. Les nouveaux codages doivent
conserver le rep�re de temps comme premier �l�ment, et pour le
reste, utiliser les m�me alphabet et longueur en bits. Comme les
rep�res de temps constituent essentiellement un s�quence croissante,
il suffit que toutes les machines du cluster arr�tent de traiter
toute requ�te dans la m�me <em>seconde rep�re</em>, et n'utilisent
alors plus l'ancien format de codage. Ensuite, elles peuvent
reprendre le traitement des requ�tes en utilisant les nouveaux
codages.</p>
<p>Nous pensons que ceci apporte une solution relativement portable
au probl�me. Les
identifiants g�n�r�s poss�dent une dur�e de vie pratiquement infinie
car les identifiants futurs pourront �tre allong�s selon les
besoins. Pratiquement aucune communication n'est requise entre les
machines du cluster (seule la synchronisation NTP est requise, ce
qui repr�sente une charge tr�s faible), et aucune communication
entre les processus httpd n'est n�cessaire (la communication est
implicite et incluse dans le pid assign� par le noyau). Dans des
situations tr�s sp�cifiques, l'identifiant peut �tre raccourci, mais
dans ce cas, d'avantage d'informations doivent �tre admises (par
exemple, les 32 bits de l'adresse IP sont excessifs pour la plupart
des sites, mais il n'existe pas de valeur de remplacement portable
plus courte).</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/mod/mod_unique_id.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="/fr/mod/mod_unique_id.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
<a href="/ja/mod/mod_unique_id.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="/ko/mod/mod_unique_id.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_unique_id.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2015 The Apache Software Foundation.<br />Autoris� sous <a href="http://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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>