精华内容
下载资源
问答
  • Web服务器工作原理

    千次阅读 2019-04-01 13:35:52
    1.1.2. Web服务器工作原理 HTTP协议基于TCP协议上,是一个应用层协议,用于用户代理和Web服务器进行通信。Web服务器通常采用一问一答的方式进行工作: 在用户代理上用户发起资源请求,请求内容包括但不限于:指定...

    1.1.2. Web服务器工作原理

    HTTP协议基于TCP协议上,是一个应用层协议,用于用户代理和Web服务器进行通信。Web服务器通常采用一问一答的方式进行工作:

    1. 在用户代理上用户发起资源请求,请求内容包括但不限于:指定资源的唯一标识URI,指明动作类型(GET/POST/DELETE/PUT...)
    2. 用户代理解析用户输入URI并从中获取目标域名,交由DNS服务器解析。如果URI中指定某IP地址,这无需这步。
    3. 如果与服务器的会话还没建立,此时先建立TCP连接,并完成HTTP协商(确定双方均可接受的处理方式,包括协议版本,是否加密,内容格式等等)。
    4. 用户代理把请求内容封装成HTTP数据包向服务器发送。
    5. 服务器接收到资源请求并以之前协商好的方式解包并处理。
    6. 服务器请求的资源封装成HTTP数据包并返回给用户代理。
    展开全文
  • Web服务器工作原理详解(基础篇)

    万次阅读 多人点赞 2018-08-14 17:12:00
    概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的...

    概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。

    Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器(这一点可以自行百度百科), Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
    Web服务器 约等于 HTTP服务器 + 其他服务

    目前所熟知的Web服务器有很多,其最主流的是 Apache, Nginx, IIS
    各大Web服务器的实现细节都不同,是为了某种情形而设计开发的。但是它们的基础工作原理是相同的,这也是本次基础篇所讲解的内容。

    一、Web服务器工作原理图解

    这里写图片描述
    首先我们暂时不考虑HTTP协议的各种请求方式,我们先跟着**(Web服务器工作原理总体描述01)这张图,将一次Web服务的工作流程过一遍,我们假设以浏览器作为客户端
    (1) 用户做出了一个操作,可以是填写网址敲回车,可以是点击链接,可以是点击按键等,接着浏览器获取了该事件。
    (2) 浏览器与对端服务程序建立TCP连接。
    (3) 浏览器将用户的事件
    按照HTTP协议格式**打包成一个数据包,其实质就是在待发送缓冲区中的一段有着HTTP协议格式的字节流。
    (4) 浏览器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到对端服务程序。
    (5) 服务端程序拿到该数据包后,同样以HTTP协议格式解包,然后解析客户端的意图。
    (6) 得知客户端意图后,进行分类处理,或是提供某种文件、或是处理数据。
    (7) 将结果装入缓冲区,或是HTML文件、或是一张图片等。
    (8) 按照HTTP协议格式将(7)中的数据打包
    (9) 服务器确认对端可写,并将该数据包推入Internet,该包经过网络最终递交到客户端。
    (10) 浏览器拿到包后,以HTTP协议格式解包,然后解析数据,假设是HTML文件。
    (11) 浏览器将HTML文件展示在页面
    以上为Web服务器工作基本原理。其实不难发现,这仅仅只是一个简单的网络通信。我们应该深信,作为一个服务器,其根本的工作无非有三个

    1. 接收数据 2. 发送数据 3. 数据处理
      而Web服务器的本质就是 接收数据 ⇒ HTTP解析 ⇒ 逻辑处理 ⇒ HTTP封包 ⇒ 发送数据
      高级的服务器无非就是将这三个部分更加细致的设计了。

    二、Web服务器之提供静态文件工作原理图解

    Web服务器最主要的功能是提供静态的文件。日常的上网浏览大多是网页浏览,少数时候才会有一些数据的提交操作。因此,我们结合上一张图示来重点讲解在GET请求下的Web服务器工作原理。
    这里写图片描述
    其他流程基本不变,着重在于红色与蓝色部分。
    (1) 当用户点击一个网页链接或浏览器加载一些资源(css,jpg …)时产生。
    (6) 服务程序解包后,确定其为GET请求,并且是对该服务器上的某一资源的请求。首先服务程序会去确认该路径是否存在,再确定该路径的文件是否可以获取。
    (7-1) 如果请求的路径有误,或者该资源不能被用户获取,则返回错误提示页面。很多服务器的错误页面只有404,更专业的应该是将错误分类并返回对应的错误代码页面。
    (7-2) 如果该路径合法且文件可以被获取,那么服务程序将根据该文件类型进行不同的装载过程,记录其类型作为(8)中HTTP协议中对应的返回类型,并加入响应头。

    假设以点击一个页面链接为例,浏览器首先将HTML文件请求过来,再以同样的流程对HTML文件中包含的资源文件路径进行依次请求。
    这里写图片描述

    三、Web服务器之数据提交工作原理图解

    仅仅只是网页的浏览并不能满足所有人的需求,客户端与服务器应当是有数据交互的。
    即使单方面的资源请求任然是网络的主力军。
    我们应该清楚的知道,数据提交对于用户来说有什么作用。
    (1) 资源上传 (2) 登陆验证 (3) API接口调用 (4) 远程指令等
    数据提交使得用户的操作性有了质的飞跃,它使得HTTP短连接获取静态文件的方式提升到了动态交互的层次上。该性质也催化出各式各样的编程语言、框架。例如PHP,JavaWeb。
    如果你留意目前主流的那些大型服务器,你会发现再高级再牛逼的东西实际是也是最基础的东西建造的。那么我们还可以顺便学习一下最古老的动态技术CGI
    这里写图片描述
    其他流程基本不变,着重在于红色与蓝色部分。
    (1) 用户提交数据,假设用户点击一个按键提交填好的信息。在(3)中将以POST格式写入,并填入提交至服务端的可执行程序的路径。
    (6) 服务端将参数与该CGI绑定,复制进程,用管道传递参数和接收结果
    (7) 子进程执行CGI,接收(6)父进程传来的参数,运算完成返回结果。
    最后父进程将结果装入静态模板文件,放入缓冲区

    四、动态技术

    我们得明白,Web服务器是以短连接为主,并且获取的数据到达浏览器的那一刻一定是静态的不变的。那么所谓动态实际是指两种情况

    1. 服务端产生
      (1) 用户POST提交数据到某个程序,程序根据该数据作为参数运行,得出结果并装入静态的模板页面中,返回该静态页面。但对于用户来说,同一个页面,做了一个操作后数据不一样了。好了,这就是动态页面。(CGI原理)
      (2) PHP的原理是,用户GET请求一个php后缀的文件,服务器先执行该php后缀文件中的PHP代码,将结果填入代码的位置,再返回。当然也可以提交数据参与运算再返回。
    2. 客户端产生
      (1) 用户GET请求一个JavaScript文件,服务端不做任何运算返回该静态文件。浏览器收到该JS文件,在本地执行并更新页面。
      (2) 用户POST提交数据到服务端,服务端根据该提交的数据指令返回静态文件,浏览器收到后执行并更新。
    展开全文
  • web服务器工作原理及http协议通信

    千次阅读 2011-10-10 10:18:45
    这个客户端通常指的是 Web 浏览器。... Web服务器工作原理简单的可以归纳为:客户机连接服务器,客户端向服务器发送请求,服务器向客户机发送应答,客户机与服务器断开。一个简单的事务处理事

    一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器。

        Web服务器的工作原理简单的可以归纳为:客户机连接服务器,客户端向服务器发送请求,服务器向客户机发送应答,客户机与服务器断开。一个简单的事务处理事件就是这样实现的,看起来不简单,做起来其实也是挺简单的,呵呵……需要注意的是客户机与服务器直接的通信是非连接的,也就是当服务器发送了应答后就与客户机断开连接,等待下一次请求。

      HTTP 是一种让 Web 服务器与浏览器(客户端)通过 Internet 发送与接收数据的协议。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。HTTP 运用可靠的 TCP 连接,通常用的 TCP 80 端口。

    在 HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个文件时,你可以通过点击“停止”键来中断文件的下载,关闭与服务器的 HTTP 连接。
        http协议使Web服务器和浏览器可以通过Web交换数据。它是一种请求/响应协议,即服务器等待并响应客户方请求。H T T P不维护与客户方的连接,它使用可靠的T C P连接,通常采用TCP 80端口。客户/服务器传输过程可分为四个基一步骤:
     1) 浏览器与服务器建立连接;
     2) 浏览器向服务器请求文档;
     3) 服务器响应浏览器请求;
     4) 断开连接。
    H T T P是一种无状态协议,它不维护连接的状态信息。
    1. 客户请求
    客户请求包含以下信息:
    请求方法
    请求头
    请求数据
    (1)请求方法是用于特定U R L或We b页面的程序HTTP请求方法:
    方法       描述
    GET     请求指定的文档
    HEAD    仅请求文档头
    POST    请求服务器接收指定文档作为可执行的信息
    PUT     用从客户端传送的数据取代指定文档中的内容
    DELETE  请求服务器删除指定页面
    OPTIONS 允许客户端查看服务器的性能
    TRACE   用于测试—允许客户端查看消息回收过程
    (2)头信息是可选项,它用于向服务器提供客户端的其他信息
    如果客户采用某种方法获取数据(如P O S T ),数据就放在头( h e a d e r )之后;否则客户机等待
    从服务器传来的响应。
    2. 服务器响应
    服务器响应包括以下关键部分:
    状态码
    响应头
    响应数据
    HTTP定义了多组返回给浏览器的状态码。
    响应头向客户方提供服务器和/或请求文档的信息HTTP响应头:
    方法              描述
    Server         Web服务器信息
    Date           当前日期/时间
    Last Modified  请求文档最近修改时间
    Expires        请求文档过期时间
    Content-length 数据长度(字节)
    Content-type   数据M I M E类型
    WWW-authenticate 用于通知客户方需要的认证信息(如用户名、口令等)
    如果有客户方请求的数据,数据放在响应头之后,否则服务器断开连接。
    3.通信实例:
    1. 请求
    在本例中,浏览器请求文档的U R L为h ttp://www.hostname.com/index.html。所有的请求均以空行结束。
    GET /index.html HTTP/1.1
    Accept: text/plain
    Accept: text/html
    User-Agent: Mozilla/4.5(WinNT)
                       (blank line)
    (DATA)

    浏览器使用Get方法请求文档/index.html。浏览器声明它只能接收纯文本和html数据,它使用Mozilla/4.5(Netscape)引擎。
    2. 响应
    服务响应包括状态码、一些头信息(以空行结束)及请求数据,假设数据存在,则响应信息如下:
    HTTP/1.1 200 OK
    Date Sunday, 15-Jul-05 12:18:33 GMT
    Server: Apache/1.3.6
    MIME-version: 1.0
    Content-type: test/html
    Last-modified: Thursday,02-Jun-05 20:43:56 GMT
    Content-length: 1432
            (blank line)
    <HTML>              (此行开始为数据部分,与前面头部要空一行)
    <HEAD>
    <title>Example Server-Browser Communication</title>
    </HEAD>
    <BODY>
    ......
    </BODY>
    </HTML>

    假设文档未找到,响应信息如下
    HTTP/1.1 404 NOT FOUND
    Date Sunday, 15-Jul-05 12:19:33 GMT
    Server: Apache/1.3.6

    注意:每行换行时用:/r/n,头部与数据段之间要多空已行,即用两次/r/n

    特别的,请求的一个网页包含着图片或视频等内容时,服务器第一次先发送文本消息,断开连接,客户端再次发送请求,服务器再次发送图片信息,有多少张图片(即除文本标签以为的消息)服务器就要和客户机断开/连接多少次。下面是我用Java编写的一个简单的web服务器:

    如果想要代码的话,自己下载:

    现在解释一下运行的一些问题:

    while (true) {

    System.out.println("服务器在等待中……");

                  // 让服务器循环等待客户机的连接,如果没有whlie(true)语句,当客户机与服务器

                  // 断开时,web服务器也退出了程序,无法使用

                  Socket client = server.accept();

                  // 处理客户端

                  processClient(client);

    服务器在等待中……

    (此处为空行)

    服务器在等待中……

    2.jpg

    服务器在等待中……

    3.jpg

    服务器在等待中……

    1.gif

    服务器在等待中……

    sound.mp3

    服务器在等待中……

    其中的第一个“服务器在等待中……”是在服务器创建成功后输出的,之后等待客户机连接(即执行Socket client = server.accept();这句代码时,程序处于阻塞状态),当客户机来连接时,输出空行,也就是向请求主页,当服务器向客户机发送了文本时,断开,服务器再次进入等待,此时输出第二个“服务器在等待中……”,客户机再次发送1.jpg图片文件请求,依次类推,知道将客户机请求的全部信息都发送完,这也是web服务器与浏览器(客户机)之间通信的缺点之一,也就是http没连接一次只能完成一次请求,如果html文件中有多张图片,每传送一个图片,客户机和服务器之间都要单独建立一次连接。当然一个好的web服务器不仅仅是这么简单的,但是只要我们掌握了他们通信的原理,写出一个好的web服务器不是一件难事……

    展开全文
  • Web服务器工作原理(一)

    千次阅读 2016-11-21 15:16:31
    Web服务器工作原理(一)12@(服务器)[Web服务器, Notes] VICTORY LOVES PREPARATIONWeb服务器的工作原理一12 思维导图 一web服务器应用服务器和web容器 web服务器 应用服务器 web容器 二Servlet 三ServletContext...

    @(服务器)[Web服务器, Notes]12

    VICTORY LOVES PREPARATION


    〇、思维导图


    一、web服务器、应用服务器和web容器

    web服务器

    • SUMMARY:驻留于因特网上,可以向浏览器等Web客户端提供文档的计算机的程序。
    • Mosaic浏览器(通常被认为是第一个图形化的web浏览器)和超链接内容的初期,演变出了“web服务器”的新概念,它通过HTTP协议来提供静态页面内容和图片服务。在那个时候,大多数内容都是静态的,并且HTTP 1.0只是一种传送文件的方式。但在不久后web服务器提供了CGI功能。这意味着我们可以为每个web请求启动一个进程来产生动态内容。现在,HTTP协议已经很成熟了并且web服务器变得更加复杂,拥有了像缓存、安全和session管理这些附加功能。随着技术的进一步成熟,我们从Kiva和NetDynamics学会了公司专属的基于Java的服务器端技术。这些技术最终全都融入到我们今天依然在大多数应用开发里使用的JSP中。

    应用服务器

    • SUMMARY:通过各种协议把商业逻辑曝露给客户端的计算机程序。
    • 在同一时期,应用服务器已经存在并发展很长一段时间了。一些公司为Unix开发了Tuxedo(面向事务的中间件)、TopEnd、Encina等产品,这些产品都是从类似IMS和CICS的主机应用管理和监控环境衍生而来的。大部分的这些产品都指定了“封闭的”产品专用通信协议来互连胖客户机(“fat” client)和服务器。在90年代,这些传统的应用服务器产品开始嵌入HTTP通信功能,刚开始要利用网关来实现。不久后它们之间的界线开始变得模糊了。

      同时,web服务器越来越成熟,可以处理更高的负载、更多的并发和拥有更好的特性;应用服务器开始添加越来越多的基于HTTP的通信功能。所有的这些导致了web服务器与应用服务器的界线变得更窄了。

      目前,“应用服务器”和“web服务器”之间的界线已经变得模糊不清了。但是人们还把这两个术语区分开来,作为强调使用。

      当有人说到“web服务器”时,你通常要把它认为是以HTTP为核心、web UI为向导的应用。当有人说到“应用服务器”时,你可能想到“高负载、企业级特性、事务和队列、多通道通信(HTTP和更多的协议)”。但现在提供这些需求的基本上都是同一个产品。

    web容器

    • SUMMARY:处理客户端请求的服务程序。在Java方面,web容器一般是指Servlet容器。
    • Servlet容器是与Java Servlet交互的web容器的组件。web容器负责管理Servlet的生命周期、把URL映射到特定的Servlet、确保URL请求拥有正确的访问权限和更多类似的服务。综合来看,Servlet容器就是用来运行你的Servlet和维护它的生命周期的运行环境。


    二、Servlet

    • SUMMARY: Servlet是能够根据请求动态生成内容的服务端组件。
    • Servlet是一个在javax.servlet包里定义的接口。它为Servlet的生命周期声明了三个基本方法——init()service()destroy()。每个Servlet都要实现这些方法(在SDK里定义或者用户定义)并在它们的生命周期的特定时间由服务器来调用这些方法。

      类加载器通过懒加载(lazy-loading)或者预加载(eager loading)自动地把Servlet类加载到容器里。每个请求都拥有自己的线程,而一个Servlet对象可以同时为多个线程服务。当Servlet对象不再被使用时,它就会被JVM当做垃圾回收掉。

    • 懒加载的Servlet


    • 预加载的Servlet


    三、ServletContext

    • SUMMARY: Servlet的上下文环境。
    • 当Servlet容器启动时,它会部署并加载所有的web应用。当web应用被加载时,Servlet容器会一次性为每个应用创建Servlet上下文(ServletContext)并把它保存在内存里。Servlet容器会处理web应用的web.xml文件,并且一次性创建在web.xml里定义的Servlet、Filter和Listener,同样也会把它们保存在内存里。当Servlet容器关闭时,它会卸载所有的web应用和ServletContext,所有的Servlet、Filter和Listner实例都会被销毁。

      从Java文档可知,ServletContext定义了一组方法,Servlet使用这些方法来与它的Servlet容器进行通信。例如,用来获取文件的MIME类型、转发请求或者编写日志文件。在web应用的部署文件(deployment descriptor)标明“分布式”的情况下,web应用的每一个虚拟机都拥有一个上下文实例。在这种情况下,不能把Servlet上下文当做共享全局信息的变量(因为它的信息已经不具有全局性了)。可以使用外部资源来代替,比如数据库。


    四、ServletRequest和ServletResponse

    • SUMMARY:封装请求和响应数据。
    • Servlet容器包含在web服务器中,web服务器监听来自特定端口的HTTP请求,这个端口通常是80。当客户端(使用web浏览器的用户)发送一个HTTP请求时,Servlet容器会创建新的HttpServletRequest和HttpServletResponse对象,并且把它们传递给已经创建的Filter和URL模式与请求URL匹配的Servlet实例的方法,所有的这些都使用同一个线程。

      request对象提供了获取HTTP请求的所有信息的入口,比如请求头和请求实体。response对象提供了控制和发送HTTP响应的便利方法,比如设置响应头和响应实体(通常是JSP生成的HTML内容)。当HTTP响应被提交并结束后,request和response对象都会被销毁。


    五、Session和Cookie

    • SUMMARY:存储特定用户会话所需的属性及配置信息 | 为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据。
    • 当客户端第一次访问web应用或者第一次使用request.getSession()获取HttpSession时,Servlet容器会创建Session,生成一个long类型的唯一ID(你可以使用session.getId()获取它)并把它保存在服务器的内存里。Servlet容器同样会在HTTP响应里设置一个Cookie,cookie的名是JSESSIONID并且cookie的值是session的唯一ID。

      根据HTTP cookie规范(正规的web浏览器和web服务器必须遵守的约定),在cookie的有效期间,客户端(web浏览器)之后的请求都要把这个cookie返回给服务器。Servlet容器会利用带有名为JSESSIONID的cookie检测每一个到来的HTTP请求头,并使用cookie的值从服务器内容里获取相关的HttpSession。

      HttpSession会一直存活着,除非超过一段时间没使用。你可以在web.xml里设定这个时间段,默认时间段是30分钟。因此,如果客户端已经超过30分钟没有访问web应用的话,Servlet容器就会销毁Session。之后的每一个请求,即使带有特定的cookie,都再也不会访问到同一个Session了。servletcontainer会创建一个新的Session。

      另外,在客户端的session cookie拥有一个默认的存活时间,这个时间与浏览器的运行时间相同。因此,当用户关闭浏览器后(所有的标签或者窗口),客户端的Session就会被销毁。重新打开浏览器后,与之前的Session关联的cookie就再也不会被发送出去了。再次使用request.getSession()会返回一个全新的HttpSession并且使用一个全新的session ID来设置cookie。

    • 现有的Session


    • 新的Session


    六、线程安全

    • SUMMARY:不应该使用Servlet或者Filter的实例变量来存放任何的请求或者会话范围内的数据。
    • 所有的请求都在共享Servlet和Filter,这是Java的一个很棒的特性,它是多线程的并且不同的线程(即HTTP请求)可以使用同一个实例。否则,对每一个请求都重新创建一个实体会耗费很多的资源。

      因此为了线程安全,不应该使用Servlet或者Filter的实例变量来存放任何的请求或者会话范围内的数据。这些数据会被其他Session的所有请求共享。eg:

      public class MyServlet extends HttpServlet
      {
          private Object thisIsNOTThreadSafe; //Don't to this
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
          {
              Object thisIsThreadSafe;
      
              thisIsNOTThreadSafe = request.getParameter("foo"); // BAD!! Shared among all requests!
              thisIsThreadSafe = request.getParameter("foo"); // OK, this is thread safe.
          }
      }


    ELSE

    七、声明式事务问题

    1. 引入事务spring-txdtd文件;
    2. 配置JDBC
    3. 启动事务<tx:annotation-driven />
    4. 实例

      • db.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xmlns:p="http://www.springframework.org/schema/p"
            xmlns:context="http://www.springframework.org/schema/context"
            xmlns:tx="http://www.springframework.org/schema/tx"
            xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
            default-autowire="byName">
        
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName">
                <value>${jdbc.driver}</value>
            </property>
            <property name="url">
                <value>${jdbc.url}</value>
            </property>
            <property name="username">
                <value>${jdbc.username}</value>
            </property>
            <property name="password">
                <value>${jdbc.password}</value>
            </property>
            <property name="maxActive">
                <value>1800</value>
            </property>
            <property name="maxIdle">
                <value>1800</value>
            </property>
            <property name="minIdle">
                <value>16</value>
            </property>
            <property name="validationQuery" value="SELECT 1" />
            <property name="testOnBorrow" value="true" />
        </bean>
        
        <!--Transaction Manager -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                 <property name="dataSource" ref="dataSource" />
        </bean>
        
        <tx:annotation-driven transaction-manager="transactionManager"/>
      • PersonServiceImpl

        @Transactional
        public class PersonServiceImpl implements PersonService {
        
              /* business logic is omitted... */
        
        }

    注意
    - @Transactional注解可以标注类和方法;
    - 一般情况下,运行期例外(unchecked例外,也就是说该异常系统不会捕获)RuntimeException事务会回滚的,否则(checked例外,该异常系统会捕获)事务不会回滚,当然可以通过属性指定所有异常都要回滚(rollbackFor)或者某些异常不需要回滚(noRollbackFor);
    - Spring事务只在其定义的WebApplicationContext3中起作用,Spring Web MVC中典型的上下文层级关系如下:
    - 典型配置



    - Servlet WebApplicationContext对应org.springframework.web.servlet.DispatcherServlet加载内容
    - Root WebAplicationContext对应org.springframework.web.context.ContextLoaderListener加载内容


    - 单上下文配置



    - 设置org.springframework.web.servlet.DispatcherServlet的初始参数contextConfigLocation为空即可


    1. 2016年10月23日 21:22
      2016年06月02日 09:42
      2016年05月15日 15:40
    2. HowToDoInJava
    3. Spring WebApplicationContext
    展开全文
  • web应用服务器工作原理

    千次阅读 2010-10-28 11:30:00
    web服务器的作用和原理: 需要传递的硬盘上的文件的格式是html格式的标记性语言的文件,web服务器软件在接收到浏览器的访问请求时,将直接不加任何修改地将这个html文件传递到远程浏览器,传输协议是TCP的HTTP协
  • Web服务器工作原理

    千次阅读 2015-12-01 11:23:40
    了解WEB服务器工作原理和相关概念是后台开发人员的必修课,这篇文章来自 : Web服务器工作原理很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http...
  • web服务器运行原理

    千次阅读 2019-03-04 09:45:41
    这几天的工作,就是把程序解耦,将功能分离,服务器只用来提供WEB服务,WEB应用用来实现数据处理。 大家可以了解一下开发中比较常用的WEB框架,比如 Apache ,Nigix,Tomcat等。 没有一个服务器框架安装完成后,就...
  • Web服务器工作原理及其相关协议

    千次阅读 2016-04-21 16:52:30
    通俗的说,Web服务器是可以向发出请求的浏览器提供文档的程序。 1、服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。 2 、最常用的Web服务器是Apache和...
  • web工作原理

    千次阅读 2017-03-02 16:41:43
    Web服务器工作原理概述 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如ServletContext...
  • Web服务器工作原理 Web服务器工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。下面对这4个步骤作一简单的介绍。连接过程就是Web服务器和其浏览器之间所建立起来的一种...
  • php在web服务器中的工作原理

    千次阅读 2017-11-05 14:04:03
    1.web工作原理  我是学习PHP网站建设的,那么网站在客户端和服务端的运行是网站运行的根本所在,那个这个运行过程是怎样的呢?我们一探就将!  Web:终端  服务器web:我们把提供(响应)服务的计算机称作服务器...
  • web服务器基本原理及Tomcat配置

    千次阅读 2017-03-16 21:32:57
    一、Web服务器基本知识 转自:http://www.cnblogs.com/fnng/archive/2012/11/08/2761713.html  在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。  Web系统由客户端(浏览器)和...
  • 引言 Web 服务器与 WebSphere Application Server ( 简称为 WAS) 配合进行请求分发是一种很常见的拓扑结构。而 IBM WebSphere Application Server 的 Web 服务器插件实际上...了解 Web 服务器插件的工作原理不但可以帮
  • web服务器apache架构与原理

    千次阅读 2017-10-12 09:33:46
    web服务器apache架构与原理
  • 嵌入式Web服务器软件构成与工作原理(一)   嵌入式Web 服务器的工作原理 1、服务器软件(BOA)始终在HTTP 端口守候客户端的连接请求,当客户端向服务器发起一个连接请求后,客户端和服务器之间经过“三步握手”...
  • 什么是Web?及web服务器原理

    千次阅读 2016-12-10 23:53:06
    什么是WebWeb就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。你可以从中获取更多的信息。可以转到别的主题上。...
  • 如果想学好web服务器,那么了解web服务工作原理和优化是必须的。因为会安装网页只是初级,到最后随着流量的增加,网络的升级如何规划自己的服务器集群才是关键。 我们以apache服务器httpd为例,它是基于tcp协议在...
  • 一个Web服务器也被称为HTTP服务器,它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器。一个基于Java的Web服务器用到二个重要的类,java.net.Socket与java.net.ServerSocket,并通过HTTP消息通信。因此,...
  • Java Web工作原理

    千次阅读 2018-06-02 15:44:25
    在本章我们将学到如下的内容》HTTP协议原理服务器Web编程原理》Servlet与Web容器》Java Web应用程序的组成》Tomcat介绍 一:1.1解析HTTP协议HTTP:超文本传输协议(HyperText Transfer Protocol)HTTP是一种无...
  • 服务器工作原理

    千次阅读 2016-05-31 23:21:42
    (2)单机程序工作原理 单机,即不连接到其他计算机的计算机,不在网络中。例如:两单机A、B,只...(3)客户机/服务器程序工作原理 将单机连成网络,如将A与B连成网络,则可以使它们之间提供服务,如A向B提供服
  • Web基本工作原理

    千次阅读 2019-03-02 11:01:15
    (1)Web的基本工作原理、HTTP协议和URL说明 https://www.cnblogs.com/fwnboke/p/9114381.html
  • web工作原理

    千次阅读 2020-05-29 17:29:55
    1、用户打开客户端,启动浏览器程序,并在浏览器中制定一个URL(统一资源定位器),浏览器便向该URL所指向的Web服务器发出的请求。 2、Web服务器接到浏览器的请求后,把URL转换成页面所在服务器上的文件路径名。 3...
  • HTTP服务器工作原理

    千次阅读 2017-05-04 21:19:16
    HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求...
  • Web缓存工作原理

    千次阅读 2016-05-24 23:46:46
    但除了一些微妙的细节之外,Web缓存的基本工作原理大多很简单。对一条HTTP GET报文的基本缓存处理过程包括7个步骤: 接收——缓存从网络中读取抵达的请求报文 解析——缓存对报文进行解析,提取URL和各种首部 查询...
  • 转载来源 :http://www.shazidoubing.com/fwq/webserv/385.html... 对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的 域名对...
  • 高性能Web服务器 Nginx

    千次阅读 2016-07-09 10:46:55
    web服务器软件,web服务器是什么,web服务器架设,web服务器工作原理,web服务器的建立,应用服务器web服务器,linux web服务器,web服务器配置,嵌入式web服务器 软件过滤:  所有编程语言  Java 

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 355,045
精华内容 142,018
关键字:

web服务器工作原理