‰php IHDR w Q )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¸S XzG'åóay
files >> /opt/lampp/manual/mod/ |
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="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーãƒ</a> > <a href="http://httpd.apache.org/docs/">ドã‚ュメンテーション</a> > <a href="../">ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</a> > <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"> en </a> | <a href="../fr/mod/mod_proxy_ajp.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ja/mod/mod_proxy_ajp.html" title="Japanese"> ja </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 > 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->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->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"> en </a> | <a href="../fr/mod/mod_proxy_ajp.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ja/mod/mod_proxy_ajp.html" title="Japanese"> ja </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&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–ÚÛvM IEND®B`‚