问题描述:

          Web应用工作原理

 

问题解决:

         参考资料:http://blog.csdn.net/lcore/article/details/8964642

 

前言

                  什么是web应用程序?web应用程序又是如何进行工作的呢?什么是动态网页技术?又有

             哪些动态网页技术呢?这次这篇文章需要探求总结的。

Web应用

                  我们知道应用程序有两种模式,C/S模式和B/S模式。C/S模式是客户端/服务器模式,这类

            应用程序一般独立的运行。B/S模式是浏览器/服务器模型,需要借助浏览器来运行。

                  web应用程序一般就是B/S模式的,所谓的web应用程序就是基于HTTP等协议,通过web访问

            应用程序。

                   通过对两者的对比简单的谈谈B/S的优缺点:

                    B/S优势:

                            1、开发成本低

                            2、管理和维护相对简单

                            3、产品升级便利(不需要客户端的维护)

                            4、用户使用方便,容易上手。

                            5、出现故障的概率较C/S小

                    B/S不足:

                            1、通过web进行访问安全性不足

                            2、客户端不能随心变化

                            3、浏览器产品过多,网页开发的时候兼容性问题较为严重。

Web应用工作原理

                         了解了Web应用程序的相关概念之后我们来看看web应用程序的工作原理

                        通过上图可以服务器通过HTTP协议获取客户端请求信息,并向客户端返回处理之后

                的响应。

HTTP协议通信原理

                        HTTP协议是位于OSI七层网络模型中的最上层。它是一种为操作兄和应用程序提供

                 访问网络接口的通信协议。

                        在web应用中,浏览器端发送请求数据包,服务器端返回响应数据包来实现web应用

                 程序的工作。当服务器向客户端返回响应后,整个连接就会关闭,是一种无状态的连接。

动态网页技术

                           在上述web应用工作的原理中,我们通过HTTP协议访问一个在服务端存在的文件,服务

                    器可以找到该文件并将其内容封装到HTTP请求体重,以消息体的形式返回给客户端。不过

                    这种方式无法和后台数据库进行交互,我们只能访问静态的页面。

                            为了解决这种办法,动态网页技术也就诞生了。其解决的办法就是为web服务器配置

                    一个辅助的应用程序服务器,完成用户请求的动态生成。

                            最早期的动态网页技术就是CGI(common gateway interface)

                     CGI可以使用不同的程序语言来生成动态的文件,但是CGI程序会为每一个请求开启一个进程

                    对于服务器的消耗比较的打。

                           解决这一问题可以使用多线程的方式,为每一个请求开启一个线程,减少了服务器端的资源

                    消耗。Java方面解决这个问题就产生了Servlet技术。

Servlet(web容器管理)

                          servlet是与平台无关的服务器端组件,他是运行在web容器中例如Tomcat,servlet和客户端的

                     通信采用的是“请求/响应”模式,Servlet组件主要负责请求和响应,例如用户登录:接受浏览器发送

                     的登录信息,数据库后台的验证。之后以响应的形式返回处理的结果。

                          Servlet容器,这里以Tomcat为例,Tomcat处理servlet和客户端的通信,调用serlvet的方法。

                     之后Tomcat容器和web服务器之间进行数据交互,由web服务器将结果返回给客户端。

Servlet规范和Servlet容器

                       servlet容器负责管理和运行servlet,从起初的设计上可以知道他是支持多线程的。

                   负责管理servlet的生命周期。并且可以和web服务器进行通信。使用servlet容器能够

                   提供一个较好的安全性,隐私数据的访问可以得到限制。有了servlet容器的支持后,coder

                   能够将更多的精力放在对业务逻辑的处理上。

                       需要说明的是现阶段有着各式的servlet容器,这就产生了一个规范性的问题,只有对servlet

                  容易有一个规范,web系统才能在不同的web容器上运行。

                      常用的servlet容器有Tomcat、JBoss、webLogic等,后续的学习中选用Tomcat。

Servlet容器在网络中的位置

                       以Tomcat为例,Tomcat为每个对servlet的请求都开启一个线程,tomcat同时负责管理

                   servlet的生命周期和他的运行。

                       在处理一个请求的时候,tomcat负责将请求以对象的形式(Request)传递给servlet,当servlet

                  处理请求后(Servlet运行结束),由tomcat刷新响应对象(Response),并将该对象返回给web

                  服务器,由web服务器返回给客户端。

简单Java Web应用程序的组成

                         说了那么多那么一个简单的java web应用程序有哪些组成部分呢?(简单应用程序)

                         我们在Eclipse下简单的建立一个web功能来看看吧。

  /WEB-INF目录:Web应用应用部署目录,浏览客户是看不到该目录下的文件的,该目录

                                            下的文件专供Web服务器专用。
