關於 網頁伺服器、通用閘道器介面、網頁應用框架 當中的差異今天終於懂了

網頁伺服器(Web Server):一台安裝了網頁伺服器程式的機器,專門接收網路上依照 HTTP 通訊協定來的請求,提供 HTTP 回覆給請求發送者,例如:Apache、Ngnix、IIS、

通用閘道器介面(CGI):網頁伺服器只用來接收請求並傳回結果(會對應一個核心程式,運算完結果後送回給 end user),但實際上去解析、處理並產生回應必須靠一套中繼介面扮演「伺服器」和「主要運行程式」中間的橋樑,只要符合 CGI 的規範,它可以用任何的程式語言實作,例如:Perl、C、C++、VB、Pascal、python、PHP... 等,實際上它可能會是 python 的一個外掛套件,可用於接收請求和回傳結果,CGI 是 Web Framework 的地基,一些簡單的應用其實單純使用 CGI 即可(範例),因為它具備收發 HTTP request 的功能。

網頁應用程式框架(Web Framework):當開發專案日益複雜時,網頁框架開發者將那些常用的部件抽出(例如:資料庫存取、前端頁面模板),讓專案變得更好維護、更不容易出錯、開發起來更有效率,Web Framework 的選用必須基於 CGI 的環境,例如:若要用 Phalcon 作為框架的話則要安裝 PHP、要用 Django 作為框架的話則要安裝 python + python 的 cgi 。

只要有定義接收、傳送的即可稱之為 CGI,有時候這套內容是寫在 Web Framework 裡面。

留言

熱門文章