ウェブサーバープラグインは、ウェブサーバーの機能を拡張します。 ウェブサーバーを起動すると、ウェブサーバーはインストールされているプラグインがあるかどうかを判断します。 プラグインが見つかると読み込まれ、新しい種類の処理できる要求、および要求を受け取るプラグインの種類をウェブサーバーが認識できるようになります。
PortWebはウェブサーバーに読み込まれると、ウェブサーバーは特定の種類の要求をPortWebに渡すことができるようになります。
通常、PortWebを使った検索は以下のように行われます。
ユーザーが検索フォームを含む静的なHTML検索ページを読み込みます。
ユーザーが検索基準を入力し、フォームを送信します。
ウェブサーバーがフォームのデータをPortWebに渡します。
PortWebがデータを解析し、指定されたPortfolioカタログで検索を実行します。
PortWebが、指定された「HTMLを書き出し」のテンプレートを解析します。
PortWebが検索結果とテンプレートを結合し、ウェブサーバー経由でユーザーのウェブブラウザにページを返して表示します。
通常、ウェブサーバーのプラグインと通信する方式は、GETとPOSTの2種類があります。
プラグインの通信方式 |
|
方式 |
コマンド |
GET |
通常、GET方式は埋め込まれたリンクとして次のように使われます。 <A HREF="/scripts/PortWeb.dll?QuickFind=cat&catalog=WebTest">...</A> |
POST |
一方、POST方式は、HTMLフォームの中で次のように使われます。 <FORM ACTION="/scripts/PortWeb.dll?QuickFind" METHOD=POST> <INPUT NAME="QuickFind" TYPE="TEXT" VALUE="cat"> <INPUT NAME="catalog" TYPE="HIDDEN" VALUE="WebTest"> <INPUT TYPE="submit" VALUE="Search"> </FORM> |
「METHOD」を「GET」に設定することによってGET方式はフォームで使用することができますが、このような状況では通常POST方式を使うことに注意してください。
この2つの方式の主な相違点は、POSTではユーザーがフォームを使ってパラメータを変更することができますが、GET方式ではパラメータがハードコード化されている(HTMLコード内に埋め込まれている)点です。 どちらの方式を使うかは、状況に応じて判断してください。 例えば、特定のキーワードを特定のカタログで自動的に検索するボタンが必要な場合、GET方式の方が簡単で正確に処理できます。 ただし、ユーザーにパラメータ(検索するキーワードなど)の入力を求めたい場合は、POST方式を使ったフォームの方が適しています。 さらに、POST方式では要求データとパラメータのサイズに制限がありませんが、GET方式ではブラウザの種類によっては最高4キロバイトまでに限定されています。
PortWebは上記2つの方式を完全にサポートしており、1つのHTMLページで両方の方式を使う必要がある状況にも対応しています。
PortWebの要求タイプ
PortWebとの通信にどちらの方式を使っても、要求の処理方法は同じです。 要求がプラグインに送信されるたびに、まずウェブサーバーはプラグインを識別する必要があり、プラグインは実行するコマンドとそれを機能させるために必要なパラメータを識別します。
プラグインの指定
プラグインの場所は常に要求時に指定する必要があります。 これにより、ウェブサーバーが要求をPortWebに渡すことができるようになります。 プラグインの場所を指定する方法はプラットフォームの種類によって異なります。 お使いのウェブサーバーのプラットフォームに対応した項目を参照してください。 この章では、2つのプラットフォーム両方の説明が記載されています。 このページにある表を参照して、お使いのプラットフォームに適した構文を使用してください。
Windows
プラグインの指定/Windows |
|
方式 |
コマンド |
GET |
GET方式を使うときは、プラグインはHREFの最初の部分で指定します。 <A HREF="/scripts/PortWeb.dll?quickfind=cat&catalog=Sample">...</A> |
POST |
POST方式を使うときは、プラグインはACTION属性の前半で指定します。 <FORM ACTION="/scripts/PortWeb.dll?quickfind" METHOD=POST> |
GETとPOSTのどちらの場合も、プラグインの名前だけでなくサーバー上のプラグインへのパスも指定する必要があります。 プラグインを参照する最も簡単な方法は、例えば「/scripts/PortWeb.dll...」のように「ルートに相対的な」(絶対的な)パスを使用することです。 この例では、プラグインがウェブサーバーのルートレベルにある「scripts」ディレクトリにあることが示されています。
パスを使用する代わりに、次のようなフルURLを使ってプラグインを指定することもできます。
<A HREF="http://www.myserver.com/scripts/PortWeb.dll...></A> |
この方法は、プラグインを実行するウェブサーバーがウェブページを公開しているものと異なる場合によく使われます。
Macintosh
プラグインの指定/Mac OS |
|
方式 |
コマンド |
GET |
GET方式を使うときは、プラグインはHREFの最初の部分で指定します。 <A HREF=".PortWeb?QuickFind=cat&catalog=WebTest">...</A> |
POST |
POST方式を使うときは、プラグインはACTION属性の前半で指定します。 <FORM ACTION=".PortWeb?QuickFind" METHOD=POST> |
通常、プラグインへのパスは必要ありません。 これは、ウェブサ-バーの起動時にプラグインがサーバーで登録されるためです。 ただし、プラグインがウェブページを公開しているものとは異なるウェブサーバー上にある場合、次のようにフルURLを使う必要があります。
例:
<FORM ACTION="http://otherserver.com/.PortWeb?QuickFind" METHOD=POST > |
PortWebのコマンド
下の表は、現在PortWebでサポートされているコマンドを示したものです。
ヒント: テンプレートの例とPortWeb HTMLの詳細については、「PortWebテンプレート」を参照してください。
コマンドは、常にプラグインの場所の指定の直後に渡されます。 疑問符(?)は、要求変数の開始を示すために使われます。 等号(=)の前の変数は実行する要求(quickfind、queryなど)を示します。
GET方式を使う場合、コマンドはプラグインの指定のすぐ後に追加します。
<A HREF="/scripts/PortWeb.dll?quickfind=cat&catalog=Sample">...</A> |
POST方式を使う場合、コマンドはACTION属性の後ろの方に追加します。
<FORM ACTION="/scripts/PortWeb.dll?quickfind" METHOD=POST> |
PortWebのコマンド |
|
コマンド |
説明 |
quickfind |
基本的なキーワード検索を行う、単純な検索コマンド。 |
query |
複雑な検索を行う、比較的柔軟性のある検索コマンド。 |
add |
1つまたは複数のレコードをユーザー収集データ(ショッピングカート)に追加します。 |
show |
ユーザーの収集を表示します。 |
remove |
1つまたは複数のレコードをユーザー収集データから削除します。 |
adminshow |
PortWebの管理モジュールを表示します。 |
PortWebのパラメータ
各コマンドにはパラメータが1つ以上必要です。 パラメータは、コマンドの動作を指定するための変数です。 例えば、すべての要求において最も重要な2つのパラメータは、検索するカタログの名前と使用するテンプレートです。
GET方式を使うときは、パラメータはHREFの中で直接指定し、パラメータ名と値を対にして指定します。 各ペアはアンパサンド(&)で区切られ、 パラメータ名とその値は等号(=)でつなげられます。 次の例では、「catalog」というパラメータ名は「Sample」という値と共に渡されます。
<A HREF="/scripts/PortWeb.dll?quickfind=cat&catalog=Sample">...</A> |
POST 方式を使うときは、パラメータはフォームのINPUT タグを使って定義します。次の例では、「catalog」というパラメータ名は「Sample」という値と共に渡されます。 次の例では、「catalog」というパラメータ名は「Sample」という値と共に渡されます。 この場合、パラメータは非表示になっているため、ユーザーはパラメータを変更できません。 その他の種類のINPUT形式(TEXTなど)を使うと、ユーザーが設定した情報を送ることができます。 HTMLフォームの設定の詳細は、HTMLの参考文献を参照してください (入門レベルの情報については、「情報源」を参照してください)。
<FORM ACTION="/scripts/PortWeb.dll?quickfind" METHOD=POST> <INPUT NAME="catalog" TYPE="HIDDEN" VALUE="Sample"> </FORM> |