`
jianghe_03
  • 浏览: 107333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Web 应用程序概述

    博客分类:
  • JSP
阅读更多
2.2 HTTP协议
2.2.1概述
协议:计算机所之间相互通信的规则
HTTP协议:用于从WWW服务器传输超文本到本地浏览器的传送协议。
HTTP协议的版本:
HTTP1.0/1.1:图示

说明:
蓝色标识建立、断开连接
桔色标识请求响应
2.2.2 HTTP  URL
格式:


说明:
1)    http:标识要通过HTTP协议来定位网络资源
2)    host:合法的Internet主机域名或IP地址
3)    port:指定一个端口号,拥有被请求资源的服务器主机监听该端口的TCP连接,默认80
4)    abs_path:指定请求资源的URI

2.2.3 HTTP请求
请求包含三部分内容:请求行,消息包头和请求正文
2.2.3.1请求行

说明:
1)    Method:标识请求的方法
A.    GET:
   获取由Request-RUI所标识的资源信息
常见的用get方法获取资源的方式:
1)    通过地址栏输入网址访问网页
2)    点击超级链接
B.    POST
用于向目标服务器发出请求,要求服务器接受附加在请求后面的数据。
常见的POST方法:
2)    Request-URI 请求的统一资源标识符;要请求的资源
3)    HTTP-Version 请求的HTTP协议版本
4)    CRLF:回车换行
2.2.3.2 消息报头
消息报头分为普通报头、请求报头、响应报头、和实体报头。每个报头域都是由名字+”:”+空格+值组成,小子报头域的名字是大小写无关的。
1) 普通报头:
  在普通报头中,有少数报头域应用于所有的请求和响应消息,但并不用于被传输的实体,这些报头域只用于传输的消息。
常用的普通报头域:Cache-Control,Date,Connection,Pragma.
2) 请求报头:
  请求报头允许客户端向服务器端传递该请求的附加信息以及客户端自身的信息。
常用的请求报头域:
  Accept
     Accept请求报头域用语指定客户端接受哪些类型的信息。例如:Accept: image/gif,表明客户端希望接受GIF图象格式的资源;Accept: text/html,表明客户端希望接受html文本。
  Accept-Charset
     Accept-Charset请求报头域用于指定客户端接受的字符集。例如:Accept-Charset: ios-8859-1,gb2312。如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。
  Accept-Encoding
     Accept-Encoding请求报头域类似Accept,但是它是用于指定可接受的内容编码。例如:Accept-Encoding: gzip,deflate。如果请求消息中没有设置这个域,服务器假定客户端对各种内容编码都可接受。
  Accept-Language
     Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。例如:Accept-Language: zh-cn。如果请求消息中没有设置这个域,服务器假定客户端对各种语言都可接受。
  Authorization
     Authorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要服务器对其进行验证。
  Host
     Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常是从HTTP URL中提取出来的。
例如:http://www.sunxin.org/index.html。浏览器发送的请求消息中,就会包含Host请求报头域,如下:Host: www.sunxin.org
后面没有跟端口号,表明使用的是缺省端口号80,如果端口号不是80,那么就要在主机名后面加上一个冒号(":"),然后接上端口号,例如:
Host: www.sunxin.org:8080。  要注意的是,在发送HTTP请求的时候,这个报头域是必须的。
  User-Agent
     User-Agent允许客户端将它的操作系统浏览器和其他属性告诉服务器。我们上网登陆论坛的时候,往往看到些欢迎信息,其中列出了你的操作系统的名称 和版本等等信息。原因是:服务器从User-Agent请求报头域中获取的这些信息,自己编写浏览器可以不用这个请求报头域。服务器就无法得知了。
2) 响应报头
  响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。
常用的响应报头域:
  Location
     Location响应报头域用于重定向接受者到一个新的位置。例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,服务 器端可以发回Location响应报头后使用重定向语句,让客户端去访问新的域名所对应的服务器上的资源。当我们在JSP中使用重定向语句的时候,服务器 端向客户端发回的响应报头中,就会有Location响应报头域。下面是Location响应报头域的一个例子:Location: http://www.sunxin.org
  Server
     Server响应报头域包含了服务器用来处理请求的软件信息。它和User-Agent请求报头域是相对应的,前者发送服务器端软件的信息,后者发送客户 端软件(浏览器)和操作系统的信息。下面是Server响应报头域的一个例子:Server: Apache-Coyote/1.1
  WWW-Authenticate
     WWW-Authenticate响应报头域必须被包含在401(未授权的)响应消息中,这个报头域和前面讲到的Authorization请求报头域是 相关的,当客户端收到401响应消息,就要决定是否请求服务器对其进行验证。如果要求服务器对其进行验证,就可以发送一个包含了 Authorization报头域的请求,下面是WWW-Authenticate响应报头域的一个例子:WWW-Authenticate: Basic realm="Basic Auth Test!"
从这个响应报头域,可以知道服务器端对我们所请求的资源采用的是基本验证机制。

3) 实体报头
  请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,大多数情况下,实体正文就是请求消息中的请求正文或者响应消息中的响应正 文。但是在发送时,并不是说实体报头域和实体正文要在一起发送,例如:有些响应可以只包含实体报头域。实体就好象我们写的书信,在信中,我们可以写上标 题,加上页号等,这部分就相当于是实体报头域,而我们所写的书信的内容,就相当于实体正文。前面说讲的普通报头、请求报头、响应报头我们可以看成是写在信 封上的邮编、接收者,发送者等内容。
实体报头定义了关于实体正文(例如:有无实体正文)和请求所标识的资源的元信息。
所谓元信息,是指描述其他信息的信息。
常用的实体报头域:
  Content-Encoding
      Content-Encoding实体报头域被使用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容编码,因而要获得Content- Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Encoding主要用语记录文档的压缩方法,下面是它的一个例子: Content-Encoding: gzip。如果一个实体正文采用了编码方式存储,在使用之前就必须进行解码。
  Content-Language
      Content-Language实体报头域描述了资源所用的自然语言。Content-Language允许用户遵照自身的首选语言来识别和区分实体。 如果这个实体内容仅仅打算提供给丹麦的阅读者,那么可以按照如下的方式设置这个实体报头域:Content-Language: da。
如果没有指定Content-Language报头域,那么实体内容将提供给所以语言的阅读者。
  Content-Length
      Content-Length实体报头域用于指明正文的长度,以字节方式存储的十进制数字来表示,也就是一个数字字符占一个字节,用其对应的ASCII码存储传输。
      要注意的是:这个长度仅仅是表示实体正文的长度,没有包括实体报头的长度。
  Content-Type
      Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。例如:
   Content-Type: text/html;charset=ISO-8859-1
   Content-Type: text/html;charset=GB2312
  Last-Modified
      Last-Modified实体报头域用于指示资源最后的修改日期及时间。
  Expires
      Expires实体报头域给出响应过期的日期和时间。通常,代理服务器或浏览器会缓存一些页面。当用户再次访问这些页面时,直接从缓存中加载并显示给用 户,这样缩短了响应的时间,减少服务器的负载。为了让代理服务器或浏览器在一段时间后更新页面,我们可以使用Expires实体报头域指定页面过期的时 间。当用户又一次访问页面时,如果Expires报头域给出的日期和时间比Date普通报头域给出的日期和时间要早(或相同),那么代理服务器或浏览器就 不会再使用缓存的页面而是从服务器上请求更新的页面。不过要注意,即使页面过期了,也并不意味着服务器上的原始资源在此时间之前或之后发生了改变。
      Expires实体报头域使用的日期和时间必须是RFC 1123中的日期格式,例如:
   Expires: Thu, 15 Sep 2005 16:00:00 GMT
      HTTP1.1的客户端和缓存必须将其他非法的日期格式(也包括0)看作已过期。例如,为了让浏览器不要缓存页面,我们也可以利用Expires实体报头 域,设置它的值为0,如下(JSP):response.setDateHeader("Expires",0);
2.2.3.3 请求正文

2.2.4 HTTP响应
HTTP响应:也有三部分组成:状态行、消息报头和响应正文
2.2.4.1状态行
格式:

HTTP-Version:协议版本
Status-Code:表示服务器响应发回的响应代码
Reason-Phrase:表示状态代码的文本描述

状态代码由3为数字组成:表示请求是否被理解或被满足。
1xx:  指示信息——表示请求已接受,继续处理
2xx:成功——表示请求已经被成功接收,理解、接受
3xx:重定向——要完成请求必须进行更进一步的操作。
4xx:客户端错误——请求有语法错误或请求无法实现
5xx:服务器端错误——服务器未能实现合法的请求
2.2.4.2消息报头:
2.2.4.3响应正文:比方说返回的一个页面。
2.3应用程序体系结构
三层:表示层、应用层/业务逻辑层和数据存取层

2.3.1一层体系结构(所有组件包装在一个组件单元中)
    特点:
*    运行于单台计算机
*    高性能
*    编码简单
缺点:
*    三合一,导致系统维护困难
*    数据无法共享

然而:返璞归真也是有可能的!
2.3.2二层体系结构
特点:
*    数据存取的逻辑的代码与业务逻辑和表示逻辑分开,任何数据存取的交互都将通过业务层来完成。
*    实现了数据共享
2.3.3三层体系结构
“三层结构”是什么?
  “三层结构”一词中的“三层”是指:“表现层”、“中间业务层”、“数据访问层”。其中:
    表 现 层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
    中间业务层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。中间业务层也可以包括一些对“商业逻辑”描述代码在里面。
    数据访问层:仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。



  对依赖方向的研究将是本文的重点,数值返回方向基本上是没有变化的。





2.4 Web应用程序
2.4.1 体系结构


注意:
WEB-INF目录下的内容对于Servlet代码是可见的,在Servlet代码中可以通过ServletContext对象中的方法getResource和getResourceAsStream()来访问。也可以通过RequestDispatcher调用。
2.4.2开发过程
    设计目录结构
    编写 Web 应用程序代码
    编写部署描述符
    编译代码
    将 Web 应用程序打包
    部署 Web 应用程序
    执行 Web 应用程序
2.4.3 在Jbuilder 2005中配置Tomcat
1.Servlet容器(也叫做Servlet引擎)是Web服务器或应用程序服务器的一部分,用于在发送请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。Servlet容器在Servlet的生命周期内包容和管理Servlet。
2.Tomcat介绍
它是Apache软件基金会(Apache Software Foundation)的Jakarta项目的一个核心项目



3 容器功能:
通信支持:
利用容器提供的方法,你能轻松地让Servlet与Web服务器对话。你不用自己建立ServletSocket监听某个端口,创建流等等。容器知道自己与web服务器之间的协议。
生命周期管理:
多线程支持
声明方式实现安全
Jsp支持
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    电子商务网站建设与维护Web应用程序概述.pptx

    【电子商务网站建设与维护Web应用程序概述】 在电子商务领域,构建一个高效、互动的网站至关重要,而Web应用程序正是实现这一目标的关键工具。本章深入探讨了Web应用程序的基础知识,涵盖其概念、工作方式以及...

    电子商务网站建设课件第9章 Web应用程序概述本章主要介绍

    【电子商务网站建设课件第9章 Web应用程序概述】本章主要探讨了Web应用程序的基本概念和工作原理,以及在电子商务中的重要性。Web应用程序是构建交互式、动态网站的关键,能够实现与用户的互动,与其他页面和服务器...

    电子商务网站建设与维护(PPT 32)Web应用程序概述.pptx

    Web应用程序是电子商务网站的核心组成部分,它们为用户提供交互式的体验,能够处理复杂的业务逻辑和数据操作。本章主要探讨Web应用程序的基本概念,特别是针对电子商务场景下的应用。Web应用程序区别于静态网站,...

    第1章 认识Web应用程序.ppt

    【Web应用程序概述】 Web应用程序是一种基于互联网的交互式应用程序,用户通过浏览器进行访问。它将数据处理和逻辑运算集中在服务器端(服务端),而客户端仅负责显示和用户交互。这种架构被称为客户端/服务端(B/S...

    《C#完全自学手册电子图书》\第11章 Web应用程序的开发

    #### 11.1 Web应用程序概述 - **定义**: Web应用程序是指在浏览器/服务器(B/S)模式下运行的应用程序,用户可以通过浏览器访问驻留在Web服务器上的多个页面。从用户角度来看,Web应用程序主要由一系列相互链接的HTML...

    web应用程序部署指南windows版.pdf

    ### Web应用程序部署指南知识点 ...以上内容概括了《Web应用程序部署指南Windows版》的主要知识点,涵盖了从文档简介、部署概述、工具使用到具体操作指南等多个方面,旨在帮助技术人员顺利完成Web应用程序的部署工作。

    Sun Java Studio 的 Web 应用程序框架 概述.pdf

    #### 一、Web 应用程序框架概述 **1.1 构建 Web 应用程序的挑战** 随着互联网的快速发展,构建高效、可扩展的 Web 应用程序成为了 IT 行业的一个重要议题。在 J2EE(Java 2 Platform, Enterprise Edition)出现...

    C# web应用程序入门经典.

    C# Web应用程序是基于.NET框架开发的Web应用,它利用ASP.NET技术来构建动态网站、Web服务和富交互式Web应用程序。本教程将带你走进C# Web开发的世界,通过深入理解C#语言基础和ASP.NET核心概念,你将能够创建功能...

    完整版Java JSP web开发教程 01_web概述(共18页).ppt

    1. **Web应用程序概述**:Web应用程序是一种运行在Web服务器上的软件,提供给用户通过互联网进行交互。与桌面应用程序相比,Web应用程序更便于访问和维护,部署成本更低。它通常采用三层架构,包括表示层(客户端)...

    Web 应用程序框架组件参考指南

    根据给定的文件信息,我们可以深入探讨Web应用程序框架组件及其在构建现代Web应用中的关键作用。这份《Web应用程序框架组件参考指南》不仅是一份技术文档,更是开发人员理解和掌握Web应用构建基石的重要资料。 ### ...

    WEB应用程序

    根据桂林航天工业学院的实习(实训)总结报告提供的信息,我们可以从中提炼出关于“Web应用程序设计”的关键知识点,包括但不限于实训目的、项目概述、开发环境和技术栈等方面。 ### Web应用程序设计实训 #### 实...

    用ADO.NET和XML Web服务构建Web应用程序(PDF)

    系统介绍了用XML Web服务构建Web应用程序的知识。首先概述了有关Web服务的基础知识,然后借助一个具体的业务模型,详细介绍了为项目建模、创建与部署Web服务、以及保护Web服务安全和性能优化等高级技术;由于书中的...

    TP1【Web 应用程序 – 概述】.ppt

    TP1【Web 应用程序 – 概述】.ppt

    HTML5开发Android应用程序概述

    ### HTML5开发Android应用程序概述 在移动互联网领域,HTML5作为一种跨平台的开发技术,正逐渐成为Android应用程序开发的新趋势。HTML5不仅提供了丰富的API集合,还具备良好的跨平台兼容性,使得开发者能够使用标准...

    Web应用程序客户端恶意代码技术研究与进展.pdf

    1. Web应用程序安全威胁概述 Web应用程序的安全威胁主要来自客户端、服务器端和通信过程。客户端的安全威胁主要来自JavaScript、VBScript等客户端脚本开发技术的缺陷被恶意代码利用。服务器端的安全威胁主要来自SQL...

    J2EEWeb应用程序的分析与设计

    标题和描述概述的知识点主要集中在J2EE Web应用程序的分析与设计上,涉及到了Web应用程序的架构、技术栈的选择、框架应用(包括Struts、Spring、Hibernate、Acegi、Ajax等),以及如何通过这些框架和技术增强应用...

    C#Web应用程序入门经典电子书1

    《C# Web应用程序入门经典电子书1》是一本专为初学者设计的教程,旨在帮助读者快速掌握使用C#语言开发Web应用程序的基本技能。这本书详细介绍了C#与Web开发的相关概念和技术,是学习C# Web编程的理想起点。 一、C#...

Global site tag (gtag.js) - Google Analytics