您的位置:首页 > 运维架构 > Apache

Web服务器,容器和应用服务器区别等问题

2017-03-15 15:49 375 查看

什么是服务器?

查看Apache的定义时,会发现,Apache为Web server,也就是Web服务器。

Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会响应。应用层使用的是HTTP协议。

什么是容器?

容器就是一个抗日神剧中的接线员(或者叫调度员)——Servlet没有main()方法。Servlet受控于另一个Java应用,这个Java应用称为容器。Tomcat就是这样一个容器。如果web服务器应用得到一个指向servlet的请求(而不是其他请求,如请求一个普通的静态HTML),此时服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器,要由容器调用servlet的方法,如doPost()或doGet()。

容器能提供什么?

接线——通信支持:利用容器提供的方法,你能轻松地让servle与Web服务器对话;

控制挂机——生命周期管理:容器控制着servlet的生与死。它会负责加载类、实例和初始化servlet、调用servlet方法,并使servlet实例能够被垃圾回收。

多人通话——多线程支持:容器会自动地为它接收的每个servlet请求创建一个新的java线程。针对客户机的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。

配置通信规则保证通信安全——声明方式实现安全:利用容器,可以使用XML部署描述文件配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。

顺带当下翻译官——JSP支持:负责把JSP代码翻译成真正的java。

制定规则(必须先拨号)——web应用程序需要部署到web容器中才能运行,两者都必须符合javaEE规范。

web容器的应用程序规范如下:1.目录结构规范:javaWeb程序的所有文件都包含在一个文件夹中,包含WEB-INF子文件夹和META-INF子文件夹,WEB-INF文件夹包含classes文件夹和lib文件夹以及web.xml。

服务器与容器之间的关系

一个接线站与接线员之间的关系——web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的各种类型的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。

Web容器是一种服务器程序,在服务器端口就有一个提供相应服务的程序。所以现在知道为什么Tomcat有默认的端口——8080。一个服务器可以有多个容器。(Python的web容器有web.py等),它是来管理和部署web应用的。

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

应用服务器——它的功能比web服务器要强大的多,Web服务器设计服务于HTTP内容,应用服务器不只限于HTTP。Web服务器服务于静态内容,有插件支持动态语言。应用服务器也具有Web服务器的这些东西,除此它还支持程序级的服务,如连接池,事务支持,信息服务等。

Apache和Tomcat的区别

tomcat更强大

Tomcat是一个Servlet/Jsp容器,它同时也作为一个web服务器使用。

Tomcat = ( Web Server + Servlet container + JSP environment ),因为我们知道JSP也是转译为Servlet的,Tomcat接收请求之后,如果是JSP页面的话,Tomcat里面的JSP引擎可以将JSP转换为Servlet类。

从这里也可以看到,其实Tomcat既是Web服务器也是Web容器。

Apache是设计服务于静态web页面的web服务器。如果是Apache来接收jsp请求,它根本就不知道这是什么东西,所以返回的并不是我们想要的结果,但是静态页面的话,如http://www.apache.com/index.html这样的请求的时候,Apache就直接将这个页面返回给请求的浏览器了。

原文地址:http://blog.csdn.net/iaiti/article/details/45308383
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息