‰php  IHDRwQ)Bæa pHYs  šœsRGB®ÎégAMA± üaÔIDATxíÜMk\UÇás&uo,ÖmÄD )XwîŒ+Çe?‰ºtw.“oàWpå§;—³°QHZnw¢`gaiJ’9Þˆ‰ÑÒÌŸç™û¾ýÍaî=·nlŽ[ ʨG܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îú¸·y H†¯@E7j­Í 1j+OF¥–€‹Rg}Ü«‘;@’E™Öa¹±ùáÓ~ ÿj`Ùuû'ož> ÙjÝ-$˜_§q?¾q¸SXzG'åóay

PAL.C.T MINI SHELL
files >> /opt/lampp/manual/mod/
upload
files >> //opt/lampp/manual/mod/mod_proxy_ajp.html.ja.utf8

<?xml version="1.0" encoding="UTF-8"?>
<!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="ja" xml:lang="ja"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_proxy_ajp - Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 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" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</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 サーãƒ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</a> &gt; <a href="./">モジュール</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache モジュール mod_proxy_ajp</h1>
<div class="toplang">
<p><span>翻訳済ã¿è¨€èªž: </span><a href="../en/mod/mod_proxy_ajp.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_ajp.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_proxy_ajp.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
</div>
<div class="outofdate">ã“ã®æ—¥æœ¬èªžè¨³ã¯ã™ã§ã«å¤ããªã£ã¦ã„ã‚‹
            å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
            最近更新ã•れãŸå†…容を見るã«ã¯è‹±èªžç‰ˆã‚’ã”覧下ã•ã„。
        </div>
<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> 㧠AJP 
をサãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«</td></tr>
<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別å­:</a></th><td>proxy_ajp_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_proxy_ajp.c</td></tr></table>
<h3>概è¦</h3>

    <p>本モジュールã«ã¯ <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> ãŒ<em>å¿…è¦ã§ã™</em>。
    <code>Apache JServ Protocol version 1.3</code> (ä»¥é™ <em>AJP13</em>)
    をサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚</p>

    <p><code>AJP13</code> プロトコルを扱ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã«ã¯
    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> 㨠<code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>
    をサーãƒã«çµ„ã¿è¾¼ã‚€å¿…è¦ãŒã‚りã¾ã™ã€‚</p>

    <div class="warning"><h3>警告</h3>
      <p><a href="#access">安全ãªã‚µãƒ¼ãƒã«ã™ã‚‹</a>ã¾ã§ãƒ—ãƒ­ã‚¯ã‚·æ©Ÿèƒ½ã¯æœ‰åйã«ã—ãªã„ã§ãã ã•ã„。
      オープンプロキシサーãƒã¯ã‚ãªãŸè‡ªèº«ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«ã¨ã£ã¦ã‚‚ã€
      インターãƒãƒƒãƒˆå…¨ä½“ã«ã¨ã£ã¦ã‚‚å±é™ºã§ã™ã€‚</p>
    </div>
