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 |
网页结合 |
差 |
优 |
优 |
优 |
学习门槛 |
高 |
低 |
低 |
较高 |
函数支持 |
不定 |
少 |
多 |
多 |
系统安全 |
佳 |
低 |
佳 |
极佳 |
使用网站 |
多 |
多 |
超多 |
目前一般 |
更新速度 |
无 |
慢 |
快 |
较慢 |
CGI、ASP、PHP、JSP、 ASP.NET网站开发语言比较的更多相关文章
- 谈谈asp,php,jsp的优缺点
谈谈asp,php,jsp的优缺点 http://hi.baidu.com/lhyboy/item/f95bac264c38830d72863e41 asp.php.asp.net.jsp等主流网 ...
- JSP网站开发基础总结《二》
有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...
- ASP、JSP、PHP 三种技术比较
目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor). 简 介 : A ...
- JSP网站开发基础总结《一》
经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...
- Java在Web开发语言上败给了PHP
PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java ...
- Java在Web开发语言上败给了PHP(转)
PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java ...
- web后端开发语言Java和PHP的比较
理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果,尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持 ...
- 转!!常用的4种动态网页技术—CGI、ASP、JSP、PHP
1.CGI CGI(Common Gateway Interface,公用网关接口)是较早用来建立动态网页的技术.当客户端向Web服务器上指定的CGI程序发出请求时,Web服务器会启动一个新的进程 ...
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...
随机推荐
- 用python编写的简易端口扫描器
#coding = utf-8 ''' python 3.4 通过简单的TCP端口连接来判断指定IP是否开放了指定端口. ''' import socket import optparse impor ...
- TiDB 整体架构 结合yarn zookeeper分析架构
TiDB 简介与整体架构| PingCAP https://www.pingcap.com/docs-cn/overview/ 真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft ...
- Java对对象的引用 不是 引用调用 而是按值引用 Java不存在引用调用
call by reference Java call by value
- poj 1821 Fence(单调队列优化DP)
poj 1821 Fence \(solution:\) 这道题因为每一个粉刷的人都有一块"必刷的木板",所以可以预见我们的最终方案里的粉刷匠一定是按其必刷的木板的顺序排列的.这就 ...
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- HDU1495 非常可乐 —— BFS + 模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 非常可乐 Time Limit: 2000/1000 MS (Java/Others) M ...
- svn服务器搭建与迁移
2016-11-21更新: 今天被svn的钩子搞了半天,网上找解决方法都无效,下午被我试出来了,特此记录. 在svn的钩子中可以使用update来更新配置文件,比如ansible的,puppet的,具 ...
- MYSQL进阶学习笔记八:MySQL MyISAM的表锁!(视频序号:进阶_18-20)
知识点九:MySQL MyISAM表锁(共享读锁)(18) 为什么会有锁: 打个比方,我们到淘宝买一件商品,商品只有一件库存,这时候如果还有另外一个人也在买,那么如何解决是你买到还是另一个人买到的问题 ...
- pkg-config相关
编译fuse的命令 gcc myfuse.c -o myfuse `pkg-config fuse --cflags --libs` 中的 pkg-config fuse --cflags --lib ...
- UIFont 字体样式 [UIFont fontWithName~];
设置字体样式代码:[UIFont fontWithName:@"Arial-BoldMT" size:15] 下边一一列举: 一:Font Family: American Typ ...