mod_proxy_ajp.xml.ja revision 5d01f40ffd657dd2ac567aacd93cabd162ddfa79
7e89a8365603b31f786f5ef3f6894a736489ead0nd<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
7e89a8365603b31f786f5ef3f6894a736489ead0nd<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
7e89a8365603b31f786f5ef3f6894a736489ead0nd<!-- English Revision: 669473:1673930 (outdated) -->
7e89a8365603b31f786f5ef3f6894a736489ead0nd Licensed to the Apache Software Foundation (ASF) under one or more
7e89a8365603b31f786f5ef3f6894a736489ead0nd contributor license agreements. See the NOTICE file distributed with
7e89a8365603b31f786f5ef3f6894a736489ead0nd this work for additional information regarding copyright ownership.
7e89a8365603b31f786f5ef3f6894a736489ead0nd The ASF licenses this file to You under the Apache License, Version 2.0
7e89a8365603b31f786f5ef3f6894a736489ead0nd (the "License"); you may not use this file except in compliance with
7e89a8365603b31f786f5ef3f6894a736489ead0nd the License. You may obtain a copy of the License at
7e89a8365603b31f786f5ef3f6894a736489ead0nd Unless required by applicable law or agreed to in writing, software
7e89a8365603b31f786f5ef3f6894a736489ead0nd distributed under the License is distributed on an "AS IS" BASIS,
7e89a8365603b31f786f5ef3f6894a736489ead0nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7e89a8365603b31f786f5ef3f6894a736489ead0nd See the License for the specific language governing permissions and
7e89a8365603b31f786f5ef3f6894a736489ead0nd limitations under the License.
7e89a8365603b31f786f5ef3f6894a736489ead0ndをサポートするためのモジュール</description>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <code>Apache JServ Protocol version 1.3</code> (以降 <em>AJP13</em>)
7e89a8365603b31f786f5ef3f6894a736489ead0nd をサポートします。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <module>mod_proxy</module> と <module>mod_proxy_ajp</module>
7e89a8365603b31f786f5ef3f6894a736489ead0nd をサーバに組み込む必要があります。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd >安全なサーバにする</a>までプロクシ機能は有効にしないでください。
7e89a8365603b31f786f5ef3f6894a736489ead0nd オープンプロキシサーバはあなた自身のネットワークにとっても、
7e89a8365603b31f786f5ef3f6894a736489ead0nd インターネット全体にとっても危険です。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd 可読なプレーンテキスト形式ではなくバイナリ形式になったのは、
7e89a8365603b31f786f5ef3f6894a736489ead0nd おそらくパフォーマンス上の理由によります。
7e89a8365603b31f786f5ef3f6894a736489ead0nd ウェブサーバはサーブレットコンテナと TCP コネクションで通信します。
7e89a8365603b31f786f5ef3f6894a736489ead0nd ソケット生成は重い処理なので、負荷を減らすために、サーブレットコンテナとの
7e89a8365603b31f786f5ef3f6894a736489ead0nd TCP 接続を維持し、複数のリクエスト・レスポンス処理サイクルに対して一つの
7e89a8365603b31f786f5ef3f6894a736489ead0nd コネクションを使いまわすようになっています。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>あるリクエストにコネクションが割り当てられると、その処理サイクルが
7e89a8365603b31f786f5ef3f6894a736489ead0nd 完了するまで他のものに使われることはありません。
7e89a8365603b31f786f5ef3f6894a736489ead0nd つまりコネクション上では、リクエストの同時処理は行われません。
7e89a8365603b31f786f5ef3f6894a736489ead0nd このため、コネクション両端での実行するコードを簡潔にできる一方で、
7e89a8365603b31f786f5ef3f6894a736489ead0nd 同時に開くコネクションは多くなっています。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>サーブレットコンテナへのコネクションを開いた後は、コネクションの状態は
7e89a8365603b31f786f5ef3f6894a736489ead0nd 次のどれかになります:</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>コネクションが特定のリクエストにアサインされると、基本的な情報 (例えば
7e89a8365603b31f786f5ef3f6894a736489ead0nd HTTP ヘッダ等) が圧縮された形 (例えば通常の文字列は整数にエンコードされます)
7e89a8365603b31f786f5ef3f6894a736489ead0nd で転送されます。詳細は下記の「リクエストパケットの構造」を参照してください。
7e89a8365603b31f786f5ef3f6894a736489ead0nd 基本的な情報の直後に別パケットで転送されます。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>この時点でおそらく、サーブレットコンテナは処理を開始できるようになります。
7e89a8365603b31f786f5ef3f6894a736489ead0nd ですので、次のメッセージをウェブサーバに戻して知らせられるようになります。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd 残っているデータを受け取ります。パケットにある定まった最大長があり、任意の
7e89a8365603b31f786f5ef3f6894a736489ead0nd 大きさのデータがリクエストのボディとして含まれうる場合
7e89a8365603b31f786f5ef3f6894a736489ead0nd (例えばファイルのアップロードの場合) に必要となります。
7e89a8365603b31f786f5ef3f6894a736489ead0nd (注: HTTP のチャンク転送とは関連ありません。)</li>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>個々のメッセージはそれぞれ異なるデータパケット形式になっています。
7e89a8365603b31f786f5ef3f6894a736489ead0nd 後述の「レスポンスパケットの構造」を参照してください。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>このプロトコルには XDR から受け継いだ部分が少しありますが、多くの点で
7e89a8365603b31f786f5ef3f6894a736489ead0nd 異なります (例えば 4 バイトアライメントでないことなど) 。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>バイトオーダー: 個々のバイトのエンディアンがどうなっているかは、
7e89a8365603b31f786f5ef3f6894a736489ead0nd 私は詳しくないのですが、リトルエンディアンになっていると思います。
7e89a8365603b31f786f5ef3f6894a736489ead0nd (C で) そういう風にできているのでそうなのだと思いました。
7e89a8365603b31f786f5ef3f6894a736489ead0nd ソケット呼び出しの内部についてより詳しい方がいらっしゃいましたら、
7e89a8365603b31f786f5ef3f6894a736489ead0nd ご教授ください。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <p>プロトコルには 4 つのデータタイプがあります: byte, boolean,
7e89a8365603b31f786f5ef3f6894a736489ead0nd integer, string です。</p>
7e89a8365603b31f786f5ef3f6894a736489ead0nd <dd>バイト一つで、<code>1 = true</code>, <code>0 = false</code> です。
7e89a8365603b31f786f5ef3f6894a736489ead0nd (C のように) 非零を真として扱ってしまうと、ある場合は動くかもしれませんし、
7e89a8365603b31f786f5ef3f6894a736489ead0nd 動かないかもしれません。</dd>
7e89a8365603b31f786f5ef3f6894a736489ead0nd 先に格納されます。</dd>