要点:
了解C/S結(jié)构和B/S結(jié)构理解Web應(yīng)用(yòng)程序的(de)工作原理了解有Web引用(yòng)的(de)客户端應(yīng)用(yòng)技术了解Web應(yīng)用(yòng)的(de)服务器端應(yīng)用(yòng)技术
C/S体系(xì)結(jié)构介绍
C/S(Client/Server)即客户端/服务器結(jié)构。在这种結(jié)构中(zhōng),服务器通(tōng)常采用(yòng)高性能(néng)的(de)PC或工作站,并采用(yòng)大型数据库系(xì)统(如Oracle或SQL Server),客户端则需要安(ān)装专用(yòng)的(de)客户端软件。这种結(jié)构可以(yǐ)充分利用(yòng)两端硬件环境的(de)优势,將(jiāng)任务合理分配到客户端和服务器,从而降低系(xì)统的(de)通(tōng)信(xìn)开销。在2000年以(yǐ)前,C/S結(jié)构占据网络程序开发领域的(de)主流。
B/S体系(xì)結(jié)构介绍
B/S(Brower/Server)即浏览器/服务器結(jié)构。在这种結(jié)构中(zhōng),客户端不需要开发任何用(yòng)户界面,而统一采用(yòng)如IE和Chrome浏览器,通(tōng)过Web浏览器向Web服务器发送(sòng)请求,由Web服务器进行处理,并將(jiāng)处理結(jié)果逐级传回客户端。这种結(jié)构利用(yòng)不斷(duàn)成熟和普及的(de)浏览器技术实现原来需要复杂专用(yòng)软件才能(néng)实现的(de)强大功能(néng),从而节约了开发成本,是(shì)一种全新的(de)软件体系(xì)結(jié)构。B/S体系(xì)結(jié)构已经成爲(wèi)当今應(yīng)用(yòng)软件的(de)首选体系(xì)結(jié)构。
两种体系(xì)結(jié)构的(de)比較(jiào)
C/S結(jié)构和B/S結(jié)构是(shì)当今世界网络程序开发体系(xì)結(jié)构的(de)两大主流。目前,二者都有自己的(de)市场份额和客户群,但是(shì)二者又各有各的(de)优点和缺点。
1.开发和维护成本方面。C/S結(jié)构的(de)开发和维护成本都高于B/S。
2.客户端负载。C/S的(de)客户端负载較(jiào)重。B/S的(de)服务器负载較(jiào)重,一旦服务器“崩溃”,后果不堪设想,因此需要备有数据库存储服务器,以(yǐ)防外一。
3.安(ān)全性。C/S結(jié)构适用(yòng)于专人使用(yòng)的(de)系(xì)统,可以(yǐ)通(tōng)过严格的(de)管理派发软件,达到保证系(xì)统安(ān)全的(de)目的(de),安(ān)全性較(jiào)高。B/S系(xì)统由于使用(yòng)人数較(jiào)多,且不固定,相(xiāng)对来说安(ān)全性不如B/S
Web简介
展开全文
Web應(yīng)用(yòng)程序的(de)工作原理
Web應(yīng)用(yòng)程序答题分爲(wèi)两种,即静态网站和动态网站。
静态网站使用(yòng)HTML来编写,放在Web服务器上,用(yòng)户使用(yòng)浏览器通(tōng)过服务器將(jiāng)接收到的(de)用(yòng)户请求处理后,再发送(sòng)给客户端浏览器,显示给用(yòng)户。
动态网站可以(yǐ)根据用(yòng)户的(de)请求动态生成页面信(xìn)息。通(tōng)常使用(yòng)HTML和动态脚本語(yǔ)言(如JSP、ASP、PHP等)编写,再將(jiāng)编写后的(de)程序部署到Web服务器上,由Web服务器对动态脚本代码进行处理,并轉(zhuǎn)化爲(wèi)浏览器可以(yǐ)解析的(de)HTML代码,返回给客户端浏览器,显示给用(yòng)户。
Web的(de)发展历程
1.静态文档阶段。此阶段,主要是(shì)用(yòng)于静态Web页面的(de)浏览。用(yòng)户通(tōng)过浏览器,访问Internet上各个Web站点。在每个站点上,保存着提前编写好的(de)HTML格式的(de)Web页,以(yǐ)及各Web之间可以(yǐ)实现跳轉(zhuǎn)的(de)超文本链接。由于受低版本HTML語(yǔ)言和旧时浏览器的(de)制约,Web页面只能(néng)包括单纯的(de)文本內(nèi)容,浏览器也只能(néng)显示代办的(de)文字信(xìn)息,不过这已经基(jī)本满足了建立Web站点的(de)初衷,实现了信(xìn)息资源共享。但随着互联网技术的(de)不斷(duàn)发展以(yǐ)及网上信(xìn)息呈几何级数的(de)增加,手工编写包含所有信(xìn)息和內(nèi)容的(de)页面很难实现,也无法实现各种动态的(de)交互功能(néng)。这促使Web技术进入发展的(de)第二个阶段——动态网页阶段。
2.动态网页阶段。爲(wèi)了克服静态页面的(de)不足,人们將(jiāng)传统单机环境下的(de)编程技术与Web技术相(xiāng)結(jié)合,从而形成新的(de)网络编程技术。网络编程技术通(tōng)过在传统的(de)静态页面中(zhōng)加入各种程序和逻辑控制,从而实现动态和个性化的(de)交流与互动。我们將(jiāng)这种使用(yòng)动态网络编程技术创建的(de)页面称爲(wèi)动态页面。动态页面的(de)后缀通(tōng)常是(shì).jsp、.php、.asp等,二静态页面的(de)后缀通(tōng)常是(shì).htm、.html、.shtml等。
3.Web 2.0 阶段。随着互联网技术的(de)不斷(duàn)发展,又提出了一种新的(de)互联网模式——Web 2.0。这种模式更加以(yǐ)用(yòng)户爲(wèi)中(zhōng)心,通(tōng)过网络應(yīng)用(yòng)(Web Applications)促进网络上人与人间的(de)信(xìn)息交换和协同合作。包括:博客(BLOG)、微博(Twitter)、维基(jī)百科全书(Wiki)、网摘(Delicious)、社(shè)会网络(SNS)、对等计算(suàn)(P2P)、即时信(xìn)息(IM)、基(jī)于地理信(xìn)息服务(LBS)等。
Web开发技术
在开发Web應(yīng)用(yòng)程序时,通(tōng)常需要應(yīng)用(yòng)客户端和服务器两方面的(de)技术。其中(zhōng),客户端應(yīng)用(yòng)的(de)技术主要用(yòng)于展现信(xìn)息內(nèi)容,而服务器端應(yīng)用(yòng)的(de)技术则主要用(yòng)于进行业务逻辑的(de)处理和与数据库的(de)交互等。
客户端應(yīng)用(yòng)技术
进行Web應(yīng)用(yòng)开发,离不开客户端技术的(de)支持。目前,比較(jiào)常用(yòng)的(de)客户端技术包括HTML、CSS样式、Flash和客户端脚本技术。
1.HTML。HTML是(shì)客户端技术的(de)基(jī)础,主要用(yòng)于显示网页信(xìn)息,它(tā)不需要编译,又浏览器解释执行。HTML简单易用(yòng),它(tā)在文件中(zhōng)加入标签,使其可以(yǐ)显示各种各样的(de)字体、圖(tú)形及闪烁效果,还增加了結(jié)构和标记,如头元素、文字、列表、表格、表单、框架、圖(tú)像和多媒体,并且提供了与Internet中(zhōng)其他文档的(de)超链接。HTML不区分大小写。
2.CSS样式。CSS样式就是(shì)一种叫做样式表(style sheet)的(de)技术,也称之爲(wèi)层叠样式表(Cascading Style Sheet)。在制作网页时,采用(yòng)CSS样式,可以(yǐ)有效地对页面的(de)布局、字体、颜色、背景、和其他效果实现更加精确的(de)控制;只要对相(xiāng)應(yīng)的(de)代码做一些简单修改,就可以(yǐ)改变整个页面的(de)风格。CSS大大提高了开发者对信(xìn)息展现格式的(de)控制能(néng)力(lì)。在网页中(zhōng)使用(yòng)CSS样式不仅可以(yǐ)美化页面,而且可以(yǐ)优化网页速度。因爲(wèi)CSS样式表文件只是(shì)简单的(de)文本格式,不需要安(ān)装额外的(de)第三方插件;另(lìng)外CSS提供了很多滤镜效果,从而避免使用(yòng)大量的(de)圖(tú)片,这样將(jiāng)大大缩小文件的(de)体积,提高下载速度。
3.Flash。Flash是(shì)一种交互式矢量动画制作技术,它(tā)可以(yǐ)包含动画、音频、视频及應(yīng)用(yòng)程序,而且Flash文件比較(jiào)小,适合在Web上應(yīng)用(yòng) 。將(jiāng)Flash技术引入到网页中(zhōng),使网页更有表现力(lì)。特别是(shì)應(yīng)用(yòng)Flash技术可以(yǐ)实现动态播放网站广告或新闻圖(tú)片,并且加入随机的(de)轉(zhuǎn)场效果。但因爲(wèi)Flash技术是(shì)一个比較(jiào)早期的(de)技术,所以(yǐ)现在更流行使用(yòng)客户端脚本技术来实现网页动态效果。不过Flash Player则依旧是(shì)各大网站的(de)主流视频插件。
4.客户端脚本技术。客户端脚本技术是(shì)指嵌入到Web页面中(zhōng)的(de)程序代码,这些程序代码是(shì)一种解释性的(de)語(yǔ)言,浏览器可以(yǐ)对客户端脚本进行解释。通(tōng)过脚本語(yǔ)言可以(yǐ)实现以(yǐ)编程的(de)方式对页面元素进行控制,从而增加了页面的(de)灵活性。常用(yòng)的(de)客户端脚本語(yǔ)言有 JavaScript 和 VBScript。目前,應(yīng)用(yòng)最爲(wèi)广泛的(de)客户端脚本語(yǔ)言是(shì)JavaScript。
服务器端應(yīng)用(yòng)技术
在开发动态网站时,离不开服务器端技术。从技术发展的(de)先后来看,服务器端技术主要有CGI、ASP、PHP、ASP,NET、JSP。
1.CGI。是(shì)最早用(yòng)来出杨戬动态网页的(de)一种技术,它(tā)可以(yǐ)使浏览器与服务器之间产生互动关系(xì)。CGI(Common Gateway Interface)即通(tōng)用(yòng)网关接口,它(tā)允许使用(yòng)不同的(de)語(yǔ)言来编写合适的(de)CGI程序,该程序被放在Web服务器上运行。当客户端发出请求给服务器时,服务器根据用(yòng)户请求建立一个新的(de)进程来执行指定的(de)CGI程序,并將(jiāng)执行結(jié)果以(yǐ)网页的(de)形式传输到客户端的(de)浏览器上显示,CGI可以(yǐ)说是(shì)当前應(yīng)用(yòng)程序的(de)基(jī)础技术,但这种技术编制方式比較(jiào)困难而且效率低下,應(yīng)爲(wèi)每次页面被请求时,都要求服务器重新將(jiāng)CGI程序编译成可执行的(de)代码。在CGI中(zhōng)使用(yòng)的(de)常见語(yǔ)言爲(wèi)C/C++、Java和Perl。
2.ASP。ASP(Active Server Page)是(shì)一种使用(yòng)很广泛的(de)开发动态网站的(de)技术。它(tā)通(tōng)过在页面代码中(zhōng)浅入VBScript或JavaScript脚本語(yǔ)言来生成动态的(de)內(nèi)容,服务器端必须安(ān)装了适当的(de)解释器后,才可以(yǐ)通(tōng)过调用(yòng)此解释器来执行脚本程序,然后將(jiāng)执行結(jié)果与静态內(nèi)容部分結(jié)合并传送(sòng)到客户端浏览器上。对于一些复杂的(de)操(cāo)作,ASP可以(yǐ)调用(yòng)存在于后台的(de)COM组件来完成,所以(yǐ)COM组件无限扩充了ASP的(de)能(néng)力(lì),正因如此依赖本地的(de)COM组件,使得它(tā)主要用(yòng)于Windows NT平台中(zhōng),所以(yǐ)Windows本身存在的(de)问题都会映射到它(tā)的(de)身上。当然该技术也存在很多优点,简单易学,并且ASP是(shì)与微软的(de)IIS捆绑在一起,在安(ān)装Windows操(cāo)作系(xì)统的(de)同时安(ān)装上IIS就可以(yǐ)运行ASP應(yīng)用(yòng)程序了。
3.PHP。PHP来自于Personal Home Page一词,但现在的(de)PHP已经不再表示名词的(de)缩写,而是(shì)一种开发动态网页技术的(de)名称。PHP語(yǔ)法类似与C,并且混合了Perl、C++和Java的(de)一些特性。它(tā)是(shì)一种开源的(de)Web服务器脚本語(yǔ)言,与ASP一样可以(yǐ)在页面中(zhōng)加入脚本代码来生成动态內(nèi)容,对于一些复杂的(de)操(cāo)作可以(yǐ)封装到函数或类中(zhōng)。PHP可以(yǐ)被多个平台支持,但被广泛應(yīng)用(yòng)于UNIX/Linux平台。由于PHP本身的(de)代码对外开放,又经过愈多软件工程师的(de)检测,因此到目前爲(wèi)止该技术具有公认的(de)安(ān)全性能(néng)。
,使代码简单化。
5.JSP。Java Server Page(JSP)是(shì)以(yǐ)Java爲(wèi)基(jī)础开发的(de),所以(yǐ)它(tā)沿用(yòng)了Java强大的(de)API功能(néng)。JSP页面中(zhōng)的(de)HTML代码用(yòng)来显示静态內(nèi)容部分;嵌入页面中(zhōng)的(de)Java代码与JSP标记用(yòng)来生成动态的(de)內(nèi)容部分。JSP允许程序员编写自己的(de)标签库来完成應(yīng)用(yòng)程序的(de)特定要求。JSP可以(yǐ)被预编译,提高了程序的(de)运行速度。另(lìng)外,JSP开发的(de)應(yīng)用(yòng)程序经过一次编译后,便可随时随地运行。所以(yǐ)在绝大部分系(xì)统平台中(zhōng),代码无需做修改就可以(yǐ)在支持JSP的(de)任何服务器中(zhōng)运行。
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。