zoukankan      html  css  js  c++  java
  • Servlet详解(五)--重定向与转发

    重定向与转发本质都是跳转到新的URL

    下面是图解:

    重定向与转发的本质区别在于:转发是一个服务端的行为,而重定向是一个浏览器的行为。

    一、过程:

    转发:浏览器发送请求到服务器==》Server根据Servlet内部代码将请求转发至新的Servlet(jsp,html,Request还是原先那个)==》新的Servlet将响应返回至Client端

    特点:转发必须在同一个web服务器里面(否则服务器无权转发),一次转发对于client是不可见的,client只能看见自己发出一次请求,收到一次响应,URL依然是第一次访问的路径。Request与Response相同。

    重定向:client第一次向server发出请求==》server通过servlet选择重定向并向client作出响应==》响应返回状态码为302,内容包括location地址==》client接收到响应并解析响应包,向新的location发起第二次访问请求(url已经成为第二次的路径,且一个新的Request)==》访问到地址二后,地址二作出第二次响应

    特点:转发是可以在多个服务器的(百度点击都是重定向),重定向对于client来说是两次访问,第二次url也会改变,Request与Response都是两个。

    当然,转发虽然限制比较大(同一个web服务器),但是速度会比重定向快(省略掉了一次http请求(握手挥手等操作))。

  • 相关阅读:
    Java SE之Java中堆内存和栈内存[转/摘]
    JavaSE之概述
    Java SE之字符串常量池
    Java SE之String,字符串和子字符串的存储与区别
    Java SE之基本程序设计结构
    Java SE关键字-static
    Java SE之初探反射机制
    Java SE之向上转型(动态绑定)与向下转型
    [C++]指针与引用(定义辨析)
    [C++]指针与引用(应用辨析)
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/10860854.html
Copyright © 2011-2022 走看看