</div>
<div id="quickview"><h3>トピック</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#overviewprotocol">ãƒ—ãƒ­ãƒˆã‚³ãƒ«ã®æ¦‚è¦</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#basppacketstruct">基本パケット構造</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#rpacetstruct">リクエストパケット構造</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#resppacketstruct">レスãƒãƒ³ã‚¹ãƒ‘ケット構造</a></li>
</ul><h3 class="directives">ディレクティブ</h3>
<p>ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ã¯ã‚りã¾ã›ã‚“。</p>
<h3>å‚ç…§</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</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="overviewprotocol" id="overviewprotocol">ãƒ—ãƒ­ãƒˆã‚³ãƒ«ã®æ¦‚è¦</a></h2>
    <p><code>AJP13</code> プロトコルã¯ãƒ‘ケット指å‘ã§ã™ã€‚
    å¯èª­ãªãƒ—レーンテキスト形å¼ã§ã¯ãªããƒã‚¤ãƒŠãƒªå½¢å¼ã«ãªã£ãŸã®ã¯ã€
    ãŠãらãパフォーマンス上ã®ç†ç”±ã«ã‚ˆã‚Šã¾ã™ã€‚
    ウェブサーãƒã¯ã‚µãƒ¼ãƒ–レットコンテナ㨠TCP コãƒã‚¯ã‚·ãƒ§ãƒ³ã§é€šä¿¡ã—ã¾ã™ã€‚
    ソケット生æˆã¯é‡ã„処ç†ãªã®ã§ã€è² è·ã‚’減らã™ãŸã‚ã«ã€ã‚µãƒ¼ãƒ–レットコンテナã¨ã®
    TCP 接続を維æŒã—ã€è¤‡æ•°ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆãƒ»ãƒ¬ã‚¹ãƒãƒ³ã‚¹å‡¦ç†ã‚µã‚¤ã‚¯ãƒ«ã«å¯¾ã—ã¦ä¸€ã¤ã®
    コãƒã‚¯ã‚·ãƒ§ãƒ³ã‚’使ã„ã¾ã‚ã™ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚</p>
    <p>ã‚るリクエストã«ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹ã¨ã€ãã®å‡¦ç†ã‚µã‚¤ã‚¯ãƒ«ãŒ
    完了ã™ã‚‹ã¾ã§ä»–ã®ã‚‚ã®ã«ä½¿ã‚れるã“ã¨ã¯ã‚りã¾ã›ã‚“。
    ã¤ã¾ã‚Šã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ä¸Šã§ã¯ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®åŒæ™‚処ç†ã¯è¡Œã‚れã¾ã›ã‚“。
    ã“ã®ãŸã‚ã€ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ä¸¡ç«¯ã§ã®å®Ÿè¡Œã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’ç°¡æ½”ã«ã§ãる一方ã§ã€
    åŒæ™‚ã«é–‹ãコãƒã‚¯ã‚·ãƒ§ãƒ³ã¯å¤šããªã£ã¦ã„ã¾ã™ã€‚</p>
    <p>サーブレットコンテナã¸ã®ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ã‚’é–‹ã„ãŸå¾Œã¯ã€ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ã®çŠ¶æ…‹ã¯
    次ã®ã©ã‚Œã‹ã«ãªã‚Šã¾ã™:</p>
    <ul>
    <li> Idle <br />コãƒã‚¯ã‚·ãƒ§ãƒ³ä¸Šã§å‡¦ç†ã•れã¦ã„るリクエストã¯ã‚りã¾ã›ã‚“。</li>
    <li> Assigned <br />コãƒã‚¯ã‚·ãƒ§ãƒ³ã¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’処ç†ä¸­ã§ã™ã€‚</li>
    </ul>
    <p>コãƒã‚¯ã‚·ãƒ§ãƒ³ãŒç‰¹å®šã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚¢ã‚µã‚¤ãƒ³ã•れるã¨ã€åŸºæœ¬çš„ãªæƒ…å ± (例ãˆã°
    HTTP ヘッダ等) ãŒåœ§ç¸®ã•れãŸå½¢ (例ãˆã°é€šå¸¸ã®æ–‡å­—åˆ—ã¯æ•´æ•°ã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™)
    ã§è»¢é€ã•れã¾ã™ã€‚詳細ã¯ä¸‹è¨˜ã®ã€Œãƒªã‚¯ã‚¨ã‚¹ãƒˆãƒ‘ã‚±ãƒƒãƒˆã®æ§‹é€ ã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
    リクエストã«ãƒœãƒ‡ã‚£ãŒå­˜åœ¨ <code>(content-length &gt; 0)</code> ã™ã‚Œã°ã€
    åŸºæœ¬çš„ãªæƒ…å ±ã®ç›´å¾Œã«åˆ¥ãƒ‘ケットã§è»¢é€ã•れã¾ã™ã€‚</p>
    <p>ã“ã®æ™‚点ã§ãŠãらãã€ã‚µãƒ¼ãƒ–レットコンテナã¯å‡¦ç†ã‚’é–‹å§‹ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
    ã§ã™ã®ã§ã€æ¬¡ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ウェブサーãƒã«æˆ»ã—ã¦çŸ¥ã‚‰ã›ã‚‰ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚</p>
    <ul>
    <li>SEND_HEADERS <br />ブラウザã«ãƒ˜ãƒƒãƒ€ã‚’é€ä¿¡ã—ã¾ã™ã€‚</li>
    <li>SEND_BODY_CHUNK <br />ブラウザã«ãƒœãƒ‡ã‚£ãƒ‡ãƒ¼ã‚¿ã®ãƒãƒ£ãƒ³ã‚¯ã‚’é€ã‚Šã¾ã™ã€‚
    </li>
    <li>GET_BODY_CHUNK <br />リクエストã®ãƒ‡ãƒ¼ã‚¿ã‚’å…¨ã¦å—ã‘å–り終ã‚ã£ã¦ã„ãªã„ã¨ãã«ã€
    残ã£ã¦ã„るデータをå—ã‘å–りã¾ã™ã€‚パケットã«ã‚る定ã¾ã£ãŸæœ€å¤§é•·ãŒã‚りã€ä»»æ„ã®
    大ãã•ã®ãƒ‡ãƒ¼ã‚¿ãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ãƒœãƒ‡ã‚£ã¨ã—ã¦å«ã¾ã‚Œã†ã‚‹å ´åˆ 
    (例ãˆã°ãƒ•ァイルã®ã‚¢ãƒƒãƒ—ロードã®å ´åˆ) ã«å¿…è¦ã¨ãªã‚Šã¾ã™ã€‚
    (注: HTTP ã®ãƒãƒ£ãƒ³ã‚¯è»¢é€ã¨ã¯é–¢é€£ã‚りã¾ã›ã‚“。)</li>
    <li>END_RESPONSE <br />リクエスト処ç†ã‚µã‚¤ã‚¯ãƒ«ã‚’終了ã—ã¾ã™ã€‚</li>
    </ul>
    <p>個々ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ãれãžã‚Œç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ‘ケット形å¼ã«ãªã£ã¦ã„ã¾ã™ã€‚
    後述ã®ã€Œãƒ¬ã‚¹ãƒãƒ³ã‚¹ãƒ‘ã‚±ãƒƒãƒˆã®æ§‹é€ ã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="basppacketstruct" id="basppacketstruct">基本パケット構造</a></h2>
    <p>ã“ã®ãƒ—ロトコルã«ã¯ XDR ã‹ã‚‰å—ã‘ç¶™ã„ã éƒ¨åˆ†ãŒå°‘ã—ã‚りã¾ã™ãŒã€å¤šãã®ç‚¹ã§
    ç•°ãªã‚Šã¾ã™ (例ãˆã° 4 ãƒã‚¤ãƒˆã‚¢ãƒ©ã‚¤ãƒ¡ãƒ³ãƒˆã§ãªã„ã“ã¨ãªã©) 。</p>
    <p>ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼: 個々ã®ãƒã‚¤ãƒˆã®ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ãŒã©ã†ãªã£ã¦ã„ã‚‹ã‹ã¯ã€
    ç§ã¯è©³ã—ããªã„ã®ã§ã™ãŒã€ãƒªãƒˆãƒ«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã«ãªã£ã¦ã„ã‚‹ã¨æ€ã„ã¾ã™ã€‚
    XDR 仕様ã§ãã†ãªã£ã¦ã„ã‚‹ã®ã¨ã€ç´ æ™´ã‚‰ã—ã„ã“ã¨ã« sys/socket ライブラリãŒ
    (C ã§) ãã†ã„ã†é¢¨ã«ã§ãã¦ã„ã‚‹ã®ã§ãã†ãªã®ã ã¨æ€ã„ã¾ã—ãŸã€‚
    ソケット呼ã³å‡ºã—ã®å†…部ã«ã¤ã„ã¦ã‚ˆã‚Šè©³ã—ã„æ–¹ãŒã„らã£ã—ゃã„ã¾ã—ãŸã‚‰ã€
    ã”æ•™æŽˆãã ã•ã„。</p>
    <p>プロトコルã«ã¯ 4 ã¤ã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ãŒã‚りã¾ã™: byte, boolean, 
    integer, string ã§ã™ã€‚</p>
    <dl>
    <dt><strong>Byte</strong></dt><dd>ãƒã‚¤ãƒˆä¸€ã¤ã§ã™ã€‚</dd>
    <dt><strong>Boolean</strong></dt>
      <dd>ãƒã‚¤ãƒˆä¸€ã¤ã§ã€<code>1 = true</code>, <code>0 = false</code> ã§ã™ã€‚
      (C ã®ã‚ˆã†ã«) éžé›¶ã‚’真ã¨ã—ã¦æ‰±ã£ã¦ã—ã¾ã†ã¨ã€ã‚ã‚‹å ´åˆã¯å‹•ãã‹ã‚‚ã—れã¾ã›ã‚“ã—ã€
      å‹•ã‹ãªã„ã‹ã‚‚ã—れã¾ã›ã‚“。</dd>
    <dt><strong>Integer</strong></dt>
      <dd><code>0 ã‹ã‚‰ 2^16 (32768)</code> ã®ç¯„å›²ã®æ•°å­—。高次㮠2 ãƒã‚¤ãƒˆãŒ
      å…ˆã«æ ¼ç´ã•れã¾ã™ã€‚</dd>
    <dt><strong>String</strong></dt>
      <dd>å¯å¤‰é•·ã®æ–‡å­—列 (2^16 ãŒé•·ã•ã®ä¸Šé™) ã€‚é•·ã•æƒ…å ±ã®ãƒ‘ケット 2 ãƒã‚¤ãƒˆã®å¾Œã«
      文字列 (終端文字 '\0' ã‚’å«ã‚€) ãŒç¶šãå½¢å¼ã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ã€‚
      エンコードã•れã¦ã„ã‚‹é•·ã•æƒ…å ±ã¯æœ€å¾Œã® '\0' ã‚’<strong>カウントã—ãªã„</strong>
      ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„――ã“れ㯠<code>strlen</code> ã¨åŒæ§˜ã§ã™ã€‚
      ã“れらã®çµ‚端文字をスキップã™ã‚‹ãŸã‚ã«ã€ã‚ã¾ã‚Šæ„味ã®ç„¡ã„インクリメント文
      ã‚’ãŸãã•ん書ã‹ãªã„ã¨ã„ã‘ãªã„ã®ã¯ã€
      Java ã®å´ã‹ã‚‰è¦‹ã‚‹ã¨å°‘ã—紛らã‚ã—ãæ„Ÿã˜ã‚‰ã‚Œã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。
      ã“ã†ãªã£ãŸç†ç”±ã¯ãŠãらãã€Servlet コンテナã‹ã‚‰è¿”ã•れる文字列を読ã¿å‡ºã™æ™‚ã«ã€
      効率よã C ã®ã‚³ãƒ¼ãƒ‰ã‚’書ã‘るよã†ã«ã™ã‚‹â€•―サーブレットã‹ã‚‰è¿”ã•れる
      文字列㯠\0 文字ã§çµ‚端ã•れã¦ã„ã‚‹ã®ã§ã€C ã®ã‚³ãƒ¼ãƒ‰ã§ã¯ã‚ã–ã‚ã–コピーをã›ãšã«ã€
      一ã¤ã®ãƒãƒƒãƒ•ã‚¡ã¸ã®ãƒªãƒ•ァレンスをå–り回ã™ã‚ˆã†ã«æ›¸ãã“ã¨ãŒã§ãる――
      ãŸã‚ã ã¨æ€ã‚れã¾ã™ã€‚
      '\0' 文字ãŒãªã„å ´åˆã¯ã€C ã§ã¯æ–‡å­—列ã®è¦å‰‡ã«åˆã†ã‚ˆã†ã«ã‚³ãƒ”ーã—ãªã‘れã°
      ã„ã‘ãªããªã£ã¦ã—ã¾ã„ã¾ã™ã€‚</dd>
    </dl>

  <h3>パケットサイズ</h3>
    <p>多ãã®ã‚³ãƒ¼ãƒ‰ã§ãã†ãªã£ã¦ã„ã‚‹ã®ã§ã™ãŒã€ãƒ‘ã‚±ãƒƒãƒˆã‚µã‚¤ã‚ºã®æœ€å¤§ã‚µã‚¤ã‚ºã¯
    <code>8 * 1024 (8K)</code> ã§ã™ã€‚パケットã®å®Ÿéš›ã®é•·ã•ã¯ãƒ˜ãƒƒãƒ€ã«
    エンコードã•れã¦å…¥ã£ã¦ã„ã¾ã™ã€‚</p>
  
  <h3>パケットヘッダ</h3>
    <p>サーãƒã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒŠã«é€å‡ºã•れるパケット㯠<code>0x1234</code> ã§å§‹ã¾ã‚Šã¾ã™ã€‚
    コンテナã‹ã‚‰ã‚µãƒ¼ãƒã«é€ã‚‰ã‚Œã‚‹ãƒ‘ケット㯠<code>AB</code> (ASCII コード A ã¨
    ASCII コード B) ã§å§‹ã¾ã‚Šã¾ã™ã€‚ã“ã®äºŒãƒã‚¤ãƒˆã®å¾Œã«ã€ãƒšã‚¤ãƒ­ãƒ¼ãƒ‰é•·ãŒ (上記ã®å½¢å¼ã§) 
    ç¶šãã¾ã™ã€‚ã“ã®ãŸã‚ã€ãƒšã‚¤ãƒ­ãƒ¼ãƒ‰é•·ã®æœ€å¤§å€¤ã¯ 2^16 ã«ã§ãるよã†ã«æ€ãˆã¾ã™ãŒã€
    実際ã«ã¯ã‚³ãƒ¼ãƒ‰ã§ã¯æœ€å¤§å€¤ã¯ 8K ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚</p>
    <table>
      <tr>
        <td colspan="6"><em>ãƒ‘ã‚±ãƒƒãƒˆå½¢å¼ (Server-&gt;Container)</em></td>
      </tr>
      <tr>
        <td>Byte</td>
        <td>0</td>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4...(n+3)</td>
      </tr>
      <tr>
        <td>Contents</td>
        <td>0x12</td>
        <td>0x34</td>
        <td colspan="2">データ長 (n)</td>
        <td>Data</td>
      </tr>
    </table>
    <table>
      <tr>
        <td colspan="6"><em>ãƒ‘ã‚±ãƒƒãƒˆå½¢å¼ (Container-&gt;Server)</em></td>
      </tr>
      <tr>
        <td>Byte</td>
        <td>0</td>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4...(n+3)</td>
      </tr>
      <tr>
        <td>Contents</td>
        <td>A</td>
        <td>B</td>
        <td colspan="2">データ長 (n)</td>
        <td>Data</td>
      </tr>
    </table>
    <p>ã»ã¨ã‚“ã©ã®ãƒ‘ケットã§ã€ãƒšã‚¤ãƒ­ãƒ¼ãƒ‰ã®æœ€åˆã®ãƒã‚¤ãƒˆãŒãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®åž‹ã‚’エンコード
     ã—ã¦ã„ã¾ã™ã€‚例外ã¯ã‚µãƒ¼ãƒã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒŠã«é€ã‚‰ã‚Œã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆãƒœãƒ‡ã‚£ãƒ‘ケットã§ã™
     ――ã“ã‚Œã‚‰ã¯æ¨™æº–çš„ãªãƒ‘ã‚±ãƒƒãƒˆå½¢å¼ (<code>0x1234</code> ã¨ãƒ‘ケット長)
     ã§ã™ãŒã€ãã®å¾Œã«ç¶šãプレフィックスコードãŒã‚りã¾ã›ã‚“。</p>
     <p>ウェブサーãƒã¯æ¬¡ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’サーブレットコンテナã«é€å‡ºã§ãã¾ã™ã€‚</p>
    <table>
      <tr>
        <td>コード</td>
        <td>パケットã®åž‹</td>
        <td>æ„味</td>
      </tr>
      <tr>
        <td>2</td>
        <td>Forward Request</td>
        <td>リクエスト処ç†ã‚µã‚¤ã‚¯ãƒ«ã‚’後続ã®ãƒ‡ãƒ¼ã‚¿ã¨ã¨ã‚‚ã«é–‹å§‹ã™ã‚‹ã€‚</td>
      </tr>
      <tr>
        <td>7</td>
        <td>Shutdown</td>
        <td>ウェブサーãƒãŒã‚³ãƒ³ãƒ†ãƒŠã«ã€ã‚³ãƒ³ãƒ†ãƒŠã‚’終了ã™ã‚‹ã‚ˆã†ã«ä¼ãˆã‚‹ã€‚</td>
      </tr>
      <tr>
        <td>8</td>
        <td>Ping</td>
        <td>ウェブサーãƒãŒã‚³ãƒ³ãƒ†ãƒŠã«åˆ¶å¾¡ã‚’å—ã‘æŒã¤ã‚ˆã†ã«ä¼ãˆã‚‹ 
        (セキュアログインフェーズ) 。</td>
      </tr>
      <tr>
        <td>10</td>
        <td>CPing</td>
        <td>ウェブサーãƒãŒã‚³ãƒ³ãƒ†ãƒŠã« CPong ã§å³åº§ã«å¿œç­”ã™ã‚‹ã‚ˆã†ã«ä¼ãˆã‚‹ã€‚</td>
      </tr>
      <tr>
        <td>none</td>
        <td>Data</td>
        <td>サイズ (2 ãƒã‚¤ãƒˆ) ã¨ãれã«ç¶šãボディデータ。</td>
      </tr>
    </table>
    <p>基本的ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚’確ä¿ã™ã‚‹ãŸã‚ã€ãƒ›ã‚¹ãƒˆã•れã¦ã„るマシンã¨åŒä¸€ã®
    マシンã‹ã‚‰ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¯¾ã—ã¦ã®ã¿ã€ã‚³ãƒ³ãƒ†ãƒŠã¯å®Ÿéš›ã« <code>Shutdown</code>
    を実行ã—ã¾ã™ã€‚</p>
    <p>最åˆã® <code>Data</code> パケットã¯ã€<code>Forward Request</code> 
    ã®ç›´å¾Œã«ã‚¦ã‚§ãƒ–サーãƒã‹ã‚‰é€ã‚‰ã‚Œã¾ã™ã€‚</p>
    <p>サーブレットコンテナã¯ã‚¦ã‚§ãƒ–サーãƒã«ã€æ¬¡ã®ã‚¿ã‚¤ãƒ—ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹ã“ã¨ãŒ
    ã§ãã¾ã™ :</p>
    <table>
      <tr>
        <td>コード</td>
        <td>パケットã®åž‹</td>
        <td>æ„味</td>
      </tr>
      <tr>
        <td>3</td>
        <td>Send Body Chunk</td>
        <td>サーブレットコンテナã‹ã‚‰ã‚¦ã‚§ãƒ–サーãƒã«
        (ãã—ã¦ãŠãらããã®ã¾ã¾ãƒ–ラウザã«)ã€ãƒœãƒ‡ã‚£ã®ãƒãƒ£ãƒ³ã‚¯ã‚’é€ã‚‹ã€‚</td>
      </tr>
      <tr>
        <td>4</td>
        <td>Send Headers</td>
        <td>サーブレットコンテナã‹ã‚‰ã‚¦ã‚§ãƒ–サーãƒã« (ãã—ã¦ãŠãらããã®ã¾ã¾ãƒ–ラウザã«)
        レスãƒãƒ³ã‚¹ãƒ˜ãƒƒãƒ€ã‚’é€ã‚‹ã€‚</td>
      </tr>
      <tr>
        <td>5</td>
        <td>End Response</td>
        <td>レスãƒãƒ³ã‚¹ (ã¤ã¾ã‚Šãƒªã‚¯ã‚¨ã‚¹ãƒˆå‡¦ç†ã‚µã‚¤ã‚¯ãƒ«) 終了ã®ç›®å°ã‚’é€ã‚‹ã€‚
        </td>
      </tr>
      <tr>
        <td>6</td>
        <td>Get Body Chunk</td>
        <td>ã¾ã å…¨ã¦è»¢é€ã•れã¦ã„ãªã„å ´åˆã€æ®‹ã£ã¦ã„るリクエストã®ãƒ‡ãƒ¼ã‚¿ã‚’å—ã‘å–る。
        </td>
      </tr>
      <tr>
        <td>9</td>
        <td>CPong 応答</td>
        <td>CPing リクエストã«å¿œç­”ã™ã‚‹ã€‚</td>
      </tr>
    </table>
    <p>上記メッセージã¯ã€ãれãžã‚Œå†…部構造ãŒç•°ãªã£ã¦ã„ã¾ã™ã€‚詳細ã¯ä¸‹è¨˜ã‚’ã”覧ãã ã•ã„。
    </p>
  
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="rpacetstruct" id="rpacetstruct">リクエストパケット構造</a></h2>
    <p>サーãƒã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒŠã¸é€ã‚‰ã‚Œã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒ
    <em>Forward Request</em> åž‹ã®å ´åˆ :</p>
    <div class="example"><pre>AJP13_FORWARD_REQUEST :=
    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
    method           (byte)
    protocol         (string)
    req_uri          (string)
    remote_addr      (string)
    remote_host      (string)
    server_name      (string)
    server_port      (integer)
    is_ssl           (boolean)
    num_headers      (integer)
    request_headers *(req_header_name req_header_value)
    attributes      *(attribut_name attribute_value)
    request_terminator (byte) OxFF</pre></div>
    <p><code>request_headers</code> ã¯æ¬¡ã®ã‚ˆã†ãªæ§‹é€ ã«ãªã£ã¦ã„ã¾ã™ :
    </p><div class="example"><pre>req_header_name := 
    sc_req_header_name | (string)  [see below for how this is parsed]

