第一章 Web应用开发简介-程序员宅基地

技术标签: Java Web  

目录

要点:

网络程序开发体系结构

C/S体系结构介绍

B/S体系结构介绍

两种体系结构的比较

Web简介

Web应用程序的工作原理

Web的发展历程

Web开发技术

客户端应用技术

服务器端应用技术

 


要点:

  1. 了解C/S结构和B/S结构

  2. 理解Web应用程序的工作原理

  3. 了解有Web引用的客户端应用技术

  4. 了解Web应用的服务器端应用技术

网络程序开发体系结构

C/S体系结构介绍

C/S(Client/Server)即客户端/服务器结构。在这种结构中,服务器通常采用高性能的PC或工作站,并采用大型数据库系统(如Oracle或SQL Server),客户端则需要安装专用的客户端软件。这种结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器,从而降低系统的通信开销。在2000年以前,C/S结构占据网络程序开发领域的主流。

B/S体系结构介绍

B/S(Brower/Server)即浏览器/服务器结构。在这种结构中,客户端不需要开发任何用户界面,而统一采用如IE和Chrome浏览器,通过Web浏览器向Web服务器发送请求,由Web服务器进行处理,并将处理结果逐级传回客户端。这种结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,从而节约了开发成本,是一种全新的软件体系结构。B/S体系结构已经成为当今应用软件的首选体系结构。

两种体系结构的比较

C/S结构和B/S结构是当今世界网络程序开发体系结构的两大主流。目前,二者都有自己的市场份额和客户群,但是二者又各有各的优点和缺点。

1.开发和维护成本方面。C/S结构的开发和维护成本都高于B/S。

2.客户端负载。C/S的客户端负载较重。B/S的服务器负载较重,一旦服务器“崩溃”,后果不堪设想,因此需要备有数据库存储服务器,以防外一。

3.安全性。C/S结构适用于专人使用的系统,可以通过严格的管理派发软件,达到保证系统安全的目的,安全性较高。B/S系统由于使用人数较多,且不固定,相对来说安全性不如B/S。

Web简介

Web应用程序的工作原理

Web应用程序答题分为两种,即静态网站动态网站

静态网站使用HTML来编写,放在Web服务器上,用户使用浏览器通过HTTP协议请求服务器上的Web页面,服务器上的Web服务器将接收到的用户请求处理后,再发送给客户端浏览器,显示给用户。

动态网站可以根据用户的请求动态生成页面信息。通常使用HTML和动态脚本语言(如JSP、ASP、PHP等)编写,再将编写后的程序部署到Web服务器上,由Web服务器对动态脚本代码进行处理,并转化为浏览器可以解析的HTML代码,返回给客户端浏览器,显示给用户。

Web的发展历程

1.静态文档阶段。此阶段,主要是用于静态Web页面的浏览。用户通过浏览器,访问Internet上各个Web站点。在每个站点上,保存着提前编写好的HTML格式的Web页,以及各Web之间可以实现跳转的超文本链接。由于受低版本HTML语言和旧时浏览器的制约,Web页面只能包括单纯的文本内容,浏览器也只能显示代办的文字信息,不过这已经基本满足了建立Web站点的初衷,实现了信息资源共享。但随着互联网技术的不断发展以及网上信息呈几何级数的增加,手工编写包含所有信息和内容的页面很难实现,也无法实现各种动态的交互功能。这促使Web技术进入发展的第二个阶段——动态网页阶段。

2.动态网页阶段。为了克服静态页面的不足,人们将传统单机环境下的编程技术与Web技术相结合,从而形成新的网络编程技术。网络编程技术通过在传统的静态页面中加入各种程序和逻辑控制,从而实现动态和个性化的交流与互动。我们将这种使用动态网络编程技术创建的页面称为动态页面。动态页面的后缀通常是.jsp、.php、.asp等,二静态页面的后缀通常是.htm、.html、.shtml等。

3.Web 2.0 阶段。随着互联网技术的不断发展,又提出了一种新的互联网模式——Web 2.0。这种模式更加以用户为中心,通过网络应用(Web Applications)促进网络上人与人间的信息交换和协同合作。包括:博客(BLOG)、微博(Twitter)、维基百科全书(Wiki)、网摘(Delicious)、社会网络(SNS)、对等计算(P2P)、即时信息(IM)、基于地理信息服务(LBS)等。

