为什么要CGI
因為一旦您使用了ASP,那么您就只能吊在微軟的WINDOWS和IIS這棵樹上。
ASP是微軟的專有技術,ASP調用微軟獨有的系統和應用函數,只能在微軟的操作系統和服務器下運行。有商業軟件可以實現在APACHE下運行ASP,但是有附加費用和兼容性問題。而CGI則不同,它并不是一種技術,而是一個服務器與應用程序接口的公共標準。CGI程序能夠被移植到任何操作系統和服務器下運行,不存在被操作系統和服務器供應商鎖定的問題。眾所周知,微軟的WINDOWS NT與2000,都是從桌面操作系統發展而來的,尚未擺脫單人單機的設計思想的束縛,至到目前為止,NT/2000在安全性與穩定性方面仍然存在很大的漏洞和問題。最近的中美黑客大戰中,被攻克的網站99%都是使用微軟的系統。微軟的操作系統和服務器安全漏洞之大令人觸目驚心。只要到http://www.cert.org一看,就能找到最新發現的各種IIS漏洞,個個都足以致網站于死命。一個業余的電腦愛好者能夠通過簡單的訪問一個URL就能用UNICODE、SADMIND等缺陷,把一個IIS網站改得面目全非,甚至全部摧毀。根據NETACRAFT(http://www.netcraft.com)對41個IIS網站的測試,三分之一的IIS網站存在明顯漏洞。NETCRAFT估計有幾十萬個IIS網站已被黑客控制,隨時可以被摧毀或利用,而網站管理員毫無知覺。相比之下,UNIX操作系統從一開始就是一個設計成永不關機的、多用戶、多進程的操作系統,其安全性、穩定性在長期、廣泛的使用中得到了實踐的檢驗。
CGI是一個開放標準(OPEN STANDARDS)而不是專有技術,所有的WEB服務器,如APACHE,IIS,I-PLANET,NETSCAPE,ZEUS,都支持這一標準。CGI的高度安全和高度穩定,使它成為目前互聯網上應用最廣泛、最可靠的技術,隨便在網上瀏覽,到處可見CGI的應用,沒用CGI的是少數。如:
- 美國總統白宮:
(http://www.whitehouse.gov/cgi-bin/good-bye.cgi?url=http://www.firstgov.gov/) - 美國國會:
(http://www.senate.gov/cgi-bin/exitmsg?url=http://www.house.gov/) - 美國銀行(BANK OF AMERICA) 在線銀行,有三百萬用戶,是美國最大的在線銀行:
https://onlineid.bankofamerica.com/cgi-bin/sso.login.controller - 微軟自己的hotmail郵件服務和passport登錄(在全世界有數千萬用戶),1997年微軟試圖把hotmail換成微軟的技術,但是無法應付數千萬用戶的負載,最后不得不改回使用CGI,目前hotmail在美國就有三千四百萬用戶,是最大的郵件服務,也是微軟引以為傲的拳頭產品:
http://lc1.law13.hotmail.passport.com/cgi-bin/login
http://pv1fd.pav1.hotmail.msn.com/cgi-bin/hmhome? - 中國海爾的網上商城 :http://www.ehaier.com/cgi-bin/prod_zdtj4.htm
- 美國海軍網站搜索引擎:http://www.chinfo.navy.mil/cgi-bin/htsearch
- E*TRADE (網上股票證券交易):
(http://www.etrade.ne.jp/cgi-bin/gx.cgi/AppLogic+Home) - 新浪網搜索引擎:
http://webpage.sina.com.cn/cgi-bin/webpage/webpage.cgi - 網易的郵件服務系統:
http://m220.163.com/cgi/ldapapp?funcid=main&sid=IAwBFvDOGlMAAegE - 美國的大型網站雅虎
- 美國的亞馬遜網站
這些世界著名的機構和網絡服務(包括微軟的拳頭產品hotmail),其安全性、穩定性要求是最高的,他們都是使用的CGI,隨便在網上找,還可以找出大堆明顯使用CGI的例子來。過去,微軟曾經因為試圖以其ASP取代CGI標準,故意宣揚CGI已經過時等錯誤觀點,引起不少人誤解,但是,微軟經過實踐發現這種想法是不現實的之后,又不得不刪掉了這樣的錯誤言論,并且給IIS加上了CGI的支持,事實上,微軟已經以其實際行動證明CGI的優勢。
CGI與ASP比較技術上如何?
我們可以從以下三個方面比較:性能,編程方法,設計方法。
有些人批評說,CGI需要產生一個新的進程處理用戶請求,性能不佳。但是,在UNIX下FORK進程是非常高效的,傳統的UNIX服務程序都是采用FORK進程的方式,FORK()所消耗CPU不會多于分析編譯ASP網頁的時間。況且CGI標準并未規定必須FORK新的進程,使用FAST CGI或MOD_PERL即可避免FORK新進程,其性能決不會亞于ASP。在一般硬件配置下,每秒進行數百次CGI訪問是沒有問題的。
編程方法上,CGI可以用程序員熟悉的任何語言開發,包括PERL,C/C++,PYTHON,JAVA,甚至Shell Script,可以使用DBFile,MySQL,ORACLE,SYBASE等數據庫。而ASP則基本上是用微軟的VBScript。沒有哪個專業程序員會因為寫VISUAL BASIC而感到特別自豪吧?
在設計方法上,ASP的思想是把程序嵌入在HTML文件中,把邏輯與表現方式混在一起,存在各種弊端。CGI的設計可以實現數據、邏輯和表現方式的分離,獨立設計、改變三者。
由此可見,無論從哪個方面比較,除非您是微軟的忠實門徒,ASP并非一個最佳選擇。
根據NETCRAFT在2001年5月對全世界一千七百多萬個網站的統計,目前使用UNIX的網站占百分之六十以上,并且在迅速增長,Windows和IIS占百分之二十左右。很多網站在經過IIS的痛苦之后,轉換到UNIX服務器,為了適應這種情況,已有美國公司開發出能在UNIX和APACHE下運行ASP的商業軟件,使原有的ASP網頁在新環境下能夠使用,但很顯然,如果ASP用到了WINDOWS系統獨有的功能,如COM、ActiveX、ADO等,是不可能移植到UNIX環境下的。
東方之曉的WEB軟件大都是根據CGI標準用PERL5編寫,并且與MOD_PERL兼容。這意味著我們的軟件可以運行在任意操作系統和支持CGI標準的服務器下,而且可以在不同的平臺之間轉移。比如,如果您在IIS下運行神州建站通,一旦需要,可以很快的把整個系統和數據都移到LINUX下,繼續正常運轉。如果采用ASP的話,這樣的轉移是相當困難的。
轉載于:https://www.cnblogs.com/liangxiaofeng/p/4910942.html
總結
- 上一篇: oracle fx成立时间,oracle
- 下一篇: Win7笔记本电脑启用虚拟WIFI共享上