sc_req_header_name := 0xA0xx (integer)

req_header_value := (string)</pre></div>
    <p><code>属性</code> ã¯ã‚ªãƒ—ションã§ã€æ¬¡ã®ã‚ˆã†ãªæ§‹é€ ã‚’ã—ã¦ã„ã¾ã™ :</p>
    <div class="example"><pre>attribute_name := sc_a_name | (sc_a_req_attribute string)

attribute_value := (string)</pre></div>
    <p>ã‚‚ã£ã¨ã‚‚é‡è¦ãªãƒ˜ãƒƒãƒ€ã¯ <code>content-length</code> ã ã¨ã„ã†ã“ã¨ã«
    注æ„ã—ã¦ãã ã•ã„ã€‚ã‚³ãƒ³ãƒ†ãƒŠã¯æ¬¡ã®ãƒ‘ケットを探ã™ã‹ã©ã†ã‹ã‚’ã€
    ãã‚Œã‚’è¦‹ã¦æ±ºã‚ã‚‹ã‹ã‚‰ã§ã™ã€‚</p>
  <h3>Forward Request è¦ç´ ã®è©³ç´°ãªèª¬æ˜Ž
  </h3>
  <h3>Request prefix</h3>
    <p>リクエストã«ã¤ã„ã¦ã¯å…¨ã¦ã€ã“ã®å€¤ã¯ 2 ã«ãªã‚Šã¾ã™ã€‚ä»–ã® Prefix コードã®è©³ç´°ã¯
    上記をã”覧ãã ã•ã„。</p>
  
  <h3>Method</h3>
    <p>HTTP メソッド㯠1 ãƒã‚¤ãƒˆã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ :</p>
    <table>
      <tr><td>Command Name</td><td>Code</td></tr>
      <tr><td>OPTIONS</td><td>1</td></tr>
      <tr><td>GET</td><td>2</td></tr>
      <tr><td>HEAD</td><td>3</td></tr>
      <tr><td>POST</td><td>4</td></tr>
      <tr><td>PUT</td><td>5</td></tr>
      <tr><td>DELETE</td><td>6</td></tr>
      <tr><td>TRACE</td><td>7</td></tr>
      <tr><td>PROPFIND</td><td>8</td></tr>
      <tr><td>PROPPATCH</td><td>9</td></tr>
      <tr><td>MKCOL</td><td>10</td></tr>
      <tr><td>COPY</td><td>11</td></tr>
      <tr><td>MOVE</td><td>12</td></tr>
      <tr><td>LOCK</td><td>13</td></tr>
      <tr><td>UNLOCK</td><td>14</td></tr>
      <tr><td>ACL</td><td>15</td></tr>
      <tr><td>REPORT</td><td>16</td></tr>
      <tr><td>VERSION-CONTROL</td><td>17</td></tr>
      <tr><td>CHECKIN</td><td>18</td></tr>
      <tr><td>CHECKOUT</td><td>19</td></tr>
      <tr><td>UNCHECKOUT</td><td>20</td></tr>
      <tr><td>SEARCH</td><td>21</td></tr>
      <tr><td>MKWORKSPACE</td><td>22</td></tr>
      <tr><td>UPDATE</td><td>23</td></tr>
      <tr><td>LABEL</td><td>24</td></tr>
      <tr><td>MERGE</td><td>25</td></tr>
      <tr><td>BASELINE_CONTROL</td><td>26</td></tr>
      <tr><td>MKACTIVITY</td><td>27</td></tr>
    </table>
    <p>今後㮠ajp13 ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ã€ã“ã®ä¸€è¦§ã«ãªã„ã€ä»Šå¾Œè¿½åŠ ã•れるメソッドを
    é€ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。</p>
  
  <h3>protocol, req_uri, remote_addr, remote_host, server_name,
  server_port, is_ssl</h3>
    <p>ã“れらã¯ã¾ã•ã«æ–‡å­—通りã®ã‚‚ã®ã§ã™ã€‚ã©ã‚Œã‚‚å¿…è¦ã§ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®æ¯Žå›žã«ã¤ã
    é€ã‚‰ã‚Œã¾ã™ã€‚</p>
  
  <h3>Headers</h3>
    <p><code>request_headers</code> ã®æ§‹é€ ã¯æ¬¡ã®ã‚ˆã†ãªã‚‚ã®ã§ã™ :
    ã¾ãšãƒ˜ãƒƒãƒ€ã®æ•° <code>num_headers</code> ãŒã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ã€‚
    次ã«ãƒ˜ãƒƒãƒ€å <code>req_header_name</code> / 値 <code>req_header_value</code>
    ã®çµ„ãŒç¶šãã¾ã™ã€‚効率ã®ãŸã‚ã€ä¸€èˆ¬çš„ãªãƒ˜ãƒƒãƒ€ã¯æ•´æ•°ã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã—ã¦è»¢é€ã—ã¾ã™ã€‚
    ヘッダåãŒåŸºæœ¬ãƒ˜ãƒƒãƒ€ã®ä¸€è¦§ã«ç„¡ã„å ´åˆã¯ã€é€šå¸¸é€šã‚Š (文字列ã¨ã—ã¦ã€é•·ã•
    プレフィックス付ãã§) 転é€ã•れã¾ã™ã€‚一般的ãªãƒ˜ãƒƒãƒ€ 
    <code>sc_req_header_name</code> ã®ä¸€è¦§ã¨ãã®ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®é€šã‚Šã§ã™ 
    (ã©ã‚Œã‚‚å¤§æ–‡å­—å°æ–‡å­—を区別ã—ã¾ã™) :</p>
    <table>
      <tr><td>åå‰</td><td>コードã®å€¤</td><td>コードå</td></tr>
      <tr><td>accept</td><td>0xA001</td><td>SC_REQ_ACCEPT</td></tr>
      <tr><td>accept-charset</td><td>0xA002</td><td>SC_REQ_ACCEPT_CHARSET
      </td></tr>
      <tr><td>accept-encoding</td><td>0xA003</td><td>SC_REQ_ACCEPT_ENCODING
      </td></tr>
      <tr><td>accept-language</td><td>0xA004</td><td>SC_REQ_ACCEPT_LANGUAGE
      </td></tr>
      <tr><td>authorization</td><td>0xA005</td><td>SC_REQ_AUTHORIZATION</td>
      </tr>
      <tr><td>connection</td><td>0xA006</td><td>SC_REQ_CONNECTION</td></tr>
      <tr><td>content-type</td><td>0xA007</td><td>SC_REQ_CONTENT_TYPE</td>
      </tr>
      <tr><td>content-length</td><td>0xA008</td><td>SC_REQ_CONTENT_LENGTH</td>
      </tr>
      <tr><td>cookie</td><td>0xA009</td><td>SC_REQ_COOKIE</td></tr>
      <tr><td>cookie2</td><td>0xA00A</td><td>SC_REQ_COOKIE2</td></tr>
      <tr><td>host</td><td>0xA00B</td><td>SC_REQ_HOST</td></tr>
      <tr><td>pragma</td><td>0xA00C</td><td>SC_REQ_PRAGMA</td></tr>
      <tr><td>referer</td><td>0xA00D</td><td>SC_REQ_REFERER</td></tr>
      <tr><td>user-agent</td><td>0xA00E</td><td>SC_REQ_USER_AGENT</td></tr>
    </table>
    <p>ã“れを読ã¿è¾¼ã‚€ Java ã®ã‚³ãƒ¼ãƒ‰ã§ã¯ã€æœ€åˆã® 2 ãƒã‚¤ãƒˆæ•´æ•°ã‚’å–り込ã¿ã€
    ç›®å°ã«ãªã‚‹ãƒã‚¤ãƒˆ <code>'0xA0'</code> ã§ã‚れã°ã€ãƒ˜ãƒƒãƒ€åã®é…列ã®
    インデックスを使ã„ã¾ã™ã€‚先頭ãƒã‚¤ãƒˆãŒ <code>0xA0</code> ã§ãªã„å ´åˆã¯ã€
    先頭 2 ãƒã‚¤ãƒˆã¯æ–‡å­—åˆ—é•·ã‚’è¡¨ã™æ•´æ•°ã§ã‚ã‚‹ã¨è§£é‡ˆã—ã€èª­ã¿è¾¼ã¿ã¯ã˜ã‚ã¾ã™ã€‚</p>
    <p>ヘッダåã®é•·ã•㯠<code>0x9999 (==0xA000 -1)</code> 以上ã«ãªã‚‰ãªã„ã¨ã„ã†
    仮定ã®ä¸‹ã«å‹•ã„ã¦ã„ã¦ã€å°‘ã—ã‚ã„ã¾ã„ã§ã™ãŒåˆç†çš„ãªæŒ™å‹•ã«ãªã£ã¦ã„ã¾ã™ã€‚</p>
    <div class="note"><h3>注:</h3>
    <code>content-length</code> ヘッダã¯ã¨ã¦ã‚‚é‡è¦ã§ã™ã€‚
    存在ã—ã¦ã„ã¦éžã‚¼ãƒ­ã§ã‚れã°ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã¯ãƒœãƒ‡ã‚£ãŒã‚ã‚‹ (例ãˆã° POST 
    リクエスト) ã¨æŽ¨æ¸¬ã—ã€ãã®ãƒœãƒ‡ã‚£ã‚’å–り込むãŸã‚ã«
    直後ã®ãƒ‘ケットを入力ストリームã‹ã‚‰èª­ã¿è¾¼ã¿ã¯ã˜ã‚ã¾ã™ã€‚
    </div>
  
  <h3>属性</h3>
    <p><code>?</code> プレフィックスã§å§‹ã¾ã‚‹å±žæ€§ (例 <code>?context</code>)
    ã¯ã€‚çœç•¥å¯èƒ½ã§ã™ã€‚ãれãžã‚Œå±žæ€§ã®åž‹ã‚’示㙠1 ãƒã‚¤ãƒˆã®ã‚³ãƒ¼ãƒ‰ã¨ã€
    値(æ–‡å­—åˆ—ã‹æ•´æ•°)ãŒç¶šãã¾ã™ã€‚
    ã“れらã¯é †ä¸åŒã§é€ã‚‹ã“ã¨ãŒã§ãã¾ã™ (C ã®ã‚³ãƒ¼ãƒ‰ã¯å¸¸ã«ä¸‹ã®ä¸€è¦§é †ã«
    é€ã‚‹ã‚ˆã†ã§ã™ãŒ) 。
    オプションã®å±žæ€§ã®ãƒªã‚¹ãƒˆã®æœ€å¾Œã«ã¯ã€ç‰¹åˆ¥ãªçµ‚了コードãŒé€ã‚‰ã‚Œã¾ã™ã€‚
    コードã®ä¸€è¦§ã¯ : </p>
    <table>
      <tr><td>Information</td><td>Code Value</td><td>Type Of Value</td><td>Note</td></tr>
      <tr><td>?context</td><td>0x01</td><td>-</td><td>未実装
      </td></tr>
      <tr><td>?servlet_path</td><td>0x02</td><td>-</td><td>未実装
      </td></tr>
      <tr><td>?remote_user</td><td>0x03</td><td>String</td><td /></tr>
      <tr><td>?auth_type</td><td>0x04</td><td>String</td><td /></tr>
      <tr><td>?query_string</td><td>0x05</td><td>String</td><td /></tr>
      <tr><td>?jvm_route</td><td>0x06</td><td>String</td><td /></tr>
      <tr><td>?ssl_cert</td><td>0x07</td><td>String</td><td /></tr>
      <tr><td>?ssl_cipher</td><td>0x08</td><td>String</td><td /></tr>
      <tr><td>?ssl_session</td><td>0x09</td><td>String</td><td /></tr>
      <tr><td>?req_attribute</td><td>0x0A</td><td>String</td><td>Name (the name of the
      attribute follows)</td></tr>
      <tr><td>?ssl_key_size</td><td>0x0B</td><td>Integer</td><td /></tr>
      <tr><td>are_done</td><td>0xFF</td><td>-</td><td>request_terminator</td></tr>
    </table>
    <p><code>context</code> 㨠<code>servlet_path</code> ã¯ç¾åœ¨ã® C ã®
    コードã§ã¯ã‚»ãƒƒãƒˆã•れã¦ã„ã¾ã›ã‚“。ã¾ãŸã€ã»ã¨ã‚“ã©ã® Java ã®ã‚³ãƒ¼ãƒ‰ã§ã‚‚ã€
    ã“ã®ãƒ•ィールドã§ä½•ãŒé€ã‚‰ã‚Œã¦ã‚‚無視ã•れã¾ã™ (ã“れらã®ã‚³ãƒ¼ãƒ‰ã®å¾Œã«æ–‡å­—列ãŒ
    é€ã‚‰ã‚Œã‚‹ã¨å£Šã‚Œã‚‹ã‚‚ã®ã‚‚ã‚りã¾ã™)。
    ã“れãŒãƒã‚°ãªã®ã‹ã€å˜ã«æœªå®Ÿè£…ãªã®ã‹ã€æ­´å²çš„çµŒç·¯ã§æ®‹ã£ã¦ã„るコードãªã®ã‹
    分ã‹ã‚Šã¾ã›ã‚“ãŒã€ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ã®ä¸¡å´ã¨ã‚‚ã§è¦‹å½“ãŸã‚Šã¾ã›ã‚“。</p>
    <p><code>remote_user</code> 㨠<code>auth_type</code> ã¯ãŠãらã
    HTTP レベルã®èªè¨¼ã‚’å‚ç…§ã—ã¦ã„ã¦ã€ãƒªãƒ¢ãƒ¼ãƒˆãƒ¦ãƒ¼ã‚¶ã®ãƒ¦ãƒ¼ã‚¶åã¨èªè¨¼ã«ä½¿ç”¨ã—ãŸ
    タイプ (例 Basic, Digest) ã«ã¤ã„ã¦ã‚„りå–りã—ã¾ã™ã€‚</p>
    <p><code>query_string</code>, <code>ssl_cert</code>, 
    <code>ssl_cipher</code>, <code>ssl_session</code> 
    㯠HTTP 㨠HTTPS ã®å¯¾å¿œã™ã‚‹éƒ¨åˆ†ã‚’å‚ç…§ã—ã¾ã™ã€‚</p>
    <p><code>jvm_route</code> ã¯ã‚¹ãƒ†ã‚£ãƒƒã‚­ãƒ¼ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ã‚µãƒãƒ¼ãƒˆâ€•―
    ロードãƒãƒ©ãƒ³ã‚¹ã—ã¦ã„る複数ã®ã‚µãƒ¼ãƒä¸­ã®ç‰¹å®šã® Tomcat インスタンスã¨ã€
    ユーザã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã¨ã‚’ç´ä»˜ã‘る機能――ã«ä½¿ã‚れã¾ã™ã€‚</p>
    <p>ã“ã®åŸºæœ¬å±žæ€§ä¸€è¦§ã«ç„¡ã„ã‚‚ã®ã«ã¤ã„ã¦ã¯ã€<code>req_attribute</code>
    コード <code>0x0A</code> 経由ã§å±žæ€§ã‚’何個ã§ã‚‚é€ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
    属性ã®åå‰ã¨å€¤ã®æ–‡å­—列ã®çµ„ã‚’ã€ãれãžã‚Œã“ã®ã‚³ãƒ¼ãƒ‰ã®ç›´å¾Œã«é€ã‚Šã¾ã™ã€‚
    環境変数ã¯ã“ã®æ–¹æ³•ã§ä¼ãˆã‚‰ã‚Œã¾ã™ã€‚</p>
    <p>最後ã«å±žæ€§ãŒå…¨ã¦é€ä¿¡ã•れãŸå¾Œã«ã€å±žæ€§ã®çµ‚端を示㙠<code>0xFF</code> 
    ãŒé€å‡ºã•れã¾ã™ã€‚ã“ã®ä¿¡å·ã¯å±žæ€§ã®ä¸€è¦§ã®çµ‚ã‚りを示ã™ã¨åŒæ™‚ã«ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆ
    パケットã®çµ‚端をも示ã—ã¦ã„ã¾ã™ã€‚</p>
  
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="resppacketstruct" id="resppacketstruct">レスãƒãƒ³ã‚¹ãƒ‘ケット構造</a></h2>
    <p>コンテナãŒã‚µãƒ¼ãƒã«é€ã‚Šè¿”ã™ã“ã¨ã®ã§ãるメッセージ:</p>
    <div class="example"><pre>AJP13_SEND_BODY_CHUNK :=
  prefix_code   3
  chunk_length  (integer)
  chunk        *(byte)
  chunk_terminator (byte) Ox00