Web开发技术

在开发Web应用程序时,通常需要应用客户端和服务器两方面的技术。其中,客户端应用的技术主要用于展现信息内容,而服务器端应用的技术则主要用于进行业务逻辑的处理和与数据库的交互等。

客户端应用技术

进行Web应用开发,离不开客户端技术的支持。目前,比较常用的客户端技术包括HTML、CSS样式、Flash和客户端脚本技术。

1.HTML。HTML是客户端技术的基础,主要用于显示网页信息,它不需要编译,又浏览器解释执行。HTML简单易用,它在文件中加入标签,使其可以显示各种各样的字体、图形及闪烁效果,还增加了结构和标记,如头元素、文字、列表、表格、表单、框架、图像和多媒体,并且提供了与Internet中其他文档的超链接。HTML不区分大小写。

2.CSS样式。CSS样式就是一种叫做样式表(style sheet)的技术,也称之为层叠样式表(Cascading Style Sheet)。在制作网页时,采用CSS样式,可以有效地对页面的布局、字体、颜色、背景、和其他效果实现更加精确的控制;只要对相应的代码做一些简单修改,就可以改变整个页面的风格。CSS大大提高了开发者对信息展现格式的控制能力。在网页中使用CSS样式不仅可以美化页面,而且可以优化网页速度。因为CSS样式表文件只是简单的文本格式,不需要安装额外的第三方插件;另外CSS提供了很多滤镜效果,从而避免使用大量的图片,这样将大大缩小文件的体积,提高下载速度。

3.Flash。Flash是一种交互式矢量动画制作技术,它可以包含动画、音频、视频及应用程序,而且Flash文件比较小,适合在Web上应用 。将Flash技术引入到网页中,使网页更有表现力。特别是应用Flash技术可以实现动态播放网站广告或新闻图片,并且加入随机的转场效果。但因为Flash技术是一个比较早期的技术,所以现在更流行使用客户端脚本技术来实现网页动态效果。不过Flash Player则依旧是各大网站的主流视频插件。

4.客户端脚本技术。客户端脚本技术是指嵌入到Web页面中的程序代码,这些程序代码是一种解释性的语言,浏览器可以对客户端脚本进行解释。通过脚本语言可以实现以编程的方式对页面元素进行控制,从而增加了页面的灵活性。常用的客户端脚本语言有 JavaScript 和 VBScript。目前,应用最为广泛的客户端脚本语言是JavaScript

服务器端应用技术

在开发动态网站时,离不开服务器端技术。从技术发展的先后来看,服务器端技术主要有CGI、ASP、PHP、ASP,NET、JSP。

1.CGI。是最早用来出杨戬动态网页的一种技术,它可以使浏览器与服务器之间产生互动关系。CGI(Common Gateway Interface)即通用网关接口,它允许使用不同的语言来编写合适的CGI程序,该程序被放在Web服务器上运行。当客户端发出请求给服务器时,服务器根据用户请求建立一个新的进程来执行指定的CGI程序,并将执行结果以网页的形式传输到客户端的浏览器上显示,CGI可以说是当前应用程序的基础技术,但这种技术编制方式比较困难而且效率低下,应为每次页面被请求时,都要求服务器重新将CGI程序编译成可执行的代码。在CGI中使用的常见语言为C/C++、Java和Perl。

2.ASP。ASP(Active Server Page)是一种使用很广泛的开发动态网站的技术。它通过在页面代码中浅入VBScript或JavaScript脚本语言来生成动态的内容,服务器端必须安装了适当的解释器后,才可以通过调用此解释器来执行脚本程序,然后将执行结果与静态内容部分结合并传送到客户端浏览器上。对于一些复杂的操作,ASP可以调用存在于后台的COM组件来完成,所以COM组件无限扩充了ASP的能力,正因如此依赖本地的COM组件,使得它主要用于Windows NT平台中,所以Windows本身存在的问题都会映射到它的身上。当然该技术也存在很多优点,简单易学,并且ASP是与微软的IIS捆绑在一起,在安装Windows操作系统的同时安装上IIS就可以运行ASP应用程序了。

3.PHP。PHP来自于Personal Home Page一词,但现在的PHP已经不再表示名词的缩写,而是一种开发动态网页技术的名称。PHP语法类似与C,并且混合了Perl、C++和Java的一些特性。它是一种开源的Web服务器脚本语言,与ASP一样可以在页面中加入脚本代码来生成动态内容,对于一些复杂的操作可以封装到函数或类中。PHP可以被多个平台支持,但被广泛应用于UNIX/Linux平台。由于PHP本身的代码对外开放,又经过愈多软件工程师的检测,因此到目前为止该技术具有公认的安全性能。

4.ASP.NET。ASP.NET是一种建立动态Web应用程序的技术,他是.NET框架的一部分,可以使用任何.NET兼容的语言来编写ASP.NET应用程序。使用Visual Basic .NET,C# ,J#,ASP.NET页面(Web Forms)进行编译,可以提供比脚本语言更出色的性能表现。Web Formas允许在网页基础上建立强大的窗体。当建立页面时,可以使用ASP.NET服务端控件来建立常用的UI元素,并对它们编码来完成一般的任务。这些控件允许开发者使用内建可重用的组件和自定义组件来快速建立Web Form,使代码简单化。

5.JSP。Java Server Page(JSP)是以Java为基础开发的,所以它沿用了Java强大的API功能。JSP页面中的HTML代码用来显示静态内容部分;嵌入页面中的Java代码与JSP标记用来生成动态的内容部分。JSP允许程序员编写自己的标签库来完成应用程序的特定要求。JSP可以被预编译,提高了程序的运行速度。另外,JSP开发的应用程序经过一次编译后,便可随时随地运行。所以在绝大部分系统平台中,代码无需做修改就可以在支持JSP的任何服务器中运行。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xj17756558696/article/details/88736594

智能推荐

计算机应用基础面试题目及答案-程序员宅基地

文章浏览阅读707次。题目1在Excel中,单元格地址是指( ???????)。选取一项:A. 每个单元格大小B. 每个单元格C. 单元格在工作表中位置D. 单元格所在工作表对的答案是:单元格在工作表中位置题目2在Excel中,下面输入能直接显示产生分数1/2输入办法是( ???????)。选取一项:A. 1/2B. 0.5C. 2/4D. 0 1/2对的答案是:0 1/2题目3在Excel中,如下说法不对的是( ??..._国开计算机应用基础形考

vue3+express+mysql+vant实现移动端个人登录页面_基于 vant 移动端 登录 demo-程序员宅基地

文章浏览阅读2.7k次,点赞3次,收藏17次。express+vue3+mysql+vant 移动端登录页面_基于 vant 移动端 登录 demo

解决mac安装时提示:app已损坏,打不开。你应该将它移到废纸篓。-程序员宅基地

文章浏览阅读347次。安装Shimo时,下载了N个版本,结果打开时增多提示:”app已损坏,打不开。你应该将它移到废纸篓。“失败了N次扔到,找到了以下解决方法:虽然提示已损坏,其实软件并没未真正损坏,而是mac系统的安全设置问题,因为这些应用都是破解或者汉化版本,那么解决方法就是改变mac系统的安全设置。只需要打开终端,执行 sudo spctl --master-disable 即可。转载于:htt..._打不开“shimo”因为它来自身份不明的开发者。

windows下使用nexus搭建maven私服_如何搭建nexus for windows-程序员宅基地

文章浏览阅读2.7k次。一.安装nexus1.下载nexus,解压.我下的是nexus-2.13.0-01,到nexus-2.13.0-01\bin\jsw这个目录下,会发现有很多系统版本的nexus环境.我的电脑是win7 64位系统,根据对应系统,选择对应版本.打开之后,你会看到如下文件:console-nexus.bat : 启动nexus服务器,命令窗口关闭后不会驻留在windows服务中insta_如何搭建nexus for windows

Java GUI AWT如何搭建一个基本的GUI界面._setloation-程序员宅基地

文章浏览阅读1.9k次,点赞5次,收藏18次。Java :swing and AWT 抽象窗口工具组(Abstract Window Toolkit=AWT)一、AWT1.包含很多类和接口GUI2.元素:窗口,按钮,文本框…3. java.awt4.组件框架.二、如何搭建一个基本的GUI界面.1. 新建一个Frame** 1.1 直接 ctrl + 左键点击 Frame() 查看源码知道Frame frame = ne..._setloation

paper 39 :Matlab绘制误差棒图(errorbar函数的使用)-程序员宅基地

文章浏览阅读6.9k次,点赞5次,收藏48次。同很多非数学相关专业的朋友一样,我第一次碰到这个图时也是丈二和尚摸不着头脑。只知道这个工字型的图案,中间的点代表的是平均值,上下的两条横线代表的是方差值,除此之外,连这个图叫什么名字都不知道,只好硬着头皮在百度里输入“matlab作图中间是平均值上下是方差”或者“怎么画图:平均值和方差在图示中表现出来”之类搞笑的关键词搜索来寻找一丝蛛丝马迹。在阅读了很多文章之后,慢慢的才确定,这种统计学上常用的图..._matlab error bar

随便推点

计算机刷bios版本,详细教你电脑刷bios-程序员宅基地

文章浏览阅读5.4k次。提到刷新BIOS,很多人一定认为做这种事很危险,弄不好就会把BIOS刷坏。其实,如果你掌握了正确的方法,并且操作得当,一般是没有什么问题的。想刷bios的朋友很多在寻找刷主板bios教程,可能出于解决系统故障的需要bios,那么怎么刷bios呢?别急,小编这就把刷bios图解分享给你们。刷新BIOS的方法有很多种,除了可以在DOS下刷新外,还可以在Windows下刷新,那么使用什么方法刷主板bio..._电脑刷es和bioss版本

计算机网络 套接字,关于计算机网络:计算机网络基础二十二传输层套接字与套接字编程...-程序员宅基地

文章浏览阅读154次。套接字与套接字编程套接字在之前的文章中有说到,通过端口(Port)能够惟一的标识不同的网络过程。如果有一个过程在应用网络的话,那必定是会占用一个端口的,计算机就是通过这个端口来辨别不通的网络过程的端口(Port)应用16比特位示意(0~65535)。由端口以及IP就能够指定网络中某一台主机的具体过程是哪一个「IP:Port」。对于IP和端口的组合,有一个名字叫:套接字(Socket)套接字(Soc..._网络中两台主机之间的通信实际上是两个套接字在通信,套接字由两部分组成,即:(

Linux下查看目录文件数和文件大小_ls 查看目录大小-程序员宅基地

文章浏览阅读3.5w次,点赞3次,收藏33次。一、查看当前目录下文件个数在linux下查看目录下有多少文件可以用:ls -l 命令查看,ls -lR 递归查看所有目录,如果文件很多,则用wc命令 和 grep 命令进行过滤。wc命令显示输出的行 列 字符数,-l表示仅列出行、-w表示仅列出多少字、-m表示仅列出多少字符; grep用于过滤输出信息,不做详细介绍;如下:1、ls -l获取当前目录下信息2、ls -l..._ls 查看目录大小

Python自学笔记-lambda函数(来自廖雪峰的官网Python3)-程序员宅基地

文章浏览阅读147次。感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下。以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看。匿名函数通过对比可以看出,匿名函数lambda x: x * x实际上就是:def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数..._python利用lambda函数代替求和函数sum与求差函数sub

Soul源码分析–soul-admin源码分析_souappl-admin-程序员宅基地

文章浏览阅读328次。Soul源码分析–soul-admin源码分析前言源码分析总结前言在上一篇文章中,介绍了 soul-admin 怎么管理和配置网关的请求,其核心原理是基于各种插件来实现对应的功能。现在我们来看看后台是怎么来管理和实现动态配置。源码分析在分析源码之前,先看下图,页面显示加载的插件列表会对应后端的请求,根据后端请求,找到对应的controller类然后找到对应的方法,在上图可以看到这里是访问 plugin 中默认为空的 mapping,传入到分页相关的参数,然后去查询数据库中对应的插件记录数据库_souappl-admin

oracle有plsql MySQL呢_oracle plsql连接不上数据库-程序员宅基地

文章浏览阅读317次。oracle客户端和plsql developer安装部署应用场景当一个服务器上安装了oracle数据库,我们需要通过外在工具来连接该oracle数据库,来更加方便简洁的操作数据库,对数据库进行增删改查的操作,这篇文章介绍了用Navicat来连接oracle,但是比较正式的还是采用plsql来操作oracle,毕竟navicat连oracle速...文章wsc4492017-11-101157浏览..._database2sharp 连不上数据库

推荐文章

热门文章

相关标签