]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_proxy_ajp.xml.ja
update license header text
[apache] / docs / manual / mod / mod_proxy_ajp.xml.ja
1 <?xml version="1.0" encoding="iso-2022-jp"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 395228:409442 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mod_proxy_ajp.xml.meta">
24
25 <name>mod_proxy_ajp</name>
26 <description><module>mod_proxy</module> \e$B$G\e(B AJP 
27 \e$B$r%5%]!<%H$9$k$?$a$N%b%8%e!<%k\e(B</description>
28 <status>Extension</status>
29 <sourcefile>proxy_ajp.c</sourcefile>
30 <identifier>proxy_ajp_module</identifier>
31
32 <summary>
33     <p>\e$BK\%b%8%e!<%k$K$O\e(B <module>mod_proxy</module> \e$B$,\e(B<em>\e$BI,MW$G$9\e(B</em>\e$B!#\e(B
34     <code>Apache JServ Protocol version 1.3</code> (\e$B0J9_\e(B <em>AJP13</em>)
35     \e$B$r%5%]!<%H$7$^$9!#\e(B</p>
36
37     <p><code>AJP13</code> \e$B%W%m%H%3%k$r07$($k$h$&$K$9$k$K$O\e(B
38     <module>mod_proxy</module> \e$B$H\e(B <module>mod_proxy_ajp</module>
39     \e$B$r%5!<%P$KAH$_9~$`I,MW$,$"$j$^$9!#\e(B</p>
40
41     <note type="warning"><title>\e$B7Y9p\e(B</title>
42       <p><a href="#access"
43       >\e$B0BA4$J%5!<%P$K$9$k\e(B</a>\e$B$^$G%W%m%/%75!G=$OM-8z$K$7$J$$$G$/$@$5$$!#\e(B
44       \e$B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"\e(B
45       \e$B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#\e(B</p>
46     </note>
47 </summary>
48
49 <seealso><module>mod_proxy</module></seealso>
50
51 <section id="overviewprotocol"><title>\e$B%W%m%H%3%k$N35MW\e(B</title>
52     <p><code>AJP13</code> \e$B%W%m%H%3%k$O%Q%1%C%H;X8~$G$9!#\e(B
53     \e$B2DFI$J%W%l!<%s%F%-%9%H7A<0$G$O$J$/%P%$%J%j7A<0$K$J$C$?$N$O!"\e(B
54     \e$B$*$=$i$/%Q%U%)!<%^%s%9>e$NM}M3$K$h$j$^$9!#\e(B
55     \e$B%&%'%V%5!<%P$O%5!<%V%l%C%H%3%s%F%J$H\e(B TCP \e$B%3%M%/%7%g%s$GDL?.$7$^$9!#\e(B
56     \e$B%=%1%C%H@8@.$O=E$$=hM}$J$N$G!"Ii2Y$r8:$i$9$?$a$K!"%5!<%V%l%C%H%3%s%F%J$H$N\e(B
57     TCP \e$B@\B3$r0];}$7!"J#?t$N%j%/%(%9%H!&%l%9%]%s%9=hM}%5%$%/%k$KBP$7$F0l$D$N\e(B
58     \e$B%3%M%/%7%g%s$r;H$$$^$o$9$h$&$K$J$C$F$$$^$9!#\e(B</p>
59     <p>\e$B$"$k%j%/%(%9%H$K%3%M%/%7%g%s$,3d$jEv$F$i$l$k$H!"$=$N=hM}%5%$%/%k$,\e(B
60     \e$B40N;$9$k$^$GB>$N$b$N$K;H$o$l$k$3$H$O$"$j$^$;$s!#\e(B
61     \e$B$D$^$j%3%M%/%7%g%s>e$G$O!"%j%/%(%9%H$NF1;~=hM}$O9T$o$l$^$;$s!#\e(B
62     \e$B$3$N$?$a!"%3%M%/%7%g%sN>C<$G$N<B9T$9$k%3!<%I$r4J7i$K$G$-$k0lJ}$G!"\e(B
63     \e$BF1;~$K3+$/%3%M%/%7%g%s$OB?$/$J$C$F$$$^$9!#\e(B</p>
64     <p>\e$B%5!<%V%l%C%H%3%s%F%J$X$N%3%M%/%7%g%s$r3+$$$?8e$O!"%3%M%/%7%g%s$N>uBV$O\e(B
65     \e$B<!$N$I$l$+$K$J$j$^$9\e(B:</p>
66     <ul>
67     <li> Idle <br />\e$B%3%M%/%7%g%s>e$G=hM}$5$l$F$$$k%j%/%(%9%H$O$"$j$^$;$s!#\e(B</li>
68     <li> Assigned <br />\e$B%3%M%/%7%g%s$O%j%/%(%9%H$r=hM}Cf$G$9!#\e(B</li>
69     </ul>
70     <p>\e$B%3%M%/%7%g%s$,FCDj$N%j%/%(%9%H$K%"%5%$%s$5$l$k$H!"4pK\E*$J>pJs\e(B (\e$BNc$($P\e(B
71     HTTP \e$B%X%C%@Ey\e(B) \e$B$,05=L$5$l$?7A\e(B (\e$BNc$($PDL>o$NJ8;zNs$O@0?t$K%(%s%3!<%I$5$l$^$9\e(B)
72     \e$B$GE>Aw$5$l$^$9!#>\:Y$O2<5-$N!V%j%/%(%9%H%Q%1%C%H$N9=B$!W$r;2>H$7$F$/$@$5$$!#\e(B
73     \e$B%j%/%(%9%H$K%\%G%#$,B8:_\e(B <code>(content-length > 0)</code> \e$B$9$l$P!"\e(B
74     \e$B4pK\E*$J>pJs$ND>8e$KJL%Q%1%C%H$GE>Aw$5$l$^$9!#\e(B</p>
75     <p>\e$B$3$N;~E@$G$*$=$i$/!"%5!<%V%l%C%H%3%s%F%J$O=hM}$r3+;O$G$-$k$h$&$K$J$j$^$9!#\e(B
76     \e$B$G$9$N$G!"<!$N%a%C%;!<%8$r%&%'%V%5!<%P$KLa$7$FCN$i$;$i$l$k$h$&$K$J$j$^$9!#\e(B</p>
77     <ul>
78     <li>SEND_HEADERS <br/>\e$B%V%i%&%6$K%X%C%@$rAw?.$7$^$9!#\e(B</li>
79     <li>SEND_BODY_CHUNK <br/>\e$B%V%i%&%6$K%\%G%#%G!<%?$N%A%c%s%/$rAw$j$^$9!#\e(B
80     </li>
81     <li>GET_BODY_CHUNK <br/>\e$B%j%/%(%9%H$N%G!<%?$rA4$F<u$1<h$j=*$o$C$F$$$J$$$H$-$K!"\e(B
82     \e$B;D$C$F$$$k%G!<%?$r<u$1<h$j$^$9!#%Q%1%C%H$K$"$kDj$^$C$?:GBgD9$,$"$j!"G$0U$N\e(B
83     \e$BBg$-$5$N%G!<%?$,%j%/%(%9%H$N%\%G%#$H$7$F4^$^$l$&$k>l9g\e(B 
84     (\e$BNc$($P%U%!%$%k$N%"%C%W%m!<%I$N>l9g\e(B) \e$B$KI,MW$H$J$j$^$9!#\e(B
85     (\e$BCm\e(B: HTTP \e$B$N%A%c%s%/E>Aw$H$O4XO"$"$j$^$;$s!#\e(B)</li>
86     <li>END_RESPONSE <br/>\e$B%j%/%(%9%H=hM}%5%$%/%k$r=*N;$7$^$9!#\e(B</li>
87     </ul>
88     <p>\e$B8D!9$N%a%C%;!<%8$O$=$l$>$l0[$J$k%G!<%?%Q%1%C%H7A<0$K$J$C$F$$$^$9!#\e(B
89     \e$B8e=R$N!V%l%9%]%s%9%Q%1%C%H$N9=B$!W$r;2>H$7$F$/$@$5$$!#\e(B</p>
90 </section>
91
92 <section id="basppacketstruct"><title>\e$B4pK\%Q%1%C%H9=B$\e(B</title>
93     <p>\e$B$3$N%W%m%H%3%k$K$O\e(B XDR \e$B$+$i<u$17Q$$$@ItJ,$,>/$7$"$j$^$9$,!"B?$/$NE@$G\e(B
94     \e$B0[$J$j$^$9\e(B (\e$BNc$($P\e(B 4 \e$B%P%$%H%"%i%$%a%s%H$G$J$$$3$H$J$I\e(B) \e$B!#\e(B</p>
95     <p>\e$B%P%$%H%*!<%@!<\e(B: \e$B8D!9$N%P%$%H$N%(%s%G%#%"%s$,$I$&$J$C$F$$$k$+$O!"\e(B
96     \e$B;d$O>\$7$/$J$$$N$G$9$,!"%j%H%k%(%s%G%#%"%s$K$J$C$F$$$k$H;W$$$^$9!#\e(B
97     XDR \e$B;EMM$G$=$&$J$C$F$$$k$N$H!"AG@2$i$7$$$3$H$K\e(B sys/socket \e$B%i%$%V%i%j$,\e(B
98     (C \e$B$G\e(B) \e$B$=$&$$$&Iw$K$G$-$F$$$k$N$G$=$&$J$N$@$H;W$$$^$7$?!#\e(B
99     \e$B%=%1%C%H8F$S=P$7$NFbIt$K$D$$$F$h$j>\$7$$J}$,$$$i$C$7$c$$$^$7$?$i!"\e(B
100     \e$B$465<x$/$@$5$$!#\e(B</p>
101     <p>\e$B%W%m%H%3%k$K$O\e(B 4 \e$B$D$N%G!<%?%?%$%W$,$"$j$^$9\e(B: byte, boolean, 
102     integer, string \e$B$G$9!#\e(B</p>
103     <dl>
104     <dt><strong>Byte</strong></dt><dd>\e$B%P%$%H0l$D$G$9!#\e(B</dd>
105     <dt><strong>Boolean</strong></dt>
106       <dd>\e$B%P%$%H0l$D$G!"\e(B<code>1 = true</code>, <code>0 = false</code> \e$B$G$9!#\e(B
107       (C \e$B$N$h$&$K\e(B) \e$BHsNm$r??$H$7$F07$C$F$7$^$&$H!"$"$k>l9g$OF0$/$+$b$7$l$^$;$s$7!"\e(B
108       \e$BF0$+$J$$$+$b$7$l$^$;$s!#\e(B</dd>
109     <dt><strong>Integer</strong></dt>
110       <dd><code>0 \e$B$+$i\e(B 2^16 (32768)</code> \e$B$NHO0O$N?t;z!#9b<!$N\e(B 2 \e$B%P%$%H$,\e(B
111       \e$B@h$K3JG<$5$l$^$9!#\e(B</dd>
112     <dt><strong>String</strong></dt>
113       <dd>\e$B2DJQD9$NJ8;zNs\e(B (2^16 \e$B$,D9$5$N>e8B\e(B) \e$B!#D9$5>pJs$N%Q%1%C%H\e(B 2 \e$B%P%$%H$N8e$K\e(B
114       \e$BJ8;zNs\e(B (\e$B=*C<J8;z\e(B '\0' \e$B$r4^$`\e(B) \e$B$,B3$/7A<0$G%(%s%3!<%I$5$l$^$9!#\e(B
115       \e$B%(%s%3!<%I$5$l$F$$$kD9$5>pJs$O:G8e$N\e(B '\0' \e$B$r\e(B<strong>\e$B%+%&%s%H$7$J$$\e(B</strong>
116       \e$B$3$H$KCm0U$7$F$/$@$5$$!=!=$3$l$O\e(B <code>strlen</code> \e$B$HF1MM$G$9!#\e(B
117       \e$B$3$l$i$N=*C<J8;z$r%9%-%C%W$9$k$?$a$K!"$"$^$j0UL#$NL5$$%$%s%/%j%a%s%HJ8\e(B
118       \e$B$r$?$/$5$s=q$+$J$$$H$$$1$J$$$N$O!"\e(B
119       Java \e$B$NB&$+$i8+$k$H>/$7J6$i$o$7$/46$8$i$l$k$+$b$7$l$^$;$s!#\e(B
120       \e$B$3$&$J$C$?M}M3$O$*$=$i$/!"\e(BServlet \e$B%3%s%F%J$+$iJV$5$l$kJ8;zNs$rFI$_=P$9;~$K!"\e(B
121       \e$B8zN($h$/\e(B C \e$B$N%3!<%I$r=q$1$k$h$&$K$9$k!=!=%5!<%V%l%C%H$+$iJV$5$l$k\e(B
122       \e$BJ8;zNs$O\e(B \0 \e$BJ8;z$G=*C<$5$l$F$$$k$N$G!"\e(BC \e$B$N%3!<%I$G$O$o$6$o$6%3%T!<$r$;$:$K!"\e(B
123       \e$B0l$D$N%P%C%U%!$X$N%j%U%!%l%s%9$r<h$j2s$9$h$&$K=q$/$3$H$,$G$-$k!=!=\e(B
124       \e$B$?$a$@$H;W$o$l$^$9!#\e(B
125       '\0' \e$BJ8;z$,$J$$>l9g$O!"\e(BC \e$B$G$OJ8;zNs$N5,B'$K9g$&$h$&$K%3%T!<$7$J$1$l$P\e(B
126       \e$B$$$1$J$/$J$C$F$7$^$$$^$9!#\e(B</dd>
127     </dl>
128
129   <section><title>\e$B%Q%1%C%H%5%$%:\e(B</title>
130     <p>\e$BB?$/$N%3!<%I$G$=$&$J$C$F$$$k$N$G$9$,!"%Q%1%C%H%5%$%:$N:GBg%5%$%:$O\e(B
131     <code>8 * 1024 (8K)</code> \e$B$G$9!#%Q%1%C%H$N<B:]$ND9$5$O%X%C%@$K\e(B
132     \e$B%(%s%3!<%I$5$l$FF~$C$F$$$^$9!#\e(B</p>
133   </section>
134   <section><title>\e$B%Q%1%C%H%X%C%@\e(B</title>
135     <p>\e$B%5!<%P$+$i%3%s%F%J$KAw=P$5$l$k%Q%1%C%H$O\e(B <code>0x1234</code> \e$B$G;O$^$j$^$9!#\e(B
136     \e$B%3%s%F%J$+$i%5!<%P$KAw$i$l$k%Q%1%C%H$O\e(B <code>AB</code> (ASCII \e$B%3!<%I\e(B A \e$B$H\e(B
137     ASCII \e$B%3!<%I\e(B B) \e$B$G;O$^$j$^$9!#$3$NFs%P%$%H$N8e$K!"%Z%$%m!<%ID9$,\e(B (\e$B>e5-$N7A<0$G\e(B) 
138     \e$BB3$-$^$9!#$3$N$?$a!"%Z%$%m!<%ID9$N:GBgCM$O\e(B 2^16 \e$B$K$G$-$k$h$&$K;W$($^$9$,!"\e(B
139     \e$B<B:]$K$O%3!<%I$G$O:GBgCM$O\e(B 8K \e$B$K@_Dj$5$l$F$$$^$9!#\e(B</p>
140     <table>
141       <tr>
142         <td colspan="6"><em>\e$B%Q%1%C%H7A<0\e(B (Server->Container)</em></td>
143       </tr>
144       <tr>
145         <td>Byte</td>
146         <td>0</td>
147         <td>1</td>
148         <td>2</td>
149         <td>3</td>
150         <td>4...(n+3)</td>
151       </tr>
152       <tr>
153         <td>Contents</td>
154         <td>0x12</td>
155         <td>0x34</td>
156         <td colspan="2">\e$B%G!<%?D9\e(B (n)</td>
157         <td>Data</td>
158       </tr>
159     </table>
160     <table>
161       <tr>
162         <td colspan="6"><em>\e$B%Q%1%C%H7A<0\e(B (Container->Server)</em></td>
163       </tr>
164       <tr>
165         <td>Byte</td>
166         <td>0</td>
167         <td>1</td>
168         <td>2</td>
169         <td>3</td>
170         <td>4...(n+3)</td>
171       </tr>
172       <tr>
173         <td>Contents</td>
174         <td>A</td>
175         <td>B</td>
176         <td colspan="2">\e$B%G!<%?D9\e(B (n)</td>
177         <td>Data</td>
178       </tr>
179     </table>
180     <p>\e$B$[$H$s$I$N%Q%1%C%H$G!"%Z%$%m!<%I$N:G=i$N%P%$%H$,%a%C%;!<%8$N7?$r%(%s%3!<%I\e(B
181      \e$B$7$F$$$^$9!#Nc30$O%5!<%P$+$i%3%s%F%J$KAw$i$l$k%j%/%(%9%H%\%G%#%Q%1%C%H$G$9\e(B
182      \e$B!=!=$3$l$i$OI8=`E*$J%Q%1%C%H7A<0\e(B (<code>0x1234</code> \e$B$H%Q%1%C%HD9\e(B)
183      \e$B$G$9$,!"$=$N8e$KB3$/%W%l%U%#%C%/%9%3!<%I$,$"$j$^$;$s!#\e(B</p>
184      <p>\e$B%&%'%V%5!<%P$O<!$N%a%C%;!<%8$r%5!<%V%l%C%H%3%s%F%J$KAw=P$G$-$^$9!#\e(B</p>
185     <table>
186       <tr>
187         <td>\e$B%3!<%I\e(B</td>
188         <td>\e$B%Q%1%C%H$N7?\e(B</td>
189         <td>\e$B0UL#\e(B</td>
190       </tr>
191       <tr>
192         <td>2</td>
193         <td>Forward Request</td>
194         <td>\e$B%j%/%(%9%H=hM}%5%$%/%k$r8eB3$N%G!<%?$H$H$b$K3+;O$9$k!#\e(B</td>
195       </tr>
196       <tr>
197         <td>7</td>
198         <td>Shutdown</td>
199         <td>\e$B%&%'%V%5!<%P$,%3%s%F%J$K!"%3%s%F%J$r=*N;$9$k$h$&$KEA$($k!#\e(B</td>
200       </tr>
201       <tr>
202         <td>8</td>
203         <td>Ping</td>
204         <td>\e$B%&%'%V%5!<%P$,%3%s%F%J$K@)8f$r<u$1;}$D$h$&$KEA$($k\e(B 
205         (\e$B%;%-%e%"%m%0%$%s%U%'!<%:\e(B) \e$B!#\e(B</td>
206       </tr>
207       <tr>
208         <td>10</td>
209         <td>CPing</td>
210         <td>\e$B%&%'%V%5!<%P$,%3%s%F%J$K\e(B CPong \e$B$GB(:B$K1~Ez$9$k$h$&$KEA$($k!#\e(B</td>
211       </tr>
212       <tr>
213         <td>none</td>
214         <td>Data</td>
215         <td>\e$B%5%$%:\e(B (2 \e$B%P%$%H\e(B) \e$B$H$=$l$KB3$/%\%G%#%G!<%?!#\e(B</td>
216       </tr>
217     </table>
218     <p>\e$B4pK\E*$J%;%-%e%j%F%#$r3NJ]$9$k$?$a!"%[%9%H$5$l$F$$$k%^%7%s$HF10l$N\e(B
219     \e$B%^%7%s$+$i$N%j%/%(%9%H$KBP$7$F$N$_!"%3%s%F%J$O<B:]$K\e(B <code>Shutdown</code>
220     \e$B$r<B9T$7$^$9!#\e(B</p>
221     <p>\e$B:G=i$N\e(B <code>Data</code> \e$B%Q%1%C%H$O!"\e(B<code>Forward Request</code> 
222     \e$B$ND>8e$K%&%'%V%5!<%P$+$iAw$i$l$^$9!#\e(B</p>
223     <p>\e$B%5!<%V%l%C%H%3%s%F%J$O%&%'%V%5!<%P$K!"<!$N%?%$%W$N%a%C%;!<%8$rAw$k$3$H$,\e(B
224     \e$B$G$-$^$9\e(B :</p>
225     <table>
226       <tr>
227         <td>\e$B%3!<%I\e(B</td>
228         <td>\e$B%Q%1%C%H$N7?\e(B</td>
229         <td>\e$B0UL#\e(B</td>
230       </tr>
231       <tr>
232         <td>3</td>
233         <td>Send Body Chunk</td>
234         <td>\e$B%5!<%V%l%C%H%3%s%F%J$+$i%&%'%V%5!<%P$K\e(B
235         (\e$B$=$7$F$*$=$i$/$=$N$^$^%V%i%&%6$K\e(B)\e$B!"%\%G%#$N%A%c%s%/$rAw$k!#\e(B</td>
236       </tr>
237       <tr>
238         <td>4</td>
239         <td>Send Headers</td>
240         <td>\e$B%5!<%V%l%C%H%3%s%F%J$+$i%&%'%V%5!<%P$K\e(B (\e$B$=$7$F$*$=$i$/$=$N$^$^%V%i%&%6$K\e(B)
241         \e$B%l%9%]%s%9%X%C%@$rAw$k!#\e(B</td>
242       </tr>
243       <tr>
244         <td>5</td>
245         <td>End Response</td>
246         <td>\e$B%l%9%]%s%9\e(B (\e$B$D$^$j%j%/%(%9%H=hM}%5%$%/%k\e(B) \e$B=*N;$NL\0u$rAw$k!#\e(B
247         </td>
248       </tr>
249       <tr>
250         <td>6</td>
251         <td>Get Body Chunk</td>
252         <td>\e$B$^$@A4$FE>Aw$5$l$F$$$J$$>l9g!";D$C$F$$$k%j%/%(%9%H$N%G!<%?$r<u$1<h$k!#\e(B
253         </td>
254       </tr>
255       <tr>
256         <td>9</td>
257         <td>CPong \e$B1~Ez\e(B</td>
258         <td>CPing \e$B%j%/%(%9%H$K1~Ez$9$k!#\e(B</td>
259       </tr>
260     </table>
261     <p>\e$B>e5-%a%C%;!<%8$O!"$=$l$>$lFbIt9=B$$,0[$J$C$F$$$^$9!#>\:Y$O2<5-$r$4Mw$/$@$5$$!#\e(B
262     </p>
263   </section>
264 </section>
265 <section id="rpacetstruct"><title>\e$B%j%/%(%9%H%Q%1%C%H9=B$\e(B</title>
266     <p>\e$B%5!<%P$+$i%3%s%F%J$XAw$i$l$k%a%C%;!<%8$,\e(B
267     <em>Forward Request</em> \e$B7?$N>l9g\e(B :</p>
268     <example><pre>
269 AJP13_FORWARD_REQUEST :=
270     prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
271     method           (byte)
272     protocol         (string)
273     req_uri          (string)
274     remote_addr      (string)
275     remote_host      (string)
276     server_name      (string)
277     server_port      (integer)
278     is_ssl           (boolean)
279     num_headers      (integer)
280     request_headers *(req_header_name req_header_value)
281     attributes      *(attribut_name attribute_value)
282     request_terminator (byte) OxFF
283     </pre></example>
284     <p><code>request_headers</code> \e$B$O<!$N$h$&$J9=B$$K$J$C$F$$$^$9\e(B :
285     </p><example><pre>
286 req_header_name := 
287     sc_req_header_name | (string)  [see below for how this is parsed]
288
289 sc_req_header_name := 0xA0xx (integer)
290
291 req_header_value := (string)
292 </pre></example>
293     <p><code>\e$BB0@-\e(B</code> \e$B$O%*%W%7%g%s$G!"<!$N$h$&$J9=B$$r$7$F$$$^$9\e(B :</p>
294     <example><pre>
295 attribute_name := sc_a_name | (sc_a_req_attribute string)
296
297 attribute_value := (string)
298
299     </pre></example>
300     <p>\e$B$b$C$H$b=EMW$J%X%C%@$O\e(B <code>content-length</code> \e$B$@$H$$$&$3$H$K\e(B
301     \e$BCm0U$7$F$/$@$5$$!#%3%s%F%J$O<!$N%Q%1%C%H$rC5$9$+$I$&$+$r!"\e(B
302     \e$B$=$l$r8+$F7h$a$k$+$i$G$9!#\e(B</p>
303   <section><title>Forward Request \e$BMWAG$N>\:Y$J@bL@\e(B
304   </title></section>
305   <section><title>Request prefix</title>
306     <p>\e$B%j%/%(%9%H$K$D$$$F$OA4$F!"$3$NCM$O\e(B 2 \e$B$K$J$j$^$9!#B>$N\e(B Prefix \e$B%3!<%I$N>\:Y$O\e(B
307     \e$B>e5-$r$4Mw$/$@$5$$!#\e(B</p>
308   </section>
309   <section><title>Method</title>
310     <p>HTTP \e$B%a%=%C%I$O\e(B 1 \e$B%P%$%H$K%(%s%3!<%I$5$l$^$9\e(B :</p>
311     <table>
312       <tr><td>Command Name</td><td>Code</td></tr>
313       <tr><td>OPTIONS</td><td>1</td></tr>
314       <tr><td>GET</td><td>2</td></tr>
315       <tr><td>HEAD</td><td>3</td></tr>
316       <tr><td>POST</td><td>4</td></tr>
317       <tr><td>PUT</td><td>5</td></tr>
318       <tr><td>DELETE</td><td>6</td></tr>
319       <tr><td>TRACE</td><td>7</td></tr>
320       <tr><td>PROPFIND</td><td>8</td></tr>
321       <tr><td>PROPPATCH</td><td>9</td></tr>
322       <tr><td>MKCOL</td><td>10</td></tr>
323       <tr><td>COPY</td><td>11</td></tr>
324       <tr><td>MOVE</td><td>12</td></tr>
325       <tr><td>LOCK</td><td>13</td></tr>
326       <tr><td>UNLOCK</td><td>14</td></tr>
327       <tr><td>ACL</td><td>15</td></tr>
328       <tr><td>REPORT</td><td>16</td></tr>
329       <tr><td>VERSION-CONTROL</td><td>17</td></tr>
330       <tr><td>CHECKIN</td><td>18</td></tr>
331       <tr><td>CHECKOUT</td><td>19</td></tr>
332       <tr><td>UNCHECKOUT</td><td>20</td></tr>
333       <tr><td>SEARCH</td><td>21</td></tr>
334       <tr><td>MKWORKSPACE</td><td>22</td></tr>
335       <tr><td>UPDATE</td><td>23</td></tr>
336       <tr><td>LABEL</td><td>24</td></tr>
337       <tr><td>MERGE</td><td>25</td></tr>
338       <tr><td>BASELINE_CONTROL</td><td>26</td></tr>
339       <tr><td>MKACTIVITY</td><td>27</td></tr>
340     </table>
341     <p>\e$B:#8e$N\e(B ajp13 \e$B%P!<%8%g%s$G$O!"$3$N0lMw$K$J$$!":#8eDI2C$5$l$k%a%=%C%I$r\e(B
342     \e$BAw$k$+$b$7$l$^$;$s!#\e(B</p>
343   </section>
344   <section><title>protocol, req_uri, remote_addr, remote_host, server_name,
345   server_port, is_ssl</title>
346     <p>\e$B$3$l$i$O$^$5$KJ8;zDL$j$N$b$N$G$9!#$I$l$bI,MW$G!"%j%/%(%9%H$NKh2s$K$D$-\e(B
347     \e$BAw$i$l$^$9!#\e(B</p>
348   </section>
349   <section><title>Headers</title>
350     <p><code>request_headers</code> \e$B$N9=B$$O<!$N$h$&$J$b$N$G$9\e(B :
351     \e$B$^$:%X%C%@$N?t\e(B <code>num_headers</code> \e$B$,%(%s%3!<%I$5$l$^$9!#\e(B
352     \e$B<!$K%X%C%@L>\e(B <code>req_header_name</code> / \e$BCM\e(B <code>req_header_value</code>
353     \e$B$NAH$,B3$-$^$9!#8zN($N$?$a!"0lHLE*$J%X%C%@$O@0?t$G%(%s%3!<%I$7$FE>Aw$7$^$9!#\e(B
354     \e$B%X%C%@L>$,4pK\%X%C%@$N0lMw$KL5$$>l9g$O!"DL>oDL$j\e(B (\e$BJ8;zNs$H$7$F!"D9$5\e(B
355     \e$B%W%l%U%#%C%/%9IU$-$G\e(B) \e$BE>Aw$5$l$^$9!#0lHLE*$J%X%C%@\e(B 
356     <code>sc_req_header_name</code> \e$B$N0lMw$H$=$N%3!<%I$O<!$NDL$j$G$9\e(B 
357     (\e$B$I$l$bBgJ8;z>.J8;z$r6hJL$7$^$9\e(B) :</p>
358     <table>
359       <tr><td>\e$BL>A0\e(B</td><td>\e$B%3!<%I$NCM\e(B</td><td>\e$B%3!<%IL>\e(B</td></tr>
360       <tr><td>accept</td><td>0xA001</td><td>SC_REQ_ACCEPT</td></tr>
361       <tr><td>accept-charset</td><td>0xA002</td><td>SC_REQ_ACCEPT_CHARSET
362       </td></tr>
363       <tr><td>accept-encoding</td><td>0xA003</td><td>SC_REQ_ACCEPT_ENCODING
364       </td></tr>
365       <tr><td>accept-language</td><td>0xA004</td><td>SC_REQ_ACCEPT_LANGUAGE
366       </td></tr>
367       <tr><td>authorization</td><td>0xA005</td><td>SC_REQ_AUTHORIZATION</td>
368       </tr>
369       <tr><td>connection</td><td>0xA006</td><td>SC_REQ_CONNECTION</td></tr>
370       <tr><td>content-type</td><td>0xA007</td><td>SC_REQ_CONTENT_TYPE</td>
371       </tr>
372       <tr><td>content-length</td><td>0xA008</td><td>SC_REQ_CONTENT_LENGTH</td>
373       </tr>
374       <tr><td>cookie</td><td>0xA009</td><td>SC_REQ_COOKIE</td></tr>
375       <tr><td>cookie2</td><td>0xA00A</td><td>SC_REQ_COOKIE2</td></tr>
376       <tr><td>host</td><td>0xA00B</td><td>SC_REQ_HOST</td></tr>
377       <tr><td>pragma</td><td>0xA00C</td><td>SC_REQ_PRAGMA</td></tr>
378       <tr><td>referer</td><td>0xA00D</td><td>SC_REQ_REFERER</td></tr>
379       <tr><td>user-agent</td><td>0xA00E</td><td>SC_REQ_USER_AGENT</td></tr>
380     </table>
381     <p>\e$B$3$l$rFI$_9~$`\e(B Java \e$B$N%3!<%I$G$O!":G=i$N\e(B 2 \e$B%P%$%H@0?t$r<h$j9~$_!"\e(B
382     \e$BL\0u$K$J$k%P%$%H\e(B <code>'0xA0'</code> \e$B$G$"$l$P!"%X%C%@L>$NG[Ns$N\e(B
383     \e$B%$%s%G%C%/%9$r;H$$$^$9!#@hF,%P%$%H$,\e(B <code>0xA0</code> \e$B$G$J$$>l9g$O!"\e(B
384     \e$B@hF,\e(B 2 \e$B%P%$%H$OJ8;zNsD9$rI=$9@0?t$G$"$k$H2r<a$7!"FI$_9~$_$O$8$a$^$9!#\e(B</p>
385     <p>\e$B%X%C%@L>$ND9$5$O\e(B <code>0x9999 (==0xA000 -1)</code> \e$B0J>e$K$J$i$J$$$H$$$&\e(B
386     \e$B2>Dj$N2<$KF0$$$F$$$F!">/$7$"$$$^$$$G$9$,9gM}E*$J5sF0$K$J$C$F$$$^$9!#\e(B</p>
387     <note><title>\e$BCm\e(B:</title>
388     <code>content-length</code> \e$B%X%C%@$O$H$F$b=EMW$G$9!#\e(B
389     \e$BB8:_$7$F$$$FHs%<%m$G$"$l$P!"%j%/%(%9%H$K$O%\%G%#$,$"$k\e(B (\e$BNc$($P\e(B POST 
390     \e$B%j%/%(%9%H\e(B) \e$B$H?dB,$7!"$=$N%\%G%#$r<h$j9~$`$?$a$K\e(B
391     \e$BD>8e$N%Q%1%C%H$rF~NO%9%H%j!<%`$+$iFI$_9~$_$O$8$a$^$9!#\e(B
392     </note>
393   </section>
394   <section><title>\e$BB0@-\e(B</title>
395     <p><code>?</code> \e$B%W%l%U%#%C%/%9$G;O$^$kB0@-\e(B (\e$BNc\e(B <code>?context</code>)
396     \e$B$O!#>JN,2DG=$G$9!#$=$l$>$lB0@-$N7?$r<($9\e(B 1 \e$B%P%$%H$N%3!<%I$H!"\e(B
397     \e$BCM$NJ8;zNs$,B3$-$^$9!#\e(B
398     \e$B$3$l$i$O=gITF1$GAw$k$3$H$,$G$-$^$9\e(B (C \e$B$N%3!<%I$O>o$K2<$N0lMw=g$K\e(B
399     \e$BAw$k$h$&$G$9$,\e(B) \e$B!#\e(B
400     \e$B%*%W%7%g%s$NB0@-$N%j%9%H$N:G8e$K$O!"FCJL$J=*N;%3!<%I$,Aw$i$l$^$9!#\e(B
401     \e$B%3!<%I$N0lMw$O\e(B : </p>
402     <table>
403       <tr><td>Information</td><td>Code Value</td><td>Note</td></tr>
404       <tr><td>?context</td><td>0x01</td><td>\e$BL$<BAu\e(B
405       </td></tr>
406       <tr><td>?servlet_path</td><td>0x02</td><td>\e$BL$<BAu\e(B
407       </td></tr>
408       <tr><td>?remote_user</td><td>0x03</td><td></td></tr>
409       <tr><td>?auth_type</td><td>0x04</td><td></td></tr>
410       <tr><td>?query_string</td><td>0x05</td><td></td></tr>
411       <tr><td>?jvm_route</td><td>0x06</td><td></td></tr>
412       <tr><td>?ssl_cert</td><td>0x07</td><td></td></tr>
413       <tr><td>?ssl_cipher</td><td>0x08</td><td></td></tr>
414       <tr><td>?ssl_session</td><td>0x09</td><td></td></tr>
415       <tr><td>?req_attribute</td><td>0x0A</td><td>Name (the name of the
416       attribute follows)</td></tr>
417       <tr><td>?ssl_key_size</td><td>0x0B</td><td></td></tr>
418       <tr><td>are_done</td><td>0xFF</td><td>request_terminator</td></tr>
419     </table>
420     <p><code>context</code> \e$B$H\e(B <code>servlet_path</code> \e$B$O8=:_$N\e(B C \e$B$N\e(B
421     \e$B%3!<%I$G$O%;%C%H$5$l$F$$$^$;$s!#$^$?!"$[$H$s$I$N\e(B Java \e$B$N%3!<%I$G$b!"\e(B
422     \e$B$3$N%U%#!<%k%I$G2?$,Aw$i$l$F$bL5;k$5$l$^$9\e(B (\e$B$3$l$i$N%3!<%I$N8e$KJ8;zNs$,\e(B
423     \e$BAw$i$l$k$H2u$l$k$b$N$b$"$j$^$9\e(B)\e$B!#\e(B
424     \e$B$3$l$,%P%0$J$N$+!"C1$KL$<BAu$J$N$+!"Nr;KE*7P0^$G;D$C$F$$$k%3!<%I$J$N$+\e(B
425     \e$BJ,$+$j$^$;$s$,!"%3%M%/%7%g%s$NN>B&$H$b$G8+Ev$?$j$^$;$s!#\e(B</p>
426     <p><code>remote_user</code> \e$B$H\e(B <code>auth_type</code> \e$B$O$*$=$i$/\e(B
427     HTTP \e$B%l%Y%k$NG'>Z$r;2>H$7$F$$$F!"%j%b!<%H%f!<%6$N%f!<%6L>$HG'>Z$K;HMQ$7$?\e(B
428     \e$B%?%$%W\e(B (\e$BNc\e(B Basic, Digest) \e$B$K$D$$$F$d$j<h$j$7$^$9!#\e(B</p>
429     <p><code>query_string</code>, <code>ssl_cert</code>, 
430     <code>ssl_cipher</code>, <code>ssl_session</code> 
431     \e$B$O\e(B HTTP \e$B$H\e(B HTTPS \e$B$NBP1~$9$kItJ,$r;2>H$7$^$9!#\e(B</p>
432     <p><code>jvm_route</code> \e$B$O%9%F%#%C%-!<%;%C%7%g%s$N%5%]!<%H!=!=\e(B
433     \e$B%m!<%I%P%i%s%9$7$F$$$kJ#?t$N%5!<%PCf$NFCDj$N\e(B Tomcat \e$B%$%s%9%?%s%9$H!"\e(B
434     \e$B%f!<%6$N%;%C%7%g%s$H$rI3IU$1$k5!G=!=!=$K;H$o$l$^$9!#\e(B</p>
435     <p>\e$B$3$N4pK\B0@-0lMw$KL5$$$b$N$K$D$$$F$O!"\e(B<code>req_attribute</code>
436     \e$B%3!<%I\e(B <code>0x0A</code> \e$B7PM3$GB0@-$r2?8D$G$bAw$k$3$H$,$G$-$^$9!#\e(B
437     \e$BB0@-$NL>A0$HCM$NJ8;zNs$NAH$r!"$=$l$>$l$3$N%3!<%I$ND>8e$KAw$j$^$9!#\e(B
438     \e$B4D6-JQ?t$O$3$NJ}K!$GEA$($i$l$^$9!#\e(B</p>
439     <p>\e$B:G8e$KB0@-$,A4$FAw?.$5$l$?8e$K!"B0@-$N=*C<$r<($9\e(B <code>0xFF</code> 
440     \e$B$,Aw=P$5$l$^$9!#$3$N?.9f$OB0@-$N0lMw$N=*$o$j$r<($9$HF1;~$K!"%j%/%(%9%H\e(B
441     \e$B%Q%1%C%H$N=*C<$r$b<($7$F$$$^$9!#\e(B</p>
442   </section>
443 </section>
444
445 <section id="resppacketstruct"><title>\e$B%l%9%]%s%9%Q%1%C%H9=B$\e(B</title>
446     <p>\e$B%3%s%F%J$,%5!<%P$KAw$jJV$9$3$H$N$G$-$k%a%C%;!<%8\e(B:</p>
447     <example><pre>
448 AJP13_SEND_BODY_CHUNK :=
449   prefix_code   3
450   chunk_length  (integer)
451   chunk        *(byte)
452
453
454 AJP13_SEND_HEADERS :=
455   prefix_code       4
456   http_status_code  (integer)
457   http_status_msg   (string)
458   num_headers       (integer)
459   response_headers *(res_header_name header_value)
460
461 res_header_name :=
462     sc_res_header_name | (string)   [see below for how this is parsed]
463
464 sc_res_header_name := 0xA0 (byte)
465
466 header_value := (string)
467
468 AJP13_END_RESPONSE :=
469   prefix_code       5
470   reuse             (boolean)
471
472
473 AJP13_GET_BODY_CHUNK :=
474   prefix_code       6
475   requested_length  (integer)
476     </pre></example>
477   <section><title>\e$B>\:Y\e(B :</title></section>
478   <section><title>Send Body Chunk</title>
479     <p>\e$B%A%c%s%/$O4pK\E*$K$O%P%$%J%j%G!<%?$G!"%V%i%&%6$KD>@\Aw$i$l$^$9!#\e(B</p>
480   </section>
481   <section><title>Send Headers</title>
482     <p>\e$B%9%F!<%?%9%3!<%I$H%a%C%;!<%8$,DL>o$N\e(B HTTP \e$B$NDL?.$K$O$"$j$^$9\e(B (\e$BNc\e(B 
483     <code>200</code> \e$B$H\e(B <code>OK</code>)\e$B!#%l%9%]%s%9%X%C%@L>$O!"\e(B
484     \e$B%j%/%(%9%H%X%C%@L>$HF1MM$NJ}K!$G%(%s%3!<%I$5$l$^$9!#\e(B
485     \e$B%3!<%I$HJ8;zNs$NH=JLJ}K!$N>\:Y$K4X$7$F$O!">e5-$N\e(B header_encoding 
486     \e$B$r;2>H$7$F$/$@$5$$!#\e(B
487     \e$B0lHLE*$J%X%C%@$N%3!<%I$O\e(B :</p>
488     <table>
489       <tr><td>\e$BL>A0\e(B</td><td>\e$B%3!<%I$NCM\e(B</td></tr>
490       <tr><td>Content-Type</td><td>0xA001</td></tr>
491       <tr><td>Content-Language</td><td>0xA002</td></tr>
492       <tr><td>Content-Length</td><td>0xA003</td></tr>
493       <tr><td>Date</td><td>0xA004</td></tr>
494       <tr><td>Last-Modified</td><td>0xA005</td></tr>
495       <tr><td>Location</td><td>0xA006</td></tr>
496       <tr><td>Set-Cookie</td><td>0xA007</td></tr>
497       <tr><td>Set-Cookie2</td><td>0xA008</td></tr>
498       <tr><td>Servlet-Engine</td><td>0xA009</td></tr>
499       <tr><td>Status</td><td>0xA00A</td></tr>
500       <tr><td>WWW-Authenticate</td><td>0xA00B</td></tr>
501     </table>
502     <p>\e$B%3!<%I$+%X%C%@J8;zNs$ND>8e$K$O!"%X%C%@$NCM$,%(%s%3!<%I$5$l$^$9!#\e(B</p>
503   </section>
504   <section><title>End Response</title>
505     <p>\e$B%j%/%(%9%H=hM}%5%$%/%k$N=*N;$rCN$i$;$^$9!#\e(B<code>reuse</code> \e$B%U%i%0$,??\e(B
506     <code>(==1)</code> \e$B$N>l9g!"8=:_;HMQ$7$F$$$k\e(B TCP \e$B%3%M%/%7%g%s$O<!$N?7$7$$\e(B
507     \e$B%j%/%(%9%H$K;H$($k$h$&$K$J$j$^$9!#\e(B<code>reuse</code> \e$B$,56\e(B (C \e$B$N%3!<%I$G$O\e(B
508     1 \e$B0J30$NA4$F\e(B) \e$B$N>l9g$O!"%3%M%/%7%g%s$rJD$8$k$3$H$K$J$j$^$9!#\e(B</p>
509   </section>
510   <section><title>Get Body Chunk</title>
511     <p>(\e$B%\%G%#$N%5%$%:$,Bg$-$9$.$F:G=i$N%Q%1%C%H$K<}$^$i$J$$>l9g$d!"\e(B
512     \e$B%j%/%(%9%H$,%A%c%s%/E>Aw$5$l$?>l9g$J$I$K$O!"\e(B) \e$B%3%s%F%J$O%j%/%(%9%H$+$i$N\e(B
513     \e$B%G!<%?FI$_9~$_MW5a$r$7$^$9!#%5!<%PB&$O$=$l$KBP$7$F!":G>.\e(B 
514     <code>request_length</code> \e$B:GBg\e(B <code>(8186 (8 Kbytes - 6))</code> 
515     \e$B$NHO0O$G!"L$E>Aw$G;D$C$F$$$k%j%/%(%9%H%\%G%#$NBg$-$5$N%G!<%?$r\e(B
516     \e$BAw$jJV$7$^$9!#\e(B<br />
517     \e$B%\%G%#$K$=$l0J>e%G!<%?$,;D$C$F$$$J$$>l9g\e(B (\e$B$D$^$j%5!<%V%l%C%H$,\e(B
518     \e$B%\%G%#$N:G8e$rD6$($FFI$_9~$b$&$H$7$?>l9g\e(B) \e$B!"%5!<%P$O\e(B
519     \e$B%Z%$%m!<%ID9\e(B 0 \e$B$N\e(B<em>\e$B6u%Q%1%C%H\e(B</em><code>(0x12,0x34,0x00,0x00)</code>
520     \e$B$rAw$jJV$7$^$9!#\e(B</p>
521   </section>
522 </section>
523
524
525 </modulesynopsis>