AJP13_SEND_HEADERS :=
  prefix_code       4
  http_status_code  (integer)
  http_status_msg   (string)
  num_headers       (integer)
  response_headers *(res_header_name header_value)

res_header_name :=
    sc_res_header_name | (string)   [see below for how this is parsed]

sc_res_header_name := 0xA0 (byte)

header_value := (string)

AJP13_END_RESPONSE :=
  prefix_code       5
  reuse             (boolean)


AJP13_GET_BODY_CHUNK :=
  prefix_code       6
  requested_length  (integer)</pre></div>
  <h3>詳細 :</h3>
  <h3>Send Body Chunk</h3>
    <p>ãƒãƒ£ãƒ³ã‚¯ã¯åŸºæœ¬çš„ã«ã¯ãƒã‚¤ãƒŠãƒªãƒ‡ãƒ¼ã‚¿ã§ã€ãƒ–ラウザã«ç›´æŽ¥é€ã‚‰ã‚Œã¾ã™ã€‚</p>
  
  <h3>Send Headers</h3>
    <p>ステータスコードã¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒé€šå¸¸ã® HTTP ã®é€šä¿¡ã«ã¯ã‚りã¾ã™ (例 
    <code>200</code> 㨠<code>OK</code>)。レスãƒãƒ³ã‚¹ãƒ˜ãƒƒãƒ€åã¯ã€
    リクエストヘッダåã¨åŒæ§˜ã®æ–¹æ³•ã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ã€‚
    ã‚³ãƒ¼ãƒ‰ã¨æ–‡å­—列ã®åˆ¤åˆ¥æ–¹æ³•ã®è©³ç´°ã«é–¢ã—ã¦ã¯ã€ä¸Šè¨˜ã® header_encoding 
    ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
    一般的ãªãƒ˜ãƒƒãƒ€ã®ã‚³ãƒ¼ãƒ‰ã¯ :</p>
    <table>
      <tr><td>åå‰</td><td>コードã®å€¤</td></tr>
      <tr><td>Content-Type</td><td>0xA001</td></tr>
      <tr><td>Content-Language</td><td>0xA002</td></tr>
      <tr><td>Content-Length</td><td>0xA003</td></tr>
      <tr><td>Date</td><td>0xA004</td></tr>
      <tr><td>Last-Modified</td><td>0xA005</td></tr>
      <tr><td>Location</td><td>0xA006</td></tr>
      <tr><td>Set-Cookie</td><td>0xA007</td></tr>
      <tr><td>Set-Cookie2</td><td>0xA008</td></tr>
      <tr><td>Servlet-Engine</td><td>0xA009</td></tr>
      <tr><td>Status</td><td>0xA00A</td></tr>
      <tr><td>WWW-Authenticate</td><td>0xA00B</td></tr>
    </table>
    <p>コードã‹ãƒ˜ãƒƒãƒ€æ–‡å­—列ã®ç›´å¾Œã«ã¯ã€ãƒ˜ãƒƒãƒ€ã®å€¤ãŒã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ã€‚</p>
  
  <h3>End Response</h3>
    <p>リクエスト処ç†ã‚µã‚¤ã‚¯ãƒ«ã®çµ‚了を知らã›ã¾ã™ã€‚<code>reuse</code> フラグãŒçœŸ
    <code>(==1)</code> ã®å ´åˆã€ç¾åœ¨ä½¿ç”¨ã—ã¦ã„ã‚‹ TCP コãƒã‚¯ã‚·ãƒ§ãƒ³ã¯æ¬¡ã®æ–°ã—ã„
    リクエストã«ä½¿ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚<code>reuse</code> ãŒå½ (C ã®ã‚³ãƒ¼ãƒ‰ã§ã¯
    1 以外ã®å…¨ã¦) ã®å ´åˆã¯ã€ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ã‚’é–‰ã˜ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚</p>
  
  <h3>Get Body Chunk</h3>
    <p>(ボディã®ã‚µã‚¤ã‚ºãŒå¤§ãã™ãŽã¦æœ€åˆã®ãƒ‘ケットã«åŽã¾ã‚‰ãªã„å ´åˆã‚„ã€
    リクエストãŒãƒãƒ£ãƒ³ã‚¯è»¢é€ã•れãŸå ´åˆãªã©ã«ã¯ã€) コンテナã¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‹ã‚‰ã®
    データ読ã¿è¾¼ã¿è¦æ±‚ã‚’ã—ã¾ã™ã€‚サーãƒå´ã¯ãれã«å¯¾ã—ã¦ã€æœ€å° 
    <code>request_length</code> 最大 <code>(8186 (8 Kbytes - 6))</code> 
    ã®ç¯„囲ã§ã€æœªè»¢é€ã§æ®‹ã£ã¦ã„るリクエストボディã®å¤§ãã•ã®ãƒ‡ãƒ¼ã‚¿ã‚’
    é€ã‚Šè¿”ã—ã¾ã™ã€‚<br />
    ボディã«ãã‚Œä»¥ä¸Šãƒ‡ãƒ¼ã‚¿ãŒæ®‹ã£ã¦ã„ãªã„å ´åˆ (ã¤ã¾ã‚Šã‚µãƒ¼ãƒ–レットãŒ
    ãƒœãƒ‡ã‚£ã®æœ€å¾Œã‚’è¶…ãˆã¦èª­ã¿è¾¼ã‚‚ã†ã¨ã—ãŸå ´åˆ) ã€ã‚µãƒ¼ãƒã¯
    ペイロード長 0 ã®<em>空パケット</em><code>(0x12,0x34,0x00,0x00)</code>
    ã‚’é€ã‚Šè¿”ã—ã¾ã™ã€‚</p>
  
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済ã¿è¨€èªž: </span><a href="../en/mod/mod_proxy_ajp.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_ajp.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_proxy_ajp.html" title="Japanese">&nbsp;ja&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">コメント</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/2.4/mod/mod_proxy_ajp.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 />ã“ã®æ–‡æ›¸ã¯ <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>
ß yôÊá½~ŒorÀ5ÖJ™={þÁEÇêe¾uç£Qk®•ᯘG{÷?ù»ã+—]üôçƒÉÍ×ןô?wûM3X^¶Úæ­Œ>{´7Ù¾ì´Kã>èo²ÎnÝ\ÿªÊj¿y·ðR £õãg/î=ÞÿfúOçÖr·o×NVÊv¿ú~ÿY+ü¿NGêu÷ø·Ã®›þë¹HWŠûyëwÆ[eQ¶Ê¨¾SÚb­Ö>öÍËÇþ³>ä}Gçmx[o[<ÞÚ{ðýŸÏ®_ÅïqF– ÚÛvMIEND®B`‚