web.xml:部署描述文件,/WEB-INF目录下最重要的文件,它描述了程序的部署、配置信息,

                                     为Web服务器所使用。
/classes:Web应用的类文件存放处,如Web应用中的Servlet类文件、一些实用java类如

                                    javaBeans的类文件等。该文件夹是在build目录下的,发布之后可以看见。
/lib:部署java类库文件存放处,Web应用使用的一些其他库文件存放处。
*.jsp:JSP文件,通常存放在Web应用程序的根目录上,有时为便于管理也可以存放在根目录

                               下的其他目录下,如根目录下的jsp目录中。
*.html:HTML文件,通常存放在Web应用程序的根目录上,有时为了便于管理也可以存放在

                                 根目录下的其他目录下。
/src:源代码目录。

【转载】Web应用工作原理的更多相关文章

  1. [转载] Web Service工作原理及实例

    一.Web Service基本概念   Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  2. web服务器工作原理

    Web服务器工作原理概述 转载自http://www.importnew.com/15020.html 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它 ...

  3. Java Web程序工作原理

    Web开发的最重要的基本功能是HTTP:Java Web开发的最重要的基本功是Servlet Specification.HTTP和Servlet Specitication对于Web Server和 ...

  4. Web程序工作原理

    1.Web程序工作原理 (1)Web一词的含义 Network:[计算机]电脑网络,网 Web:[计算机]万维网(World Wide Web),互联网(Internet) Web程序,顾名思义,即工 ...

  5. Web网站工作原理解析

    Web的工作原理   Web采用的是客户机--服务器架构(Client--Server model),如下图所示,其中客户端(Client)可以通过网络连接访问另一台计算机的资源或服务,而提供资源或服 ...

  6. Web的工作原理(二)

    1.工作过程:如下图所示描述了Web的工作原理. (1) 用户打开计算机(客户机),启动浏览器程序,并在浏览器中指定一个URL(Uniform Resource Locator,统一资源定位器),浏览 ...

  7. 【转】web服务器工作原理

    一.静态网页的工作原理如下:A.用户在浏览器的地址栏输入要访问的地址并回车,触发这个浏览请求. B.浏览器将请求发送到Web服务器.C.Web服务器接受这个请求,并根据请求文件的后缀名判定是否为HTM ...

  8. [转载] HashMap的工作原理-hashcode和equals的区别

    目录 前言 为什么需要使用Hashcode,可以从Java集合的常用需求来描述: 更深入的介绍 先来些简单的问题 HashMap的0.75负载因子 总结 我在网上看到的这篇文章,介绍的很不错,但是我看 ...

  9. Web Service工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

随机推荐

  1. C#虚方法和覆写方法

  2. 开始安装 ASP.NET (4.0.30319.18408)。 出现了错误: 0x8007b799 必须具有此计算机的管理员权限才能运行此工具

    在Visual Studio命令提示符安装ASP.NET .出现了错误: 0x8007b799 必须具有此计算机的管理员权限才能运行此工具:如下图: 解决方案如下: 1.打开“C:\Windows\S ...

  3. 别不拿里程碑当石头---------IT项目管理之项目计划(转)

    如果说做项目不需要计划,恐怕没人会认同.是否每个项目计划都起到了作用呢?却不尽然.知道要做计划,但不知道为什么做计划,如何做计划的还是大有人在.所以很多计划沦为依样画葫芦,成了摆设. IT项目计划的用 ...

  4. asp.net过滤HTML标签的几个函数

    以下是引用片段: ----- /**/ /// <summary> /// 去除HTML标记 /// </summary> /// <param name="N ...

  5. PHP截取字符串 兼容utf-8 gb2312

    <?php function subString($string,$length,$append = false) { if(strlen($string) <= $length ) { ...

  6. DevExpress GridControl 使用方法技巧 总结 收录整理

    一.如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 二.如何新增一条记录 ().gridView.AddNe ...

  7. 光迁PING值延迟计算!以及到中国最快的美国机房是哪个机房?

    美国圣安娜KT机房/美国KT机房/美国KT服务器 KT机房是美国直达大陆最快的机房,ping值一般为195MS,是做web服务器的首选机房,深受中小站长的欢迎! 我们平时测试美国服务器的速度,都是通过 ...

  8. 第十八章 数据访问(In .net4.5) 之 I/O操作

    1. 概述 本章内容包括 文件操作.流操作.读写网络数据 以及 异步I/O操作. 2. 主要内容 2.1 文件操作 ① 使用 Drive 和 DriveInfo 访问磁盘信息. DriveInfo[] ...

  9. 第六章 管理类型(In .net4.5) 之 创建类型

    1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使 ...

  10. SQL Server基础

    一.常用命令 1.使用命令行开启SQL Server服务 获取管理员权限的命令行工具: net start mssqlserver 开启sql server服务 net restart mssqlse ...