剑指JavaWeb:技术详解与应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.3 请求与响应

前面提到了Web开发遵循请求响应机制,下面简单介绍一下什么是请求和响应。

我们把服务器端应用程序中的各个功能称为业务,如商城项目中的用户注册、用户登录、添加购物车、提交订单、结算订单等。而每项业务的完成,都需要通过请求和响应来实现。

● 请求从客户端发送给服务器端,主要用于将客户端的数据传递给服务器端。

● 响应从服务器端发送给客户端,主要用于将服务器端的数据传递给客户端。

为了方便大家理解,可以对比生活中点菜的过程,如图1-4所示。

图1-4 点菜过程

顾客来到餐厅,通过服务员点菜,这个过程可以看作浏览器向服务器端发出请求,而服务器端将点菜结果反馈给后厨,然后做完后再端给顾客,类似服务器端作出响应,将结果返回给浏览器的过程。

请求消息包括请求行、请求头、请求参数。发送请求需要借助 HttpServlet-Request 请求域对象传递数据,HttpServletRequest 是一个接口,它的父接口是ServletRequest,在开发中常用的是带协议的HttpServletRequest请求对象。

响应信息包括响应行、响应头、响应体。做出响应需要借助 HttpServlet-Response响应域对象。HttpServletResponse是一个接口,它的父接口是ServletResponse,在开发中通常使用带协议的HttpServletResponse响应对象。

另外,请求的转发与重定向是Web应用页面跳转的主要手段,在Web应用中使用非常广泛。转发在服务器端内部完成,浏览器感知不到,整个过程只发送一次请求。而对于重定向,浏览器是有感知的,服务器端以302状态码通知浏览器访问新地址,整个过程需要发送两次请求。关于请求和响应,接下来会在第7章详细介绍。