免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3057 | 回复: 1
打印 上一主题 下一主题

[转载]微软为什么使用CGI? [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-09 10:32 |只看该作者 |倒序浏览
微软曾经在不同场合极力推荐它的ASP技术,以取代CGI标准,这对微软当然是有利的,但是对一个网站来说ASP是不是一个明智的选择呢?这是一个值得大家深思熟虑的问题。

      因为一旦您使用了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环境下的。

论坛徽章:
0
2 [报告]
发表于 2003-05-09 12:51 |只看该作者

[转载]微软为什么使用CGI?

ASP也是一种CGI吧?

CGI ---Common Gateway Interface,公用网关接口。它可以称之为一种机制。因此您可以使用不同的程序编写适合的CGI程序,如Visual Basic、Delphi或C/C++等,您将已经写好的程序放在WEB服务器的计算机上运行,再将其运行结果通过WEB服务器传输到客户端的浏览器上。我们通过CGI建立WEB页面与脚本程序之间的联系,并且可以利用脚本程序来处理访问者输入的信息并据此作出响应。事实上,这样的编制方式比较困难而且效率低下,因为你每一次修改程序都必须重新将CGI程序编译成可执行文件。
  最常用于编写CGI技术的语言是Perl(Practical Extraction and Report Language,文字分析报告语言),它具有强大的字符串处理能力,特别适合用于分割处理客户端Form提交的数据串;用它来编写的程序后缀为.pl。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP