アプレット (またはスクリプト) の curl-root とは、アプレットと、アプレットがアクセスを許可されているすべてのファイルを含む、祖先の (上位の) ディレクトリのことです。
ネットワーク アプレットの場合、これはアプレットのメタデータ(
applet 参照)にある
curl-root エントリから得られ、アプレットの
Url を基準とする相対パスで、既定では Web サーバーのルートになります。
ローカル アプレットの場合、アプレットの
Url の上位のディレクトリをスキャンして
curl-root.txt ファイルを探します。この名前のファイルが見つかり、そのディレクトリが
curl://client-data/etc/allowed-curl-roots.txt ファイルに記されている場合 (またはその他の理由でアクセスを許可されている場合)、このディレクトリが
curl-root として使われ、さらにその
curl-root.txt ファイルの内容は
process-get-effective-root で説明されているとおりに使われます。
上記の条件を満たさない場合は、curl-root は存在せず、このプロシージャは null を返します。
通常、
curl-root が存在する場合、アプレットは curl-root の内側にあるファイルだけを読み取ることが許可されます。つまり、ローカル アプレットの場合、
curl-root の指定によって、アプレットは
import または他の方法によりアクセスを必要とするすべてのファイルへのアクセスが可能になります。したがって、この指定がないローカル アプレットは、通常あまり役に立つものではありません。ネットワーク アプレットの場合は、既定では
curl-root は Web サーバー全体へのアクセスをアプレットに与えるので、これはそれほど重要ではありません。
ネットワーク アプレットの
curl-root はそのアプレットの
effective-root としても使われます。さらに、Web サーバーがユーザー単位または部署単位で個別のサブディレクトリに分けられている場合がよくあります。これらの理由から、このようなサブディレクトリをそれぞれ、そのディレクトリ内にあるアプレットの
curl-root に指定することによって、各サブディレクトリは独立した Web サーバーに近い機能を提供できるようになります。現在これを行うには、Web サーバー上の各アプレットのメタデータに、適切な
curl-root エントリをそれぞれ必ず追加します。標準の
Url.merge 解析ルールでは、スラッシュ (/) とサブディレクトリ名を使って Web サーバー上のトップレベルのサブディレクトリを指定することができますが、
.. と
/ をつなぎ合わせて、ツリー全体を分割せずに別の場所に移動させることができます。