资源描述
1,WEB应用开发基础,游峰 2001.6,2,主要内容,WEB技术的优点 WEB基础知识 WEB开发的历史和现状 相关的WEB开发技术 WEB开发工具 WEB开发的未来趋势,3,WEB技术的优点,界面友好,互动性强 部署简单,可以做到真正的瘦客户端 维护升级方便 操作方便、零用户培训,4,WEB基础知识,HTTP协议 HTML规范 客户端浏览器 WEB应用服务器,5,HTTP协议,HTTP 是 一 个 应 用 层 协 议, 目 前 广 泛 应 用 于web 浏 览 器 和web 服 务 器 之 间 的 通 信。HTTP 用 字 符 串 进 行 通 信, 所 传 送 的 信 息 称 为HTTP 消 息(HTTP-Message)。HTTP 消 息 有 两 种 类 型: 浏 览 器 传 送 给 服 务 器 的 请 求 消 息 和 服 务 器 传 送 给 浏 览 器 的 响 应 消 息, 其 基 本 格 式 如 下: 请 求 消 息: Method Request-URI HTTP-Version ; 请 求 行 general-header ; 通 用 消 息 头 request-header ; 请 求 消 息 头 entity-header ; 实 体 消 息 头 ; 空 行 message-body ; 消 息 实 体 其 中 三 种 消 息 头 的 次 序 是 任 意 的。 响 应 消 息:,6,HTTP-Version Status-Code Reason-Phrase ; 状 态 行 general-header ; 通 用 消 息 头 response-header ; 响 应 消 息 头 entity-header ; 实 体 消 息 头 ; 空 行 message-body ; 消 息 实 体 请求行中的Method( 方 法)指定具体的请求操作,这些方法是HTTP指定的, 常用的方法有: - GET 浏览器要求从服务器处获得信息。 - POST 浏览器向服务器传送信息。,HTTP协议,7,请求行中的Request-URI是信息资源的定位符,类似于我们通常所说的“ 网 址”, 但网址通常是指某个网点IP地址对应的域名,而URI则要进一步指明网址下的路 径、网页文件名、web应用程序名等信息资源。请求行中的HTTP-Version 则指明 浏览器所能执行的HTTP协议版本号,多数是1.0或1.1 以 下 是 一 个 请 求 消 息 的 具 体 例 子: GET /default.htm HTTP/1.0 Host:http:/default Accept:text/html User-Agent:Mozilla/2.0 (compatible; NEWT ActiveX; Win32),HTTP协议,8,HTTP协议,HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。,9,HTML规范,HTML超文本标记语言 超文本 标记 网 页 是 一 个 按 照HTML 规 范 编 写 的 纯 文 本 文 件, 其 基 本 框 架 结 构 如 下: 网 页 标 题 . . ( 网 页 的 具 体 内 容) ,10,HTML,世界环球组织W3C HTML的版本 1.0、2.0、3.0、3.2、4.0 HTML4 DHTML CSS,11,客户端浏览器,文本浏览器 多媒体浏览器 Mosaic Netscape Internet Explorer 4.0/5.0/6.0,12,WEB应用服务器,IIS、PWS 其他WEB服务器 Netscape Server Apache Tomcat Resin、Jrun、WebLogic、WebSphere等,13,WEB开发的历史和现状,WEB开发的历史 Web应用的开发经历了三个阶段 基于CGI阶段 基于服务器端的脚本语言开发的阶段 基于应用服务器方式的阶段 WEB开发的现状 基于应用服务器方式的阶段 应用服务器解决的问题,14,相关的WEB开发技术,CGI ASP PHP JSP 其他相关技术 组件技术,如COM/ACTIVE X 、JavaBean 插件技术Plug IN,如FLASH媒体播放,15,ASP,ASP更精确的说是类似一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个解释器中将所有的ASP的Script进行分析,再进行执行,而这时可以在这个中间件中去创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些COM组件再完成更多的工作。所以说,ASP强大的不在于它的VBScript, 而在于它后台的COM组件,这些组件来无限的扩充了ASP的能力。 优点: 1、简单易学。BASIC开发基础是最广的,而且MS有一向做的非常好的联机手册,本地化语言的帮助,同时非常快的出现教学书籍,这样会大大方便开发人员的学习和对技术的深入研究。 2、安装使用方便。装好一个Windows 2000,只要你安装了IIS哪么ASP就可以使用了,从没有什么需要你花心思去配置的。而说实话,ASP的调优也不难做,而要做到最细时也不是一般人能做的了的。,16,ASP,3、开发工具强大而多样。可以说的就是以前使用VB中的Web Class开发出的Web应用一点不差,当时让许多人大吃一惊,VB也能做ASP上的应用!其实这正说明了ASP开发工具的多样化,同时它们的功能也很强,这一点已经被许多程序员所津津乐道。易用、简单、人性化,这本就是微软的强项。 4、效率高。在低的访问量下,ASP能体现出一定的效率,这时它对机器的要求并不高。 缺点: 1、Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性(Win2K已经不再支持Alpha了)都会因为与NT的捆绑而显现出来。 2、ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失。,17,ASP,3、由于ASP还是一种Script语言所以除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况。 4、无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的。 5、还无法完全实现一些企业级的功能:完全的集群、负载均横。,18,PHP,PHP最初是一个技术人员希望能用一个快速的方面来完成他自己的个人主页中的一个小应用。而在他一发不可收时出现了php,它使一个人能在多种操作系统下迅速的完成一个轻型的Web应用。同时在GNU的世界里找到了一个青梅竹马的伙伴-Apache。这终于让php有了基础,能在一个最佳的环境中运行,同时由于两个产品都是公开源代码的产品,所以大家可以使用它们的源代码将这两个产品用最完美的方式结合到一起,使用起来就如一个产品一样。php可能是自由软件在web应用平台上一个决胜的工具,如果没有php的出现,还会有许多人认为自由软件就代表了对开发人员的高技术要求、难记的代码、复杂的工具.php使一个会使用basic的人员在极短的时间里快迅学习并完成用户需要的应用。 可以说php是一个纯粹的Script翻译器。这也是php由3升级为4的一个重大原因,在4这个版本里它重写了语法分析器,从而加快了php整体的效能。而且从中也就会明白为什么php需要支持这种或是那种扩充功能时它一定要与相应系统的lib库进行再编绎的原因。正因为它是正宗的“翻译器”,,19,PHP,所以它是将script翻译成为需要执行的函数,再去执行它们,外部扩充不能由一些“动态加载”的方式进行,所以只能静态的编绎进php中(这只能在windows中除外)。 优点: 1、一种能快速学习、跨平台、有良好数据库交互能力的开发语言。正是它的这种能力让Unix/Linux有了一种与ASP媲美的开发语言。语法简单、书写容易、现在市面上也有了大量的书,同时Internet上也有大量的代码可以共享,对于一个初学者想学些“高深的Unix”下的开发来说是一个决好的入手点。 2、与Apache及其它扩展库结合紧密。php与Apache可以以静态编绎的方式结合起来,而与其它的扩展库也可以用这样的方式结合(除外的就是Windows平台了)。这样的方式的最大的好处就是最大化的利用了cpu时间和内存,同时极为有效的利用了apache的高性能的吞吐能力。同时外部的,20,PHP,扩展也是静态连编,从而达到了最快的运行速度。由于与数据库的接口也使用了这样的方式,所以使用的是本地化的调用,这也让数据库发挥了最佳效能。 3、良好的安全性。由于php本身的代码开放所以它的代码在许多工程师手中进行了检测,同时它与apache编绎在一起的方式也可以让它具有灵活的安全设定。所以到现在为止,php具有了公认的安全性能。 缺点: 1、数据库支持的极大变化。由于php的所有的扩展接口都是独立团队开发完成的,同时在开发时为了形成相应数据的个性化操作,所以php虽然支持许多数据库,可是针对每种数据库的开发语言都完全不同。这样形成针对一种数据库的工发工作,在数据库进行升级后需要开发人员进行几乎全部的代码更改工作。而为了让应用支持更多种的数据库,就需要开发人员将同样的数据库操作使用不同的代码写出n种代码库出来,让程序员的工作量大大增大。,21,PHP,2、安装复杂。由于php的每一种扩充模块并不是完全由php本身来完成,需要许多外部的应用库,如图形需要gd库、LDAP需要LDAP库.这样在安装完成相应的应用后,再联编进php中来。这也就是说的一定要在FreeBSD/Linux/Unix下运行php的原因。只有在这些环境下才能方便的编绎对应的扩展库。这些都是一般开发人员在使用php前所先要面对的问题,正是这样的问题让许多开发人员转而使用其它的开发语言,必竟Unix没有那么多的用户。 3、缺少企业级的支持。没有组件的支持,哪么所有的扩充就只能依靠php开发组所给出的接口,事实上这样的接口还不够多。同时难以将集群、应用服务器这样的特性加入到系统中去。而一个大型的站点或是一个企业级的应用一定需要这样的支持的。注:在php的4.0版本以后加入了对servlet/javabean的支持,也许这样的支持会在以后的版本中更加增强,也许这样的支持会是php以后的企业级支持的起点。,22,PHP,4、缺少正规的商业支持。这也是自由软件一向的缺点,国内php的开发人员正在快速增加,也许在不久的将来,这样的支持能多起来。 5、无法实现商品化应用的开发。由于php没有任何编绎性的开发工作,所有的开发都是基于脚本技术来完成的。所以所有的源代码都无法编译,所以做完成的应用只能是自己或是内部使用,无法实现商品化。,23,JSP,JAVA世界中最让Web技术人员兴奋的就是Java Servlet的出现和JSP的渐渐成熟,这一步步都让Java正式的走向了Web开发技术的舞台。Java利用了它的跨平台技术,使java的应用能快速的部署在各个平台上,而真的可以一处编写随处运行。它有较的利用了这个优势,巧妙的将java的通用性、jsp的易用性、servlet的速度结合在一起,利用平台部署上的技巧有效的屏蔽java的速度问题,所以Java迅速的在Web开发人员的团员中推广开来。携着Java Bean、EJB、Java Application Server、Java事务服务器等这样的强大后台走向了真正的成熟应用。 JSP它是一个特别的Java语言,加入了一个特殊的引擎,这个引擎将HTTPServlet这个类的一些对象自动进行初始化好让用户使用,而用户不用再去操心前面的工作。同时这个引擎又引入了jsp:*、%等一系列的特别语法,使用这些语法来进行一些特定的操作,如引用文件、URL转向、JavaBean引用等这样的操作,这些都是由引擎自动帮你完成初始化的工作。,24,JSP,我们可以将这个引擎看作一个Jsp到Java Servlet的生成器或是翻译器,让用户不用再面对复杂的Servlet中的还没开始工作就要写的几十行代码。这就是JSP-一个Java Servlet生成器。JSP-Java Servlet Code(.java文件)-Java Runtime Bin Code(.class文件),这就是为什么我们第一次运行JSP时CPU运行能达到很高的原因,它实际上是调用了jsp引擎来生成java文件,再用javac来编译它到class文件,这才能去执行它。同时也说明了在第一次运行以后,速度为什么那么快的原因,只要这个jsp文件不改变哪么这个操作就不再会进行了(除非删除了class文件)。所以说,java有什么jsp就有什么样的功能,与asp一样,jsp的真正力量是我们永远看不到头的! 优点: 1、一处编写随处运行。这是一个程序员的梦想,为了在不同的平台间运行,使许多程序员一行行的重写代码。在这一点上java已经给了最完美的答案。它做的要比php更出色,除了系统之外,你的代码不用做一点更改的。,25,JSP,2、系统的多平台支持。在差不多所有平台上见到了一致的java servlet/jsp的Web Server/Application Server系统它可以让你在任意环境做开发,在任意环境进行系统部署,在任意环境扩展。相比asp/php的局限性是显面易见的。 3、强大的的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp到由多台服务器进行集群和负载均横,到多台Application进行事务处理、消息处理.一台服务器到无数以服务器,Java显示了一个巨人的生命力。 4、多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀的开发工具而且有许多可以免费得到,并且其中的许多已经可以顺利的运行于多种平台之下。 弱点: 1、与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。这,26,JSP,么说,它在扩展时需要的分成多少块,哪么java系统中就有多少种产品。所以你要以看到jre、jdk、jsdk、jswdk,实际上它们只要有效的搭配在一起,就可以产生强大的效能,密不可分。 2、JSP程序调试困难。 3、执行性能仍有待提高。 4、缺少系统性的资料。java的资烊在国内极少,而对java体系的论述书更是少而又少,与java相关的书(中文版)到现在不过三位数。而再看看之中大量的具然还在讲Visual J+或是Java 1.1这样的阵年旧货。,27,WEB开发工具,Notepad、UltraEdit 主页设计工具 FrontPage、DreamWeaver 集成开发工具 Visual InterDev、DreamWeaver UltraDev JAVA集成开发环境 Jrun Studio、WebSphere Studio、Jbuilder 其他工具,如MS Script Debugger,28,WEB开发的未来趋势,功能日渐完整 各个应用服务器厂商都在扩充自己的应用服务器产品,例如使自己的产品更加完整,能够包含上述所有的解决问题的方法,让最终使用的客户来决定系统的真正运行模式。 方便开发的工具日益增多 开发工具将不再局限在编辑器、项目管理工具等上面。未来的开发工具将大大增强Web系统的调试能力,同时也将提供更多的代码自动生成工具 基于XML的开放性通信体系 JAVA/Microsoft.NET,29,补充,目前WEB开发的主要困难 技术发展太快,新技术/规范层出不穷 目前涉及的技术种类比较多,缺少“统一”的开发语言/工具 程序调试比较困难 WEB开发应树立的观点 用户的观点 Internet的观点 并发性能的观点 安全的观点,30,谢 谢!,
展开阅读全文