一般的 HTML + Javascript 為靜態的網頁展示:

(HTTP Client)<--(HTTP Protocol)-->(HTTP Daemon)

「HTTP Clien」就是所謂的瀏覽器;「HTTP Daemon」 就是所謂的伺服器(簡稱 HttpD);Daemon 在 Server 的概念就是「一個服務的精靈」,每個 Daemon 都會管理一個 Port,對每個連線進入的Client進行服務。
後來,見識到網際網路的便利後,有些人開始思考如何利用網路進行服務(比如說留言、上傳檔案給管理者等等),於是便出現了「CGI」,「CGI Application」可以用 「C/C++」、「Perl」、「Python」、「Shell Script」 等電腦語言來編寫,結合資料庫(DataBase)進行良好的網路服務。

(HTTP Client) <--(HTTP Protocol)--> (HTTPD + CGI Program) <--(DB API)--> 資料庫

此時的 CGI 和 HttpD 並沒有緊密結合,CGI 對於HttpD來說,只是一個「傭兵幫手」,傭兵很強,但並不能完全結合。

CGI開始廣泛使用後,陸續出現了效能的瓶頸,因為每次的 Form post / get 都沒有所謂的快取概念,導致有些狀況效能不彰(後來有 Fast CGI 技術解決),所以緊緊結合Web伺服器(HttpD)的 Server 端 Script Language就慢慢出現,其中以下列三者為常見的Script Languqge:

  • ASP: 微軟的 Active Server Page (Script)
  • PHP:Hypertext Preprocessor(兩三年前稱為:Personal Homepage Processor)
  • JSP: 昇揚的 Java Server Page

(HTTP Client) <--(HTTP Protocol)--> (HTTPD + Server Scripts) <--(DB API)--> 資料庫

注意,他們這些語言,都是在 Server 端的,透過模組或內建的結合和 HttpD進行比較緊密的協同運作。當然,這些語言,有些也可以透過 CGI 的模式跑(如,PHP)。

一句話作歸節:

「這些東西都是 Server 端的 Scripting Language,用來製作動態的服務網頁」

舉幾個例子:

  1. Yahoo!、PCHome 和 Vovo2000 的討論區是用「PHP」

  2. Vovo2000.com 的 PaintBBS是用「CGI」

  3. 微軟所有的網站,包含 MSN、MSDN、HotMail皆為「ASP」

網路參考資料:

PHP:PHP Hypertext Preprocessor

ASP: MSDN Library

JSP: JavaServer Pages Technology

©All Rights Reserved by Vovo2000.Com | About Vovo2000