3.1 Web应用模型

Java EE企业应用最常见的场景就是处理Web请求并生成动态响应。因此Java EE学习之旅的第一站自然从Java EE的Web组件Servlet开始。不过在学习Servlet编程之前,开发人员应该首先了解Web应用是如何工作的。

所谓Web应用,指的是可通过Web访问的应用程序,如门户网站等。区别于在计算机本地运行的桌面应用如Word、Excel等,Web应用由客户端和服务器两部分组成,二者通过HTTP协议进行交互,如图3-1所示。

图3-1 Web应用模型

HTTP是Web应用最常用的协议。最广泛使用的HTTP版本是1.1,它工作在请求响应模式下,一次请求处理流程包含如下四个步骤。

(1)客户端向服务器发送一个请求,请求头部包含请求的方法、URI、协议版本,以及包含请求修饰符、客户端信息和内容的类似MIME的消息结果。

(2)服务器接收到请求信息后建立与客户端的连接。

(3)服务器对客户端提交的请求信息进行处理,并最终返回一个响应,内容包括消息协议的版本、成功或失败编码加上包含服务器信息、实体元信息以及其他内容。

(4)服务器断开与客户端的连接。

如果客户端需要再次向服务器请求信息,则进入如上所示新一轮的处理流程。

对于HTTP 1.1协议有以下两个特性开发人员必须要牢记:

(1)HTTP协议是无状态的。服务器并不会记录和保存客户端的任何信息。也就是说,同一用户在第二次访问同一服务器上的页面时,服务器的响应过程与第一次被访问时相同。至于服务器如何处理来自同一客户端的请求,将在3.7节进行深入讲解。

(2)HTTP是无连接的。服务器并不会保持与客户端的永久性连接。服务器只是在收到客户端的请求后才会与客户端建立起连接,一旦服务器生成响应并返回客户端,服务器就将断开与客户端的连接。如果客户端需要请求服务器上另外一个资源,则需要重新建立与服务器的连接。