Web容器_Web服务器及常见的Web容器有哪些?
⼀、引⾔
⾸先来理解⼀下简单的⼀个请求发送到响应的过程。
⾸先,客户端,通常是浏览器或者⼀些应⽤发送请求到你的服务器地址,⽐如访问你的Url或者其他的东西。⽽我们的服务器通常要分为两个部分,⼀部分是服务器硬件,有了硬件之后还有有硬件上对应运⾏的软件。即服务器软件其次,服务器的硬件部分接收到了这⼀段请求,将其递交给对应的进程,服务器软件。此时这个服务器软件即为Web服务器,⽐如说Apache。再然后,这些Web服务器服务器本⾝不⼀定提供动态页⾯的访问能⼒,所以对jsp或者⼀些其他的访问需要其他的东西来辅助实现,这个东西类似于插件(客观来讲Tomcat不是Apache 的⼀个插件,在这⾥暂且理解为插件)。在本例中,这个插件就是Tomcat。Tomcat是⼀个运⾏环境,或者叫容器。Tomcat负责实例化jsp并且处理请求(通俗的讲就是“运⾏”jsp,搞到对应的响应信息),并且返回⼀个响应到apache,apache再调度硬件资源,则继续将响应返回到客户端。⾄此,⼀个响应完成。
⼆、定义
服务器
硬件⾓度上说就是⼀台⾼性能的Computer。我们通常指的服务器其实应该是装有能够处理具体请求事务的服务器软件的Computer。⽐如最常见的www服务器、mail服务器、计费服务器、ftp服务器等等。很多时候⼈们常把诸如Tomcat、IIS、Weblogic 也称之为web服务器,其实这些只是⽤于开发、集成、部署和管理Web应⽤、⽹络应⽤和数据库应⽤的应⽤服务器软件。
Web服务器
web服务器可以处理Http协议,当web服务器接受到⼀个Http请求,会返回⼀个Http响应,例如送回⼀个html页⾯。
in process ofweb服务器可以响应针对静态页⾯或者图⽚的请求,进⾏页⾯跳转(redirect),或者把动态响应(dynamic response)的产⽣委托(delegate)给⼀些其它的程序,例如 CGI 脚本,jsP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器
端 JavaScript,或者⼀些其它的服务器端技术。
web服务器仅仅提供⼀个可以执⾏服务器端程序和返回(程序产⽣)响应的环境,⽽不会超出职能范围
web服务器主要是处理需要向浏览器发送html的请求以供浏览
Web服务器也可以叫做应⽤服务器。它的功能⽐web容器要强⼤的多,因为它可以部署EJB应⽤,可以实现容器管理的事务,⼀般的应⽤服务器有weblogic和websphere等,它们都是商业服务器,功能强⼤但都是收费的。
jsp中文全称Web应⽤程序需要部署到Web容器或者Web服务器中才能运⾏,两者都必须符合J2EE规范。
Web容器
web容器就是⼀种服务程序,在服务器中⼀个端⼝就对应⼀个提供相应服务的程序(⽐如Apache默认的端⼝为80),给处于其中的应⽤程序组件提供环境,使其直接跟容器中的环境变量交互,不必关注其它系统问题。⽽这个程序就是处理服务器从客户端收到的请求,如Java中的Tomcat容器,ASP的IIS都是这样的容器。这些容器兼容了Web服务器软件的⼀些功能。⼀个服务器可以有多个容器。
如果web服务器应⽤得到⼀个指向servlet的请求(⽽不是其他请求,如请求⼀个普通的静态html),此时服务器不是把这个请求交给servlet 本⾝,⽽是交给部署该servlet的容器,要由容器调⽤servlet的⽅法,如doPost()或doGet()。
饿了么图片笔者在⽹上搜到的这些概念,很多时候也都混淆不清。容器和服务器有时候的定义也⽐较模糊,容器兼有了服务器的职责和能⼒。
容器中,中⼩型的Tomcat,Nginx⼤型的,JBoss、Weblogic、WebSphere等
应⽤程序服务器 The Application Servlet
根据定义,作为应⽤程序服务器,要求可以通过各种协议包括Http协议把商业逻辑暴露给expose客户端应⽤程序,应⽤程序使⽤此商业逻辑就像你调⽤对象的⼀个⽅法或过程⼀样。
Servlet(Server Applet),全称 Java Servlet,未有中⽂译⽂。是⽤ Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,⽣成动态 Web 内容。狭义的 Servlet 是指 Java 语⾔实现的⼀个接⼝,⼴义的 Servlet 是指任何实现了这个 Servlet 接⼝的类,⼀般情况下,⼈们将 Servlet 理解为后者。
Servlet 运⾏于⽀持 Java 的应⽤服务器中。从实现上讲,Servlet 可以响应任何类型的请求,但绝⼤多数情况下 Servlet 只⽤来扩展基于HTTP 协议的 Web 服务器。
Apache
Apache就是⼀个服务器(软件),提供了静态页⾯的访问能⼒。它配置上插件(模块)后可以以各种语⾔实现动态页⾯。(但是⼀定要注意Tomcat并不是Apache的插件)
ps文字特效模板Tomcat
容器按用途可分为几类Apache Tomcat(即平时所说的Tomcat),也是⼀个服务器。在这个案例中,Tomcat充当了⼀个插件的作⽤,这个插件是针对于Java的,或者说是jsp/servlet的。它是⼀个容器。何为容器?容器么,就是容器。容的是什么,jsP、Servlet。容器管理jsp、servlet的声明周期,包括创建,运⾏,销毁。它是⼀个jsp、servlet的运⾏环境。通俗点说,请求发过来,Tomcat负责执⾏jsP、Servlet,并返回结果。关于⽣命周期这东西,在此不做阐述。也就是说,没有Tomcat,Apache是不认你jsP的。懂设计模式的可以想想了。。。当然,整个过程都有设计模式的影⼦
要注意:Tomcat本⾝也是可以单独作为服务器来运⾏的。Tomcat 有时也被称为Apache Tomcat,这个Apache指的并不是Apache服务器,⽽是⼀个“商标”,因为Tomcat是属于Apache这个项⽬的
Apache与Tomcat⽐较联系
apache⽀持静态页,tomcat⽀持动态的,⽐如servlet等。
⼀般使⽤apache+tomcat的话,apache只是作为⼀个转发,对jsp的处理是由tomcat来处理的。
apache可以⽀持php\cgi\perl,但是要使⽤java的话,你需要tomcat在apache后台⽀撑,将java请求由apache转发给tomcat处理。
apache是web服务器,Tomcat是应⽤(java)服务器,它只是⼀个servlet(jsp也翻译成servlet)容器,可
以认为是apache的扩展,但是可以独⽴于apache运⾏。
共同点
两者都是apache组织开发的
两者都有HTTP服务的功能
两者都是免费的
不同点:
gorilla怎么读英语怎么说Apache是专门⽤了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的⼀个JSP服务器
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论