?? mod_unique_id.html.ja.euc-jp
字號:
(その箕爬のマイクロ擅 ∴ 10) modulo 65536 で介袋步されます
(この及はいくつかのシステムにある、マイクロ擅の
タイマの布疤ビットが佰なるという啼瑪を豺瘋するために聯ばれました)。
辦罷な急侍灰が欄喇されたとき、蝗脫されるタイムスタンプは
ウェブサ〖バにリクエストが毗緬した箕癸になります。
カウンタは急侍灰が欄喇されるたびに籠裁します
(あふれた眷圭は 0 に提ります)。</p>
<p>カ〖ネルはプロセスをフォ〖クすると、それぞれのプロセスのために
pid を欄喇します。pid は帆り手されることが釣材されています
(pid の猛は驢くの Unix では 16 ビットですが、糠しいシステムでは
32 ビットに橙磨されています)。
ですから、ある鎳刨の箕粗が沸冊すると票じ pid が浩び蝗脫されます。
しかし、辦擅柒に浩蝗脫されなければ、
煌つの猛の辦罷拉は瘦たれます。つまり、叉」はシステムが辦擅粗
に 65536 改のプロセスを彈瓢しないと簿年しています (いくつかの Unix
では 32768 プロセスですが、それですらほとんどあり評ないでしょう)。</p>
<p>部らかの妄統で、票じ箕癸が帆り手されたとしましょう。
つまり、システムの箕紛が陡っていて、もう辦刨冊殿の箕癸になってしまった
(もしくは渴みすぎていたときに、
賴しい箕癸に提したために浩び經丸の箕癸になってしまった) とします。
この眷圭、pid とタイムスタンプが浩蝗脫されることが詞帽に績されます。
カウンタ介袋步脫の簇眶は、この啼瑪の攙閏を緘錦けしようと聯買されています。
塑碰はカウンタの介袋步をするためにランダムな眶機を蝗いたいのですが、
ほとんどのシステムでは詞帽に蝗脫できる眶は痰いことに廟罷してください
(<em>すなわち</em>、rand ()は蝗えません。rand () には seed
を涂える澀妥があり、seed には箕癸を蝗えません。辦擅帽疤では、
その箕癸はすでに帆り手されているからです)。
これは、窗帔な灤忽ではありません。</p>
<p>この灤忽はどのくらい跟蔡があるでしょうか?
ここでは、マシン凡の面の辦つは呵絡で辦擅に 500
リクエストを胺うと簿年します (これを今いている箕爬では屢碰な懼嘎です。
奶撅システムがすることは瑯弄なファイルを艱りだすだけではありませんから)。
それを乖なうために、そのマシンは事乖して丸るクライアントの眶に
炳じた眶の灰プロセスを妥滇します。
しかしながら、柔囪弄に雇えて、辦つの灰プロセスが辦擅に 500
リクエストを胺えるとします。そうすると、(辦擅の籃刨において)
箕癸が票じ箕を帆り手すと、この灰プロセスがカウンタの猛を浩び蝗い、
辦罷拉が蟬れる材墻拉が 1.5% あります。
これは潤撅に柔囪弄な毋で、悸坤腸の猛では、ほとんど彈こりそうにありません。
それでもこれが彈こる材墻拉のあるようなシステムなら、
(プログラムコ〖ドを試礁して)
カウンタを 32 ビットにするのが紊いでしょう。
</p>
<p>サマ〖タイムにより箕紛が≈提される∽ことを丹にしている客が
いるかもしれません。ここで蝗脫される箕粗は UTC であり、
それは≈撅に∽渴むのでここでは啼瑪になりません。x86 懼の Unix
はこの掘鳳を塔たすために努磊な肋年が澀妥かもしれないことに
廟罷してください。マザ〖ボ〖ドの箕紛は UTC になっていて、
戮の箕粗はそこから努磊に輸賴されることを簿年できるように
肋年されなければなりません。そのような眷圭でさえ、NTP
を蝗っているならばリブ〖ト稿にすぐ賴しい UTC の箕粗になるでしょう。</p>
<p><code>UNIQUE_ID</code> 茨董恃眶は 112 ビット (32 ビット IP
アドレス、32 ビット pid, 32 ビットタイムスタンプ、16
ビットカウンタの煌つの寥) をアルファベット <code>[A-Za-z0-9@-]</code>
を脫いて MIME の base64 射規步と票屯の數恕により射規步し、19
の矢機を欄喇することにより侯喇されます。MIME の base64
のアルファベットは悸狠は <code>[A-Za-z0-9+/]</code> ですが、
<code>+</code> と <code>/</code> とは URL
では潑侍な射規步が澀妥なので、あまり司ましくありません。
鏈ての猛はネットワ〖クバイトオ〖ダで射規步されますので、
射規は般ったバイトオ〖ダのア〖キテクチャ粗で孺秤材墻です。
悸狠の射規步の界戎は: タイムスタンプ、IP アドレス、pid,
カウンタです。この界には謄弄がありますが、
アプリケ〖ションは射規を豺老するべきではないことを動拇しておきます。
アプリケ〖ションは射規步された <code>UNIQUE_ID</code>
鏈攣を譬冊弄なト〖クンとして胺うべきです。
<code>UNIQUE_ID</code> は戮の <code>UNIQUE_ID</code>
との霹擦拉を拇べるためだけにのみ蝗脫できます。</p>
<p>この界戎は經丸、貸賂の <code>UNIQUE_ID</code>
のデ〖タベ〖スとの咀仆を看芹することなく射規を恃構することが
材墻になるように聯買しています。
糠しい射規はタイムスタンプを呵介の妥燎として荒すのが司ましく、
それ笆嘲は票じアルファベットとビット墓を蝗うことができます。
タイムスタンプは塑劑弄に籠裁廢誤ですので、
クラスタの鏈てのマシンがリクエストとサ〖バ怠墻を匿賄して、
概い射規步數及を蝗脫するのをやめる<em>フラグ擅</em>があれば澆尸です。
その稿は、リクエストを浩倡し、
糠しい射規を券乖することができるようになります。</p>
<p>叉」はこれが、
この啼瑪に灤する孺秤弄敗竣拉の光い豺瘋恕だと雇えています。
Windows NT のようなマルチスレッドのシステムに橙磨することができますし、
經丸澀妥になればさらに籠やすこともできます。
ID は澀妥に炳じて墓くすることができますので、欄喇された ID
は悸劑懼、痰嘎に銅跟です。また、クラスタのマシン粗の奶慨も禍悸懼澀妥なく
(NTP による票袋のみが澀妥で、これはオ〖バヘッドはあまりありません)、httpd
プロセス粗の奶慨も澀妥ありません (奶慨はカ〖ネルにより充り碰てられた
pid の猛により芭疼の柒に乖なわています)。
さらに嘎られた覺斗布では、ID はさらに沒くすることができますが、
より驢くの攫鼠を簿年する澀妥がでてきます (毋えば、32 ビット
IP アドレスはどのサイトにおいても冊娟な攫鼠ですが、
それの洛わりになる敗竣拉のあるものはありません)。</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_unique_id.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../ja/mod/mod_unique_id.html" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_unique_id.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div><div id="footer">
<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">モジュ〖ル</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">脫胳</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -