FastCGIとは何ですか?
FastCGIは、Open Marketと呼ばれる現在廃止されている会社によって開発されたCommon Gateway Interface(CGI)の拡張機能です。 FastCGIは、オープンスタンダードとして無料で入手できます。 パフォーマンスを制限するCGIの特定の欠点に対処します。
CGIとは異なり、FastCGIはリクエストごとに新しいプロセスを作成しないため、リクエストを受信するたびにプロセスの作成と破棄のオーバーヘッドを最小限に抑えます。 このオーバーヘッドは、Netscape Server Application Programming Interface(NSAPI)やInternet Server Application Programming Interface(ISAPI)などのApplication Program Interface(API)を使用することで回避できますが、これらは独自のものであるため、サポートされている言語に追加の学習曲線と制限があります考慮される。 CGIのもう1つの欠点は、データベースへの接続やキャッシュ技術など、再利用の特定のケースを取得できないという事実です。 要求の処理は、従来のCGIよりもFastCGIを使用した場合の方が最大30倍高速です。
FastCGIを使用すると、単一の接続で複数の要求を処理できます。これは多重化と呼ばれます。 または、複数の接続を使用できます。 要求は、ファイル転送プロトコル(FTP)またはソケットを使用して送信されます。 次に、同じ接続を使用して応答を返します。
この時点で接続が閉じられる可能性がありますが、Webサーバーとプロセスは引き続き保持されます。 これには多くの利点があります。 たとえば、サーバーとアプリケーションのプロセスを個別にシャットダウンまたは再起動できることを意味します。
FastCGIはもともとOpen Marketによって開発され、Webサーバー製品に実装されていました。 ただし、このインターフェイスはどのサーバーにも実装でき、すぐに他の多くの業界Webサーバーに導入されました。 FastCGIは分散コンピューティングとの高い互換性があるため、FastCGIアプリケーションはWebサーバーとは別のサーバーで実行できます。 これにより、コンポーネントが分離されているため、システムの可用性の向上、スケーラビリティの向上、およびシステムセキュリティの向上という利点がすべて提供されます。 リモートFastCGIを使用すると、内部ネットワークがアプリケーションの実行を処理できるため、管理が少なくなります。
CGIアプリケーションがHypertext Transfer Protocol(HTTP)要求から応答を生成できるように、FastCGIも同様に生成できます。 また、認証の検証やデータ型の変換などのタスクも処理します。 これらのタスクはロールを使用して処理され、ロールは自由に追加および拡張できます。
FastCGIは簡単に理解でき、ほぼすべてのプログラミング言語で実行できます。 プロセスは分離されているため、アプリケーション固有の問題によってサーバーがクラッシュすることはありません。 FastCGIフレームワークを使用して構築されたアプリケーションはすべて、CGIを実行している古いサーバーで後方に移動します。 さらに、アプリケーションライブラリは、CGIアプリケーションの移行を簡単にするように設計されています。