对常见面试题进行总结记录
请你说明 forward 和redirect的区别?
- 定义不同
redirect(间接转发方式):实际上是两次请求,服务器在响应第一次请求的时候,让浏览器再向另外一个 URL 发出请求,从而达到转发的目的 forward(直接转发请求): 客户端/浏览器只发送了一次请求,有第二个信息资源响应该请求,在请求对象的 Request 中,保存的对象对于每个信息资源是共享的
- 请求方不同
- redirect 客户端发起的请求
- forward 服务器发起的请求
- 浏览器表现地址不一样
redirect: 浏览器地址显示被请求的 url forward:浏览器地址不显示被请求的 url
- 参数传递不同
- redirect:重新开始一个 Request,原先的 Request 生命周期结束
- forward: forward 另外一个连接的时候,request 变量的是在其生命周期内的,另外一个页面也可以使用,本质是吧目标地址 include
- 底层运作不同
- redirect: 发送的请求信息有发给客户端,让客户端在转发到另外一个资源上,需要在服务器和客户端之间在增加一次通信
- forward: 服务器端直接找到目标,并 include 过来