CGI、ASP、JSP、PHP
CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上:
l 通过Internet把用户请求送到服务器。
l 服务器接收用户请求并交给CGI程序处理。
l CGI程序把处理结果传送给服务器。
l 服务器把结果送回到用户。
1. CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量
UNIX环境中:
· Perl (Practical Extraction and Reporting Language)
· Bourne Shed或者Tcl (Tool Command Language)
Windows环境中:
· C和C++
2. 稳定性好。独立的进程,而且执行完后自动释放进程,如用大量点击方式攻击,攻击完后cgi还能照常运作,而且其性能不变。
3. 安全性比脚本高很多,如一个网站全用cgi写,这个网站可以没有一个可以支持用http能流览的网页,显示的页面全是由cgi程序从调与web无关的目录中读取并显示给用户。
1. 速度较慢,因为运行一个CGI程序就要单独占用很多资源
2. 编程难度要比那些脚本的程序大一些,有好多东西要自己来写
ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
新版本的asp.net在页面第一次被加载的时候,服务器对页面执行JIT编译,因此第一次访问asp.net页面的时候速度会比较慢,但是后续的访问速度就会快很多。
1. 利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;
2. ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;
3. 服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;
4. ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;
5. ASP可以使用服务器端ActiveX组建来执行各种各样的任务,例如存取数据库、发现哦那个Email或访问文件系统等。
6. 由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取。
7. 内置的对象缓存和页面结果缓存。
8. 内置的XML支持,可用于XML数据集的简单处理。
9. 服务器控制提供了更充分的交互式控制。
Asp的缺点如下:
1. 仅2种非类型语言:VBscript ,Javascript
2. ASP页需要解释
3. 代码,HTML和文本的混合,像意大利面条一样
4. 使用同一文件
5. 额外的功能代码
6. 代码不能重用
7. 没有调试机制
8. 先关闭WEB服务器才能安装新版本的DLL
新版本的asp.net已经克服了上述的所有缺点,相对JSP技术在性能、可维护性等方面都要优秀。
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
1. 对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快。
2. 所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。
3. 客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。
4. 跨平台
1. 慢
2. 浪费内存
3. 隐藏错误
4. 相对asp.net要难以维护,但是相对cgi和php要好
5. 对于中文的处理不是很好
1. 基本概念PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名)
2. PHP 是一种服务器端的脚本语言,类似 ASP
3. PHP 脚本在服务器上执行
4. PHP 支持很多数据库(MySQL、Informix、Oracle、Sybase、Solid、PostgreSQL、Generic ODBC 等等)
5. PHP 是一个开源的软件(open source software,OSS)
6. PHP 可免费下载使用
1. PHP 可在不同的平台上运行(Windows、Linux、Unix)
2. PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
3. PHP 可从官方的 PHP 资源免费下载:www.php.net
4. PHP 易于学习,并可高效地运行在服务器端
1. 对递归的不良支持
2. 许多PHP模块都不是线程安全的
3. PHP 由于商业原因而不健全
4. 没有命名空间
5. 缺少标准框架