Web应用开发基本原理.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web应用开发基本原理
Web应用原理
简介
Web应用是基于HTTP协议的,Web应用也被常常被称为B/S(Browser/Server,浏览器/服务器)应用,这是针对传统的C/S(Client/Server,客户端/服务器模式)模式而言的。但是Web 应用其实也是一种客户端/服务器的应用,只不过客户端使用的是统一协议的浏览器而已。
传统的C/S结构是两层结构,客户端直接和数据库连接,这种模式存在着非常大的安全隐患,目前已经逐步消亡了。但是作为3层结构(UI—BizServer—DB)的结构会长期和B/S
Web基本交互图
C/S模式的交互模型
●客户端将数据传输给服务器
●服务器将数据传递给客户端
Web交互的基本模型:
●浏览器将数据传输给服务器
●服务器将显示和操作代码传递给浏览器
浏览器的作用
●数据收集
●传输协议
●解释显示语言/解释脚本
●响应用户操作
Web传输协议网络堆栈
客户端服务器
对于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协议格式
●URL格式
主要由几部分构成:
1.protocol
在这里的协议是HTTP
2.domain
一般的格式是<服务器>:<端口号>,如果没有端口号,HTTP缺省为80
3.virtual path
虚拟路径,第一个字符是”/”,代表相对于服务器Web应用根的路径。
4.queryString
参数值,以<名>:<值>模式的多个域的组合,域和域之间以”&”分割。注意:这里的每个域的名称在QueryString中可能不是唯一的。
●HTTP头
主要是指<名>:<值>模式的多个域的组合,域和域之间以回车(\r\n)分割,如果出现两个回车,就证明HTTP头已经结束。注意:HTTP域在HTTP头中不是唯一的。
●Form提交格式
以<名>:<值>模式的多个域的组合,域和域之间以”&”分割。注意:这里的每个域的名称在QueryString中可能不是唯一的。
●请求(Request)
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部分就会有对应长度的(字节为单位)内容。
●回应(Response)
HTTP/
version:当前HTTP协议是1.1版本
statusCode:服务器传回的访问的整数状态码,一般成功的是200或者201,跳转是302,服
务器内部错误是500,请求错误是400,没有页面是404 statusDescription :状态描述,针对状态码的描述信息 content :和请求是一样的
特殊的HTTP 头
● Content-Length
放在HTTP 头后的内容长度 ● Content-Type
放在HTTP 头后的内容类型以及字符集编码,常见内容类型有 POST 的类型一般是"application/x-www-form-urlencoded" XML 类型的数据使用”text/xml ” HTML 类型的数据使用”text/html ”
javascript 类型的数据使用”text/javascript ”
● Content-Encoding
编码规则,用于表明 ● Set-Cookie
服务器传递的,专门用于设定浏览器cookie 的(可以设定Cookie 的名值对,有效路径,以及是否强制使用安全通道等) ● Cookie
浏览器传递的,将服务器设定的cookie 返回给服务器
例子
● 用户在浏览器输入URL ,访问该URL
● 用户在浏览器中输入内容,点击”提交”按钮,提交内容
传输报文
输入路径