zoukankan      html  css  js  c++  java
  • 容器、应用服务器和web服务器的区别

    什么是容器

    servlet没main()方法。它们受控于另一个java应用,这个java应用称为容器(Container)
    Tomcat是这样的容器,Web服务器应用(Apache)得到一个指向servlet请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器。要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法。

    客户-->请求--->Web服务器应用--->web容器应用--->servlet-------->web服务器主机

    客户<--响应<---Web服务器应用<---web容器应用<---servlet<--------web服务器主机

    容器提供:

    通信支持:建立serverSocket、监听某个端口、创建流等;

    生命周期管理:控制servlet生死,负责加载类、实例化和初始化servlet、调用servlet方法及使servlet实例能够被垃圾回收;

    所线程支持:容器会自动为接收的每个servlet请求创建一个新的java线程,运行完响应HTTP服务方法线程就结束。

    生命方式实现安全:可以使用xml部署描述文件来配置(或修改)安全性,而不用硬编码写到servlet类代码中。

    JSP支持。

    容器处理servlet

    客户---->http请求---->容器----->servlet

    容器---> 创建 请求(HttpServletRequest)/响应(HttpServletResponse) 对象

    容器--->请求--->响应--->线程(容器根据URL找到正确的servlet,为这个请求创建或分配线程,并把请求和响应对象传递给这个servlet线程)

    容器----->servlet service()方法 service根据类型调用doGet()或doPost()方法。

    doGet()生成动态页面,并把这个页面“塞到”响应对象的一个引用里。

    线程结束,容器把响应对象转为HTTP响应,把它发回给客户,然后删除请求和响应对象。

    应用服务器和web服务器的区别

    首先我们应该对应用服务器和web服务器有一个清晰的概念。所谓的应用服务器,就是提供应用的服务器,这里的应用有很多,比如java应用,ruby 应用,或者 c#应用。


    那么什么是web服务器呢?就是提供了web功能的服务器,主要就是http服务,包括图片的下载,等等一系列和web相关的。


    好吧,你会问为什么我们不能直接使用应用服务器呢?应用服务器也提供了http服务,比如tomcat。
    那么我们从实际出发。当你浏览一个网页的时候,什么情况下你会觉得速度很慢?我们仅仅考虑页面本身。那当然是图片越多显示得越慢。
    好吧,我们至少认识到一点,一些静态资源,例如图片,会严重影响页面打开的速度。当然,这仅仅是一个方面。


    那么web服务器有什么用呢?web服务器一个优点就是在处理静态信息上。例如一些静态的html,图片,等等其他静态的东西

    tomcat服务器和Apache的理解

    Tomcat服务器是一个免费的开放源代码的Web应用服务器。因为Tomcat技术先进、性能稳定且免费,所以深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

    一、Tomcat与应用服务器

    到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API的支持。

    很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。

    对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题,但是这种方式是最为有效的。。

    二、Tomcat与Web服务器
    Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说, Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

    一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

    我感觉  Apache服务器   解析静态网页的专业服务器

    我们tomcat中有内置服务器来访问Apache!但速度还是不行的

  • 相关阅读:
    SQL中文转拼音
    cocos2D 虚拟摇杆Joystick功能实现
    cocos2d 粒子效果以及Particle Designer粒子工具的学习
    android 模拟器出错,emulator: ERROR: unknown virtual device name
    [转][越狱破解] 苹果itouch 4 iOS5.0.1完美越狱教程+资源下载
    objectivec 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
    [转]cocos2dx添加广告条(IOS and Android)
    cocos2d1.0.1x0.10.0版本 设置横屏与竖屏的方法
    【转】总结阐述Cocos2dX与Cocos2diphone区别;
    Objectivec 中CGGeometry几何类常用方法简单整理
  • 原文地址:https://www.cnblogs.com/111testing/p/7129215.html
Copyright © 2011-2022 走看看