CGI、ASP、PHP、JSP、 ASP.NET网站开发语言比较
一、主流网站开发语言的简介及优缺点。
现在主流的网站开发语言主要包括cgi、asp、php、asp.net、jsp等。
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持。
(一) 网站开发语言之ASP:
ASP(Active Server Pages)是微软平台下的动态网页技术.Microsoft提出的ASP概念,使设计交互式Web页面的技术有了长足的进步。它采用了三层计算结构,将Web服务器(逻辑层),客户端浏览器(表示层)以及数据库服务器(数据层)分开,具有良好的扩充性。
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
ASP是和平台相关的,只能运行在Windows平台上。而Unix的健壮性和Linux的源码开放性使它们广泛地应用在网站服务器中,相比之下,ASP的平台相关性大大制约了它的应用。
(二) 主流网站开发语言之PHP:
PHP(Personal Home Pages)是一种服务器端的嵌入HTML的脚本语言,可以运行于多种平台。借鉴了C语言,Java语言和Perl语言的语法,同时具有自己独特的语法。
由于PHP采用Open Source方式,它的源代码完全公开,使得它可以不断有新的东西加进来,形成庞大的函数库,以至实现更多的功能。PHP在数据库支持方面做得非常好,它能支持现在几乎所有的数据库。
PHP的缺点就是没有像JSP和ASP那样对组件的支持,扩展性较差。Personal Home Pages,顾名思义,只能适应中小流量的网站。
(三)主流网站开发语言之JSP:
JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入Java程序片段和JSP标记,就构成了JSP页面。
JSP支持绝大部分平台,包括现在非常流行的Linux系统,应用非常广泛的Apache服务器也提供了支持JSP的服务。 组件的开发和使用很方便
ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用。JavaBeans的使用也很方便,又由于Java的跨平台性,也使得Javabeans的可移植性和可重用性非常高。
一次编写,处处运行(Write once,Run everywhere)
作为Java开发平台的一部分,JSP具有Java的所有优点,包括Write once,Run everywhere。
所有这些都显示了JSP强大的功能。但由于它出现得比较晚,在某些方面还不够规范。
(四)主流网站开发语言之CGI:
CGI就是公共网关接口 (Common Gateway Interface) 的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等,但是目前在CGI 中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi 。
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
二、比较一下ASP、ASP.net、JSP和PHP的优点和缺点:
(一)ASP
优点:1. 无需编译
2. 易于生成
3. 独立于浏览器
4. 面向对象
5. 与任何ActiveX scripting 语言兼容
6. 源程序码不会外漏
缺点:
1、Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来。
2、ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失。
3、由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况。
4、无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的。
5、还无法完全实现一些企业级的功能:完全的集群、负载均横。
(二)JSP
优点:
1、一处编写随处运行。
2、系统的多台平支持。
3、强大的的可伸缩性。
4、多样化和功能强大的开发工具支持。
缺点:
1、与ASP一样,Java的一些优势正是它致命的问题所在。
2、缺少系统性的资料。
3、速度超慢
(三)PHP
优点:
1、一种能快速学习、跨平台、有良好数据库交互能力的开发语言。
2、简单轻便,易学易用。
3、与Apache及其它扩展库结合紧密。
4、良好的安全性。
缺点:
1、数据库支持的极大变化。
2、不适合应用于大型电子商务站点
3、安装复杂。
4、缺少正规的商业支持。
5、无法实现商品化应用的开发。
(四)CGI
优点:
1、它可以用很多种语言编写,比如C,C++,VB和Perl语言,在选择上有很大的灵活性.目前大多使用Perl编写CGI.
缺点:
2、是维护复杂,运行效率低下,主要表现在以下几个方面:
(1)CGI程序是以独立的进程方式运行的,这样,当用户访问数量增大时,会严重地损耗系统资源,大幅度地降低系统性能.
(2)CGI程序不是常驻内存的,因此,当用户频繁访问CGI程序时,会导致大量的磁盘操作,从而造成系统性能的下降.
(3)访问数据库的程序不容易编写.
由于CGI程序存在上述缺点,因此,随后又出现了FastCGI技术,它在CGI的基础上进行了一些改进,将CGI程序常驻在内存中,使得系统性能有了改善,但是,在大量用户访问时,它仍然会消耗过多的内存资源。
三、主流的Web服务器软件
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持 PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台,但是众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
我们常用的开发组合:
IIS环境下
1.ASP+ACCESS
2.ASP+SQL SERVER
3.ASP.NET+ACCESS
4.ASP.NET+SQL SERVER
APACHE环境下
5.jsp+Oracale
6.JSP+MYSQL
7.PHP+MYSQL(一)
ASP,PHP,JSP,ASP.NET 这是当前比较流行的四种WEB网站编程语言,现在做网站大部分都是使用这几种语言中的其一 .
(一)ASP是基于WINDOWS平台的,简单易用,由于是运行在WINDOWS平台上,所以移植性不好,不能跨平台运行.但是国内现在大部分的网站都是使用它来开发的.
(二)PHP是当前兴起备受推崇的一种WEB编程语言,开源且跨平台,在欧美都比较的流行,最近在国内也很受许多网站开发者的欢迎.开发效率高,成本低!
(三)JSP是了SUN公司推出的一种网络编程语言,比较难学(是网上公认的),跨平台运行.安全性比较高,运行效率也比较的快.备受企业级的公司及银行金融机构使用.
主流网站开发语言之ASP.NET从某种意义上说应该是ASP版本的升级,但是它又不完全是从(四)ASP上升级来的,ASP.NET的推出是微软为了与 SUN公司的JSP在网络上的迅猛发展抵抗的,.NET架构现在有许多人都在学习,主要是开发的效率比较的高.但是还是基于WIN平台运行,不能跨平台.
可以说,asp确实快过时了,在未来jsp和asp.net将会有巨大的潜力,但php凭借其开源的特性也会占有一定份额,并且现在国内外多数网站都是用php,说明其优越性已经得到了相当的考验.
vb一般指vb6.0,是传统的win32编程。vb.net和asp.net是基于微软.net平台的语言。
说java好主要是因为java的j2ee部分做企业级开发很强大,而且跨平台 。
c#是.net平台上最好用的语言,现在只能运行在windows系统。
web开发方面.net和j2ee的竞争很激烈,难说以后鹿死谁手。
现在做网站大部分都是asp.net或jsp的,asp.net容易上手,比较普及,但是平台单一,jsp虽然上手难,但是跨平台,安全性高
大型网站很少有用windows系统的。
http://blog.sina.com.cn/s/blog_6c8d8f7001016i2k.html
===========================================================
http://www.cnblogs.com/duncannjm/articles/1686698.html
表8-1 四种后台语言的性能比较
后台界面 |
CGI |
ASP(不含ASP.net) |
PHP |
JSP/Servlet |
操作系统 |
几乎所有 |
Win32 |
几乎所有 |
几乎所有 |
(续表)
后台界面 |
CGI |
ASP(不含ASP.net) |
PHP |
JSP/Servlet |
服务器 |
几乎所有 |
IIS |
非常多 |
非常多 |
执行效率 |
慢 |
快 |
很快 |
极快 |
稳定性 |
高 |
中等 |
高 |
非常高 |
开发时间 |
长 |
短 |
短 |
中等 |
修改时间 |
长 |
短 |
短 |
中等 |
程序语言 |
不限,几乎所有 |
VB |
PHP |
目前仅支持Java |
网页结合 |
差 |
优 |
优 |
优 |
学习门槛 |
高 |
低 |
低 |
较高 |
函数支持 |
不定 |
少 |
多 |
多 |
系统安全 |
佳 |
低 |
佳 |
极佳 |
使用网站 |
多 |
多 |
超多 |
目前一般 |
更新速度 |
无 |
慢 |
快 |
较慢 |