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