亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mod_unique_id.html.en

?? Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
?? EN
字號:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_unique_id - Apache HTTP Server</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 href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Module mod_unique_id</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_unique_id.html" title="English">&nbsp;en&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>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Provides an environment variable with a unique
identifier for each request</td></tr>
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Module營dentifier:</a></th><td>unique_id_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Source燜ile:</a></th><td>mod_unique_id.c</td></tr></table>
<h3>Summary</h3>


    <p>This module provides a magic token for each request which is
    guaranteed to be unique across "all" requests under very
    specific conditions. The unique identifier is even unique
    across multiple machines in a properly configured cluster of
    machines. The environment variable <code>UNIQUE_ID</code> is
    set to the identifier for each request. Unique identifiers are
    useful for various reasons which are beyond the scope of this
    document.</p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<p>This module provides no directives.</p>
<h3>Topics</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#theory">Theory</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="theory" id="theory">Theory</a></h2>
    

    <p>First a brief recap of how the Apache server works on Unix
    machines. This feature currently isn't supported on Windows NT.
    On Unix machines, Apache creates several children, the children
    process requests one at a time. Each child can serve multiple
    requests in its lifetime. For the purpose of this discussion,
    the children don't share any data with each other. We'll refer
    to the children as <dfn>httpd processes</dfn>.</p>

    <p>Your website has one or more machines under your
    administrative control, together we'll call them a cluster of
    machines. Each machine can possibly run multiple instances of
    Apache. All of these collectively are considered "the
    universe", and with certain assumptions we'll show that in this
    universe we can generate unique identifiers for each request,
    without extensive communication between machines in the
    cluster.</p>

    <p>The machines in your cluster should satisfy these
    requirements. (Even if you have only one machine you should
    synchronize its clock with NTP.)</p>

    <ul>
      <li>The machines' times are synchronized via NTP or other
      network time protocol.</li>

      <li>The machines' hostnames all differ, such that the module
      can do a hostname lookup on the hostname and receive a
      different IP address for each machine in the cluster.</li>
    </ul>

    <p>As far as operating system assumptions go, we assume that
    pids (process ids) fit in 32-bits. If the operating system uses
    more than 32-bits for a pid, the fix is trivial but must be
    performed in the code.</p>

    <p>Given those assumptions, at a single point in time we can
    identify any httpd process on any machine in the cluster from
    all other httpd processes. The machine's IP address and the pid
    of the httpd process are sufficient to do this. So in order to
    generate unique identifiers for requests we need only
    distinguish between different points in time.</p>

    <p>To distinguish time we will use a Unix timestamp (seconds
    since January 1, 1970 UTC), and a 16-bit counter. The timestamp
    has only one second granularity, so the counter is used to
    represent up to 65536 values during a single second. The
    quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is
    sufficient to enumerate 65536 requests per second per httpd
    process. There are issues however with pid reuse over time, and
    the counter is used to alleviate this issue.</p>

    <p>When an httpd child is created, the counter is initialized
    with ( current microseconds divided by 10 ) modulo 65536 (this
    formula was chosen to eliminate some variance problems with the
    low order bits of the microsecond timers on some systems). When
    a unique identifier is generated, the time stamp used is the
    time the request arrived at the web server. The counter is
    incremented every time an identifier is generated (and allowed
    to roll over).</p>

    <p>The kernel generates a pid for each process as it forks the
    process, and pids are allowed to roll over (they're 16-bits on
    many Unixes, but newer systems have expanded to 32-bits). So
    over time the same pid will be reused. However unless it is
    reused within the same second, it does not destroy the
    uniqueness of our quadruple. That is, we assume the system does
    not spawn 65536 processes in a one second interval (it may even
    be 32768 processes on some Unixes, but even this isn't likely
    to happen).</p>

    <p>Suppose that time repeats itself for some reason. That is,
    suppose that the system's clock is screwed up and it revisits a
    past time (or it is too far forward, is reset correctly, and
    then revisits the future time). In this case we can easily show
    that we can get pid and time stamp reuse. The choice of
    initializer for the counter is intended to help defeat this.
    Note that we really want a random number to initialize the
    counter, but there aren't any readily available numbers on most
    systems (<em>i.e.</em>, you can't use rand() because you need
    to seed the generator, and can't seed it with the time because
    time, at least at one second resolution, has repeated itself).
    This is not a perfect defense.</p>

    <p>How good a defense is it? Suppose that one of your machines
    serves at most 500 requests per second (which is a very
    reasonable upper bound at this writing, because systems
    generally do more than just shovel out static files). To do
    that it will require a number of children which depends on how
    many concurrent clients you have. But we'll be pessimistic and
    suppose that a single child is able to serve 500 requests per
    second. There are 1000 possible starting counter values such
    that two sequences of 500 requests overlap. So there is a 1.5%
    chance that if time (at one second resolution) repeats itself
    this child will repeat a counter value, and uniqueness will be
    broken. This was a very pessimistic example, and with real
    world values it's even less likely to occur. If your system is
    such that it's still likely to occur, then perhaps you should
    make the counter 32 bits (by editing the code).</p>

    <p>You may be concerned about the clock being "set back" during
    summer daylight savings. However this isn't an issue because
    the times used here are UTC, which "always" go forward. Note
    that x86 based Unixes may need proper configuration for this to
    be true -- they should be configured to assume that the
    motherboard clock is on UTC and compensate appropriately. But
    even still, if you're running NTP then your UTC time will be
    correct very shortly after reboot.</p>

    <p>The <code>UNIQUE_ID</code> environment variable is
    constructed by encoding the 112-bit (32-bit IP address, 32 bit
    pid, 32 bit time stamp, 16 bit counter) quadruple using the
    alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
    base64 encoding, producing 19 characters. The MIME base64
    alphabet is actually <code>[A-Za-z0-9+/]</code> however
    <code>+</code> and <code>/</code> need to be specially encoded
    in URLs, which makes them less desirable. All values are
    encoded in network byte ordering so that the encoding is
    comparable across architectures of different byte ordering. The
    actual ordering of the encoding is: time stamp, IP address,
    pid, counter. This ordering has a purpose, but it should be
    emphasized that applications should not dissect the encoding.
    Applications should treat the entire encoded
    <code>UNIQUE_ID</code> as an opaque token, which can be
    compared against other <code>UNIQUE_ID</code>s for equality
    only.</p>

    <p>The ordering was chosen such that it's possible to change
    the encoding in the future without worrying about collision
    with an existing database of <code>UNIQUE_ID</code>s. The new
    encodings should also keep the time stamp as the first element,
    and can otherwise use the same alphabet and bit length. Since
    the time stamps are essentially an increasing sequence, it's
    sufficient to have a <em>flag second</em> in which all machines
    in the cluster stop serving and request, and stop using the old
    encoding format. Afterwards they can resume requests and begin
    issuing the new encodings.</p>

    <p>This we believe is a relatively portable solution to this
    problem. It can be extended to multithreaded systems like
    Windows NT, and can grow with future needs. The identifiers
    generated have essentially an infinite life-time because future
    identifiers can be made longer as required. Essentially no
    communication is required between machines in the cluster (only
    NTP synchronization is required, which is low overhead), and no
    communication between httpd processes is required (the
    communication is implicit in the pid value assigned by the
    kernel). In very specific situations the identifier can be
    shortened, but more information needs to be assumed (for
    example the 32-bit IP address is overkill for any site, but
    there is no portable shorter replacement for it). </p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_unique_id.html" title="English">&nbsp;en&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 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/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
