首页 > java里面的web容器是指什么

java里面的web容器是指什么

容器的概念似乎是从java开始提出的,在其它语言里都没有类似的描述。从我们开始接触的tomcat,jetty等等,在我们做脚本语言的看来都是服务器,但是在java中却被称为web容器,那么什么是web容器呢?


web服务器,严格意义上讲就是实现http协议的最基本功能,能监听指定服务器端口,并接受请求发出响应的服务系统。例如apache、nginx等都是此类。不过现实中很多web服务器出于种种考虑回内置针对特定语言或架构的处理体系,例如iis内置了asp.net的处理架构,apache也可以通过扩展提供php、rails等处理架构(这些特别内置的模块,你也可以简单理解为web容器了)。如果web服务器自己不处理特别请求,那么可以通过cgi等方式转发给后端处理,例如apache、nginx都可以通过fastcgi将请求转发给后端端口,例如php-fpm服务,或python的什么服务等等。

其实在java之前一直不太有web容器这种说法,到目前似乎也只有java是这么提的。这主要是因为整个java的web开发是基于javaEE的servlet技术体系,该体系规范规定了web请求的整个生命周期的方方面面。但是规范只是规定了实现的标准,或者说是接口(interface),具体实现都是各厂商自己搞定,所以这就出现了各种不同的web容器,例如tomcat、jetty、jboss等等。

又说回来,这些容器为了方便开发者,大多都提供了web服务器的功能,不过和专业的web服务器相比总有些缺失不足,所以一般只用来做开发用,生产环境主要还是作为后端服务。


web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。


去翻了以下资料。wikipedia上给出的解释:
a web container, also known as a Servlet container.
...
Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run.
web container包括了web server(处理http的请求与响应)的功能,同时还管理servlet生命周期什么的。
我们脚本语言是cgi+web server的形式,wikipedia上还说
The advantages of using servlets is their fast performance and easy to use combined with more power over traditional CGI.
也就是说,java认为web container优于cgi

【热门文章】
【热门文章】