一、WEB服务器
WEB服务器也称WWW(WORLD WIDE WEB)服务器,是安装并运行着WEB服务器软件的计算机,主要用于提供网上信息访问服务。WEB服务器不仅能够存储信息,还能接收来自客户机WEB浏览器的资源请求,处理请求,并返回处理结果。
常见的WEB服务器软件有WebLogic、Tomcat、IIS等。
WEB服务器软件是指驻留在WEB服务器上的服务程序。当WEB浏览器(客户端)连接到WEB服务器并请求资源时,服务器将接收并处理请求,并将处理结果发送回浏览器,发送给浏览器的信息还有资源的大小、文件类型等,即:告诉客户端浏览器如何查看资源。
WEB服务器与客户端浏览器之间,通过HTTP(超文本传输协议)进行通信。
客户端WEB浏览器访问WEB服务器上资源的过程大致可以分为四个步骤:创建连接、客户端请求、服务器应答、关闭连接。
(1)创建连接:客户端WEB浏览器与WEB服务器之间通过Socket三次握手,建立TCP连接。
(2)客户端请求:WEB浏览器在TCP连接基础上,使用应用层HTTP协议向WEB服务器发送资源访问请求。
(3)服务器应答:WEB服务器接收到请求后,调用资源,实施任务处理,然后使用HTTP协议把任务处理的结果发送回WEB浏览器,WEB浏览器负责显示响应结果。
(4)关闭连接:当WEB服务器应答完成后,WEB服务器主动断开与WEB浏览器之间TCP连接。
Servlet常常也可以作为WEB服务器上的应用资源,提供客户端访问。
Servlet作为一种可驻留在WEB服务器上运行的Java服务器程序,下图说明了Servlet在WEB应用程序中的位置。
若WEB服务器要支持Servlet的运行,就需要与Servlet容器相结合,为客户端提供Servlet的访问服务。许多WEB服务器内含了Servlet容器,例如:Tomcat、Jetty、JBoss、WebLogic既是WEB服务器软件,也是Servlet容器,即:它们包含了Servlet容器。
二、Servlet容器与WEB服务器共同处理客户请求
当客户端通过WEB浏览器请求访问WEB服务器上的Servlet时,Servlet容器作为WEB服务器中的一个组件,需要与WEB服务器一起共同处理一个客户请求,处理过程如下:
(1)客户端WEB浏览器与WEB服务器之间通过Socket建立TCP连接,并使用HTTP协议向WEB服务器发送Servlet访问请求
(2)WEB服务器负责接收来自客户端浏览器的HTTP请求
(3)WEB服务器将接收到的请求,转发给Servlet容器
(4)如果客户端要访问的Servlet不在Servlet容器中,则检索Servlet,并加载到容器的地址空间中
(5)Servlet容器调用Servlet的构造器和初始化init()方法,创建Servlet实例,并进行初始化(实例化与初始化方法,仅在第一次加载Servlet时,调用一次,即:创建一个Servlet实例)
(6)Servlet容器调用Servlet的service()方法处理HTTP请求,并将处理结果返回给WEB服务器,同时,将Servlet实例暂时保留在Servlet容器的地址空间中,可以继续响应客户端的HTTP请求
(7)WEB服务器将Servlet的处理结果发送回客户端浏览器
(8)WEB服务器完成响应,主动断开与WEB浏览器之间TCP连接