</body></html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷中文字幕一区三区| 91网站在线播放| 成人app在线观看| 欧美吞精做爰啪啪高潮| 欧美国产在线观看| 免费美女久久99| 亚洲欧美精品午睡沙发| 色综合久久天天| 日韩一级片网站| 亚洲视频一二三区| 成人综合婷婷国产精品久久免费| 精品视频在线免费| 亚洲男人的天堂av| 国产成人精品免费看| 欧美电影一区二区三区| 亚洲免费三区一区二区| 成人免费视频一区二区| 精品久久人人做人人爽| 日韩**一区毛片| 欧美日韩国产一二三| 一区二区三区四区国产精品| aaa亚洲精品| 欧美韩日一区二区三区四区| 国产乱码字幕精品高清av| 欧美成人一区二区三区| 亚洲国产欧美日韩另类综合| 91亚洲精华国产精华精华液| 国产精品沙发午睡系列990531| 国产精品 欧美精品| 精品国产91九色蝌蚪| 久久国产精品72免费观看| 日韩精品一区二区三区在线播放 | 欧美日韩中文一区| 综合色天天鬼久久鬼色| 99在线精品视频| 亚洲色图第一区| 91在线云播放| 亚洲日穴在线视频| 91福利精品视频| 首页国产欧美久久| 欧美一级国产精品| 国产综合色在线| 国产精品三级电影| 日本韩国欧美国产| 日韩高清在线电影| 制服丝袜日韩国产| 极品少妇一区二区| 国产精品美女久久久久久久| 99久久精品费精品国产一区二区| 亚洲毛片av在线| 欧美电影影音先锋| 激情五月激情综合网| 国产欧美一区二区精品仙草咪| 波多野结衣亚洲| 一区二区激情视频| 日韩欧美一区在线观看| 国产成人欧美日韩在线电影| 亚洲男女一区二区三区| 欧美成人一区二区三区| 成人动漫一区二区| 天天影视涩香欲综合网| 国产日韩欧美综合在线| 色悠悠亚洲一区二区| 另类小说色综合网站| 亚洲欧美在线aaa| 欧美日韩激情在线| 狠狠狠色丁香婷婷综合激情| 亚洲人成亚洲人成在线观看图片 | 青草av.久久免费一区| 久久精品人人做人人爽人人| 在线亚洲高清视频| 国产一区二区精品在线观看| 亚洲一区二区三区四区中文字幕| 欧美精品一区二区在线播放| 91理论电影在线观看| 精品在线播放免费| 亚洲一区视频在线| 国产精品看片你懂得| 欧美一级久久久| 在线亚洲精品福利网址导航| 国产一区二区免费在线| 亚洲制服丝袜av| 欧美国产精品一区二区| 91精品国产高清一区二区三区蜜臀| 成人激情免费电影网址| 久久国产欧美日韩精品| 亚洲成av人片一区二区| 亚洲欧美在线另类| 中文字幕乱码日本亚洲一区二区 | 国产999精品久久久久久| 性感美女极品91精品| 亚洲国产精品t66y| 久久女同性恋中文字幕| 制服.丝袜.亚洲.中文.综合| 91国产视频在线观看| 国产成人一区在线| 日本午夜一区二区| 亚洲国产另类av| 亚洲自拍偷拍九九九| 亚洲日本va午夜在线电影| 欧美国产日产图区| 国产欧美一区二区三区鸳鸯浴 | 欧美日韩视频不卡| 在线观看中文字幕不卡| 99re8在线精品视频免费播放| 国产精品18久久久久久久久久久久 | 色视频一区二区| 91香蕉视频黄| 99久久国产综合精品女不卡| av资源站一区| 99视频超级精品| 99国产精品视频免费观看| 成人精品免费看| 成人自拍视频在线| 成人av午夜电影| 91在线精品一区二区| 懂色中文一区二区在线播放| 成人精品视频.| 色综合天天综合网国产成人综合天| 97精品超碰一区二区三区| zzijzzij亚洲日本少妇熟睡| 99精品久久免费看蜜臀剧情介绍| 色综合视频在线观看| 欧美三级午夜理伦三级中视频| 欧美日韩一区二区三区不卡| 欧美一卡二卡三卡| 精品剧情在线观看| 国产精品私人影院| 一区二区三区在线免费观看 | 欧美一区二区三区免费大片 | 亚洲大型综合色站| 人妖欧美一区二区| 国产在线播放一区三区四| 成人免费毛片高清视频| 在线观看91精品国产入口| 欧美高清激情brazzers| 亚洲精品一区二区三区精华液| 中文字幕av一区二区三区免费看| 国产精品成人免费在线| 午夜精品福利一区二区三区av | 亚洲丝袜美腿综合| 午夜精品福利一区二区三区av | 久久国产精品99久久人人澡| 大胆亚洲人体视频| 色婷婷综合五月| 日韩欧美国产综合| 亚洲天堂网中文字| 蜜桃久久久久久| 99精品久久99久久久久| 91精品欧美综合在线观看最新| 国产亚洲一二三区| 亚洲v中文字幕| 粉嫩欧美一区二区三区高清影视| 欧美天堂亚洲电影院在线播放| 精品99一区二区三区| 夜夜嗨av一区二区三区| 久久99精品久久久久婷婷| 99久久国产免费看| 精品国产乱码久久久久久浪潮| 国产精品白丝在线| 蜜臂av日日欢夜夜爽一区| 99视频在线精品| 欧美精品一区二区蜜臀亚洲| 亚洲午夜私人影院| 成人午夜精品在线| 日韩精品专区在线影院观看| 亚洲精品国产品国语在线app| 国产综合色在线视频区| 欧美日韩国产大片| 亚洲欧美日韩小说| 成人一级片在线观看| 日韩午夜激情av| 亚洲二区视频在线| 99精品桃花视频在线观看| 26uuu国产在线精品一区二区| 日韩中文字幕91| 欧美最猛性xxxxx直播| 国产精品视频免费看| 激情五月激情综合网| 欧美一区二区三区四区高清 | 日韩一区二区三区在线| 亚洲一区影音先锋| 91啪九色porn原创视频在线观看| 久久久久久夜精品精品免费| 蜜芽一区二区三区| 在线播放视频一区| 亚洲一区二区三区四区五区中文| 99国产欧美久久久精品| 中文字幕一区三区| 99久久综合狠狠综合久久| 国产三级欧美三级日产三级99| 极品少妇xxxx精品少妇| 精品久久久久久久久久久久久久久 | 日韩精品色哟哟| 欧美日韩久久一区二区| 亚洲国产综合色| 欧美日本在线视频| 免费观看在线综合| 欧美成人一区二区三区片免费| 精品一区二区三区的国产在线播放|