Web服务器与Web容器的概念

Web服务器的功能:处理HTTP协议栈、文件系统映射及I/O、多线程处理请求/响应、日志记录、代理服务。

只使用Web服务器,我们只能实现Web1.0的部分功能——静态网页,因为Web服务器应用只能提供 http(s) 服务,即让用户访问静态资源(HTML 文档、图片、CSS 文件、JavaScript 文件等),它们不能执行任何编程语言,自然生成不了动态页面。

动态网页是需要生成的,它并不是Web服务器直接返回一个已有的资源,而是Web服务器程序通过接口给另一个程序(就是容器)一些信息(即用户提交的请求信息),然后这个容器返回一个即时生成的一个临时性的资源,Web服务器程序再将这个临时资源(即动态页面)封装后响应到用户。

这个生成动态页面的应用有许多种实现,但如果不能直接运行在操作系统上,我们就要给这个应用提供编程语言运行环境。提供这个环境的,就是一种中间件,也就是容器。可以将容器看做一个程序,它能运行操作系统不能直接运行的代码。

Web服务器与Web容器的概念_第1张图片

举例:Servlet容器。当Web服务器程序接受到一个动态页面的请求时,Web服务器程序会将这个请求传递给Servlet容器来处理,然后等待Servlet容器给这个请求生成的界面,它再把界面封装之后响应给浏览器端;Servlet容器接收到请求时,会根据配置文件(web.xml)找到对应的 Servlet 类,将它加载并实例化,然后调用其中的方法来处理用户请求,处理结束后,Servlet 容器将处理结果再转交给 Web 服务器。

虽然JRE也是一个编程语言运行环境,但因为Servlet类无法直接运行在JRE上,所以需要Servlet容器,Servlet容器依靠JRE运行,Servlet类再依靠Servlet容器运行。Servlet类将被作为一个模块载入到 Servlet 容器,然后由 Servlet 容器来实例化,并调用其中的方法。

所以Web容器(如Servlet)的主要功能是通信支持、生命周期管理和多线程支持等,对应了Servlet类与Web服务器的交互和对Servlet类的管理。

你可能感兴趣的:(服务器,servlet)