HTTP中的页面重定向和请求转发的区别
2017-08-23 10:57
211 查看
请求转发
借助于 RequestDispatcher对象的forword()方法进行跳转。
特点:
页面跳转之后,地址栏没有跟着发生改变。
导致我们发现:地址栏的信息和显示的页面信息不符。
页面重定向
使用response对象调用sendRedirect()方法进行跳转。
特点:页面跳转后地址栏的信息 相应改变。
这两种跳转方式分别在什么情况下使用呢?【传送门】
区别
请求转发是服务器行为,页面重定向是客户端行为。
转发过程:
在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:
在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
地址重定向使用一个response对象进行跳转,实际是客户端发送了两次response请求信息来完成一个跳转。
请求转发是由服务器端进行转发的,客户端根本不知道自己的请求经过了过多少个资源文件。
关于两种跳转方式的区别,点击【传送门】
借助于 RequestDispatcher对象的forword()方法进行跳转。
RequestDispatcher dispatcher = request.getRequestDispatcher("success.html"); dispatcher.forward(request, response);
特点:
页面跳转之后,地址栏没有跟着发生改变。
导致我们发现:地址栏的信息和显示的页面信息不符。
页面重定向
使用response对象调用sendRedirect()方法进行跳转。
response.sendRedirect("success.html");
特点:页面跳转后地址栏的信息 相应改变。
这两种跳转方式分别在什么情况下使用呢?【传送门】
区别
请求转发是服务器行为,页面重定向是客户端行为。
转发过程:
① 客户浏览器发送http请求 ② web服务器接受此请求 ③ 调用内部的一个方法在容器内部完成请求处理和转发动作 ④ 将目标资源发送给客户
在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:
① 客户浏览器发送http请求 ② web服务器接受后发送302状态码响应及对应新的location给客户浏览器 ③ 客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址 ④ 服务器根据此请求寻找资源并发送给客户
在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
地址重定向使用一个response对象进行跳转,实际是客户端发送了两次response请求信息来完成一个跳转。
请求转发是由服务器端进行转发的,客户端根本不知道自己的请求经过了过多少个资源文件。
关于两种跳转方式的区别,点击【传送门】
相关文章推荐
- HTTP中的重定向和请求转发的区别(转)
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HttpServletRequest对象请求转发和HttpServletResponse对象请求重定向之间的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- HTTP中请求转发与重定向的区别
- HTTP中的重定向和请求转发的区别(转)
- HTTP中的重定向和请求转发的区别
- HTTP中的请求重定向和请求转发的区别
- 005_Http之request获取客户端信息06-请求转发及包含和重定向的区别