您的位置:首页 > 理论基础 > 计算机网络

从HTTP协议分析转发和重定向的区别

2009-11-07 14:37 323 查看
【文章标题】从HTTP协议分析转发和重定向的区别
【文章作者】曾健生
【作者邮箱】zengjiansheng1@126.com
【作者QQ】190678908
【作者MSN】zengjiansheng1@hotmail.com
【作者博客】blog.csdn.net/newjueqi


*******************************************************************************

本文主要是通过截取HTTP包的数据,分析java Web开发中的转发和重定向的区别。

第一步,编写一个简单的Servlet,URL为http://pc-200908141013:8080/Demo/servlet/SendURL,代码如下:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//转发
req.getRequestDispatcher("/Test.html").forward( req, resp );

//重定向
//resp.sendRedirect("/Demo/Test.html");

}

第二步:运行Tomcat,在浏览器中输入http://pc-200908141013:8080/Demo/servlet/SendURL,用HttpWatch截取HTTP的信息,得到转发的HTTP信息如下图:



图1

第三步:把servlet中转发的代码注释,把重定向的代码的注释去掉,再次访问,用HttpWatch截取HTTP的信息,截获了两次HTTP的信息,如下两张图:




图2





图3

由图1,图2,图3可知,

转发是直接是返回http://pc-200908141013:8080/Demo/Test.html的内容。

重定向是有两次响应数据的,第一次返回的是302状态码,要求浏览器访问Location头的http://pc-200908141013:8080/Demo/Test.html的链接地址,第二次返回的是http://pc-200908141013:8080/Demo/Test.html的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: