




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web应用开发基本原理Web应用原理简介Web应用是基于HTTP协议的,Web应用也被常常被称为B/S(Browser/Server,浏览器/服务器)应用,这是针对传统的C/S(Client/Server,客户端/服务器模式)模式而言的。但是Web应用其实也是一种客户端/服务器的应用,只不过客户端使用的是统一协议的浏览器而已。传统的C/S结构是两层结构,客户端直接和数据库连接,这种模式存在着非常大的安全隐患,目前已经逐步消亡了。但是作为3层结构(UIBizServerDB)的结构会长期和B/S结构共存。优点缺点B/Sl 具有分布性特点,可以随时随地进行业务处理。l 业务扩展简单方便,通过增加网页即可增加服务器功能。l 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。l 开发简单,共享性强。l 个性化特点明显降低,无法实现具有个性化的设计要求。l 操作的习惯性是以鼠标为最基本的操作方式,无法满足快速操作的要求。l 页面动态刷新,响应速度明显降低。l 专用性打印输出难以实现,尤其对票据等打印,难以实现套打输出。l 无法实现分页显示,给数据库访问造成较大的压力。l 功能弱化,难以实现传统模式下的特殊功能要求。l 界面组件扩展性差C/Sl 客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。l 客户操作界面设计灵活,容易满足客户自身的个性化要求。l 界面组件丰富l 客户端实现与服务器常常是以长连接相连的,因此会降低并发数。l 由于是针对性开发,因此缺少通用性的特点,业务变更或改变不够灵活,需要重新设计和开发,增加了维护和管理的难度,进一步的业务拓展困难较多。l 需要专门的客户端安装程序,分布功能弱,不能够实现快速部署安装和配置。l 兼容性差,对于不同的开发工具,相互之间很难兼容,具有较大的局限性。若采用不同工具,需要重新改写程序。l 开发成本较高,需要具有一定专业水准的技术人员才能完成。Web基本交互图C/S模式的交互模型l 客户端将数据传输给服务器l 服务器将数据传递给客户端Web交互的基本模型:l 浏览器将数据传输给服务器l 服务器将显示和操作代码传递给浏览器浏览器Web服务器用户访问http:/localhost/certsrv向服务器发送HTTP请求制作请求返回HTTP回应以及HTML将HTML变为显示输出给用户浏览器的作用l 数据收集l 传输协议l 解释显示语言/解释脚本l 响应用户操作Web传输协议网络堆栈物理层链路层IP层TCP层HTTP层Web应用层物理层链路层IP层TCP层HTTP层Web应用层客户端服务器UI对于Web开发主要是使用Web应用层和HTTP层的协议进行开发的,Web应用层具有多种协议:HTML:显示语言,使用统一的Marker Language解释客户端显示组件以及其摆放规则。DHTML:HTML的对象模型,主要和脚本引擎一起提供页面操作/动态页面显示等功能。CSS:界面风格描述,主要用于描述组件的特性。Javascript/VBScript:脚本引擎主要用于结合DHTML提供页面操作/动态页面显示等功能。VML:图形化建模语言。在除了物理层的以下各层,Web服务器一般都能为应用服务提供相应的接口:输入:链路层:MAC地址IP层:IP地址TCP层:TCP端口HTTP层:HTTP Headers(QueryString/Cookie /Accept-Type/Content-Type等)Web应用层:ViewState/ Form服务器端组件状态等输出:HTTP层:HTTP Headers(QueryString/Cookie/Accept-Type/Content-Type等)Web应用层:HTML/Javascript/HTC/xml/pic等HTTP协议Http协议格式l URL格式:/?,主要由几部分构成:1. protocol在这里的协议是HTTP2. domain一般的格式是:,如果没有端口号,HTTP缺省为803. virtual path虚拟路径,第一个字符是”/”,代表相对于服务器Web应用根的路径。4. queryString参数值,以:模式的多个域的组合,域和域之间以”&”分割。注意:这里的每个域的名称在QueryString中可能不是唯一的。l HTTP头主要是指:模式的多个域的组合,域和域之间以回车(rn)分割,如果出现两个回车,就证明HTTP头已经结束。注意:HTTP域在HTTP头中不是唯一的。l Form提交格式以:模式的多个域的组合,域和域之间以”&”分割。注意:这里的每个域的名称在QueryString中可能不是唯一的。l 请求(Request) HTTP/method:主要有两种,一种是POST,一种是GET。通常POST会带Content-Length的HTTP头,用来传输数据。url:访问服务器的虚拟路径,比如我们在浏览器中输入”http:/localhost/webapp/webapp1.aspx”,那么虚拟路径是指”/webapp/webapp1.aspx”。version:当前HTTP协议是1.1版本content:如果HTTP头中存在Content-Length,则在content部分就会有对应长度的(字节为单位)内容。l 回应(Response)HTTP/ version:当前HTTP协议是1.1版本statusCode:服务器传回的访问的整数状态码,一般成功的是200或者201,跳转是302,服务器内部错误是500,请求错误是400,没有页面是404statusDescription:状态描述,针对状态码的描述信息content:和请求是一样的特殊的HTTP头l Content-Length放在HTTP头后的内容长度l Content-Type放在HTTP头后的内容类型以及字符集编码,常见内容类型有POST的类型一般是application/x-www-form-urlencodedXML类型的数据使用”text/xml”HTML类型的数据使用”text/html”javascript类型的数据使用”text/javascript”l Content-Encoding编码规则,用于表明l Set-Cookie服务器传递的,专门用于设定浏览器cookie的(可以设定Cookie的名值对,有效路径,以及是否强制使用安全通道等)l Cookie浏览器传递的,将服务器设定的cookie返回给服务器例子l 用户在浏览器输入URL,访问该URLhttp:/localhost /webapp/webapp1.aspxGET /webapp/webapp1.aspx HTTP/1.1Host: locahost传输报文输入路径l 用户在浏览器中输入内容,点击”提交”按钮,提交内容POST /webapp/webapp1.aspx HTTP/1.1Content-Type: application/x-www-form-urlencodedContent-Length: 34UserName=congling&btnSubmit=submit传输报文HTML内容 UserName: 用户输入的内容内容的长度Web应用服务器传统的Web应用服务器仅仅是一个HTTP协议处理器,框架提供了基本的HTTP模型,包括QueryString/Form/HTTP头/Cookie/Session等,而ASP/JSP仅仅多了动态生成接口的方法(ASP是解释执行的)。以下我们将介绍基本对象模型Request客户端请求对象,一般最重要的属性/方法有:l QueryString获取请求的QueryString,一般的都会将名值对做成Hashtable。但是由于QueryString的域名称不是唯一的,因此Hashtable中记录的实际上是Array。在.NET当中,使用缺省的l Form获取请求中Content(使用POST)的内容,一般的都会将名值对做成Hashtable。但是由于Form的域名称不是唯一的,因此Hashtable中记录的实际上是Arrayl Params是将QueryString和Form合成一块。l Header获取请求的HTTP头,一般的都会将名值对做成Hashtable。但是由于HTTP域名称不是唯一的,因此Hashtable中记录的实际上是Arrayl Content-Type内容类型以及内容编码。l RequestStream将Content作为流来操作。Response服务器应答对象,一般最重要的属性/方式有:l Header设定响应的HTTP头l Content-Type内容类型以及内容编码。l Write将数据写在输出的Buffer中,该输出Buffer以后将直接写在HTTP相应的Content部分。在传统的Web服务器中,可以支持Web网页的HTML和服务器脚本嵌套,实际上在该服务器页面编译之后,其结果就是Response.Write方法。例子:服务器脚本服务器代码生成后的程序Response.Write(“”);Response.Write(1);Response.Write(“”);SessionSession主要作用是用于纪录会话的状态,其实质是服务端是一个记录名值对的Hashtable,其还有一个全局唯一标示的SessionID。服务器将这个Session保留在SessionTable中(SessionID和Session对的Hashtable)。在传输的时候服务器会将SessionID通过Cookie的方式传递给客户端,因此在客户端也可以看作服务器对象指针。执行过程如下:l 服务器制作Session,并将Session放在SessionTable(Hashtable)中,然后将SessionID打包到Cookie中传递给浏览器。如果服务器要记录状态,则利用这个Session对象将状态名和状态值记录起来。l 浏览器在浏览服务器的其他网页的时候将Cookie传递回服务器l 服务器如果需要找到当前会话的某个状态值,则将Cookie解开拿到SessionID,并在SessionTable中找到Session,然后在Session中通过状态名获取该状态值。一般的SessionTable添加/找到Session的步骤,是由框架做的。ApplicationApplication变量的主要目的在于纪录全局的状态,也是一个名值对的HashtableHTML/DHTML和HTTP的接口HTML/DHTML和HTTP的接口其实是单向接口说明执行方式打包方式Form/Input元素form.submit方法Form在提交的时候(执行form.submit或者点击submit类型的input按钮的时候)会把Form提交到HTTP接口中去。Form提交首先收集该Form内所有的(包括子Form)的input元素的value值(如果多个submit,则选择点击的那个),然后打包。*点击或者脚本执行按照method指定的方法,缺省是POSTA元素的href属性用户点击该超连后,页面路由到该href指定的页面当中。点击GETsrc属性/ behavior的url属性/ import的implementation属性在浏览器获得回应生成页面时候,会自动打包申请HTML语言自动执行GETdocument.location=脚本执行GETwindow方法集合opennavigateshowModalDialogshowModalessDialog脚本执行GET*form提交的伪码function form_submit()/收集所有form内部的tag为input的元素var elms = event.srcElement.form.all.tags(“input”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从生产到消费探讨如何利用区块链优化商品供应链流程
- 医疗器械设计的发展趋势与材料应用
- 医疗设备安全与质量控制
- 医疗大数据的采集、存储与隐私保护技术探讨
- 医药企业药品说明书合规经营策略
- 医疗信息化趋势下的电子健康记录标准化探索
- 医院信息化建设中的多部门协同策略
- 公交卡制作合同范例
- 供销合同范例格式
- 医疗大数据下的患者隐私保护策略研究
- 《基于SLP的丹尼斯卖场仓储布局优化设计案例报告》12000字(论文)
- 班组长的选聘、使用、淘汰制度模版(2篇)
- 量子信息技术国内外标准化进展报告(2024)-量子科技产学研创新联盟
- 2025合法的有限公司劳动合同范本
- 医院预防职务犯罪讲座
- 2025届山东省师大附中高考数学一模试卷含解析
- 房产出租授权委托书
- 音乐引导的运动节奏
- 产后腰痛的健康宣教
- 起重工的安全技术操作规程(4篇)
- 可再生能源技术发展与应用考核试卷
评论
0/150
提交评论