アプレット(またはスクリプト)のcurl-root とは アプレットとアプレットが許可されている全てのファイルを含む、祖先の(上位の)ディレクトリのことです。
ネットワーク アプレットの場合、これはアプレットのメタデータ(
appletを参照してください。)にある
curl-root エントリから得られ、アプレットの
Url を基準とする相対パスで、既定ではWebサーバーのルートになります。
ローカル アプレットの場合、アプレットの
Url の上位ディレクトリをスキャンして、
curl-root.txt ファイルを探します。このファイルは、アプレットの
curl-root ディレクトリの印です。また、そのディレクトリは、
curl://client-data/etc/allowed-curl-roots.txt 内にリストされていなければなりません。これは、絶対ローカルファイルURLの一覧を含み、各URLは、1行で表され、URLの末尾に"/"を含まず、改行もありません。
ファイルが見つかり、そのディレクトリが、
curl://client-data/etc/allowed-curl-roots.txt ファイルにリストされている(または他の理由で許可されている)場合、そのディレクトリは、
curl-root として使用されます。
curl-root.txt ファイルのコンテンツは、
process-get-effective-root のドキュメントに記述されているとおりに使用されます。
allowed-curl-roots.txt と
curl-root.txt の両方とも、文字エンコーディングに UTF8 を使用します。このエンコーディングは、Curlの既定です。
他の全ての場合、curl-root は存在せず、このプロシージャは null を返します。
一般的に、アプレットが curl-root を持つ場合に、その内部のファイルだけ読み取ることが出来ることに注意してください。この事は、ローカル アプレットが、インポートするまたはアクセスする必要がある全てのファイルへのアクセスを提供する curl-root が与えられていない限り、あまり便利でないことを意味します。ネットワークアプレットにおいては、この事は重要ではありません。なぜなら既定で、curl-root はWebサーバー全体にアクセス許可を与えるからです。
ネットワーク アプレットの
curl-root は、
effective-root としても使われれ、また、Webサーバーは、よく個人毎や部署毎にサブディレクトリに分けられるので、各サブディレクトリをその中にあるアプレットの
curl-root にすることは、各サブディレクトリをあたかも独立したWebサーバーのように振舞うことを許すことになります。現在、これは、Webサーバー上の書くアプレットがそのメタデータに適切な
curl-root を含んでいることを要求します。標準の
Url.merge のパース ルールでは、Webサーバーのトップレベルのサブディレクトリが、スラッシュとサブディレクトリ名を使用して記述することが出来ることを意味します。しかし、
.. と
/ の使用は、何も壊さずに、ツリー全体を異なる場所に移動させることを許可します。