小さなコンテンツ サーバーを Web サービスとして作成しています。2 つのユニットがあります。1 つはコンテンツを要求するアプリケーションを認証し、認証が成功すると、コンテンツを提供するもう 1 つのユニットに要求が転送されます。
- [1] CGI スクリプトを使用してこれを行いたい場合、CGI の jsp:forwardに相当するものはありますか?
- [2] 転送が不可能な場合、クライアント アプリケーションは 2 番目のユニットを直接要求できないはずです。これを行う適切な方法は何ですか?
小さなコンテンツ サーバーを Web サービスとして作成しています。2 つのユニットがあります。1 つはコンテンツを要求するアプリケーションを認証し、認証が成功すると、コンテンツを提供するもう 1 つのユニットに要求が転送されます。
HTTP リダイレクトの後ではないため、もう一度試みます...
簡単に言えば、はい、可能です。
ただし、使用するツールに大きく依存します。どの Web サーバーと CGI スクリプト言語を使用していますか?
CGI スクリプトは、他の CGI スクリプトからコードを実行するなど、実質的に何でも実行できます。したがって、それらはあなたが探している動作を提供できます。
CGI (Common Gateway Interface)は、Web サーバーが CGI スクリプトを開始し、環境変数を介してスクリプト入力データを提供する方法を説明しているだけです。CGI は、スクリプトがデータを Web サーバーに返す方法についても説明します。それで全部です。
したがって、承認スクリプトが何らかの操作を他のスクリプトに委任したい場合、それを何らかの形で実装するのはその承認スクリプト次第です。ここでは、CGI プロトコルは役に立ちません。
あなたが探しているかもしれない概念はHTTP リダイレクトと呼ばれ、サーバーはブラウザーの要求に応答を送信し、ブラウザーに別の URL から新しいページをフェッチするように指示します。
CGI はjsp:forwardと同じように HTTP リダイレクトを問題なく行うことができます。正しい HTTP ヘッダーを出力するだけで済みます。
HTTP ヘッダーで 302 応答コードを返し、ブラウザーが次に移動する場所の URL を提供する必要があります。CGI スクリプトが次の種類のヘッダーを出力するようにします。
HTTP/1.1 302 Redirect
Location: http://www.example.org/
これらのヘッダーは、ブラウザーに URL http://www.example.org/からページをフェッチするように指示します。