Webアプリケーションプラットフォーム - ntuf/Tips GitHub Wiki
これと言った総称はない。
Webアプリケーションプラットフォームと言ったり、
「サーバーサイド技術」「サーバーサイドフレームワーク」「Webサーバーインターフェース」といった言葉が使われる。
サーバーサイドプログラムを実行するためのフレームワークやCGIのようなインターフェースは、
OSI参照モデルの「アプリケーション層(第7層)」に位置づけられます。
インターフェースとは、
ソフトウェアコンポーネントやシステムが互いに通信するための共通の契約やプロトコルを定義します。
フレームワークは、特定の目的やアプリケーションの種類に応じて、
開発を助けるためのライブラリやツール群を提供するソフトウェアの骨組み
■CGI (インターフェース)
CGIスクリプトとしてよく使用される言語
Perl,Python,Ruby,C/C++,Shellスクリプト
(だがPythonはWSGI,RubyはRubyonrailsを使うのが普通)
CGI自体は「インターフェース」であり、
特定の言語に依存せず、さまざまな言語で書かれたプログラムを実行するための仕組み
古い技術。
■Servlet、Java Servlet (インターフェース)
概要: Javaで書かれたサーバーサイドプログラムの実行環境です。Java Servletは、CGIのようにWebサーバーのリクエストに応答する仕組みですが、Java仮想マシン(JVM)上で動作し、スレッドベースで処理するため効率的です。
特徴: Javaの豊富なライブラリや、オブジェクト指向の強みを活かせる。
■ASP.NET (フレームワークであり、複数のインターフェースと技術を使用して実現されている)
概要: マイクロソフトの技術で、サーバーサイドアプリケーションを開発するためのフレームワークです。
CGIの代替として、.NET環境で動作し、さまざまなプログラミング言語
(C#やVB.NETなど)で書かれたアプリケーションをサーバー上で動作させます。
特徴: Windowsサーバーとの統合が強力で、データベースや他のマイクロソフト製品との連携がしやすい。
■Node.js(フレームワークでもなく、インターフェースでもなく、ランタイム環境)
概要: JavaScriptでサーバーサイドプログラムを実行するための環境です。シングルスレッド・ノンブロッキングI/Oモデルを採用しているため、高スループットのアプリケーションに適しています。
特徴: JavaScriptをサーバーサイドでも使えること、リアルタイムアプリケーションに強い。
■WSGI(Python専用のインターフェース)
概要: Web Server Gateway Interfaceの略で、
Pythonで書かれたサーバーサイドアプリケーションとWebサーバーを接続する標準のインターフェースです。
FlaskやDjangoといったPythonのWebフレームワークはWSGIを通じてWebサーバーとやり取りをします。
特徴: Pythonアプリケーションに特化した標準インターフェースで、フレームワークとの互換性が高い。
WSGIはインターフェースの仕様であり、uWSGIはその仕様を実装したアプリケーションサーバー
■ISAPI(Internet Server Application Programming Interface)
概要: Microsoft IIS(Internet Information Services)上で
効率的にアプリケーションを実行するためのインターフェース。
SAPIは、MicrosoftのIIS(Internet Information Services)Webサーバー向けの低レベルAPIで、
CやC++で書かれた高速なWebアプリケーションやフィルターを構築するために使われます。
特徴: Windows環境で最適化され、CGIよりも高速。
■Ruby on Rails(Rack) Rails(フレームワーク)、Rack(インターフェース)
概要: Ruby on RailsではRackというミドルウェアを介してWebサーバーとアプリケーションが接続されます。
RackはCGIと同様のインターフェースを持っていますが、効率的に動作するように最適化されています。
特徴: RubyでWebアプリケーションを簡単に構築できる。
■PHP
プログラミング言語であり、Webアプリケーションプラットフォームとも言える
PHPは、Webサーバー上で動作するスクリプトをサポートするだけでなく、
サーバーとの連携やデータベースの接続、ファイル操作などの機能を通じて、
アプリケーションを実行するための環境を提供する。
LaravelやSymfonyなどのPHPフレームワークは、
さらに高レベルなWebアプリケーションプラットフォームを構築するための土台を提供している。
PHPは、プログラミング言語
次のインターフェースと連携するHTTP/HTTPS、PHP-FPM(FastCGI Process Manager)、webサーバー