00:03
接着看啊,回到这边来。刚刚我们已经把这个呃保存中玉已经给大家讲了啊,那么在讲time米Li之前呢,我再穿插一个啊,这是第五个绘画,这是第七个。那么我们来看一下第六个。第六个我把它讲一下,这样大家。这个学起来才会比较顺畅啊。第六个。好,第六个是什么呢?第第六个是叫服务器。内部转发以及客户端重定向,我们需要把这个知识点一起来学一下。服务器端内部转发,这个是什么意思呢?这个。这个它对应的是什么呢?对应的是这么一句话,request.get大家大家不要死记硬背啊,千万不要去死记硬背API。Get request dispat,这有点长啊,所以先打个预防针,不要去死记硬背啊,然后这里面是某某某啊。然后点forward。
01:00
Forward request response。这个称之为叫服务器端内部转发。不用死记硬背,放心会让大家记住的。第二个。第二个叫客户端重定向。客户端重定向。客户端重定向对应的代码是什么呢?稍微短一点,response.send redirect。啊,发给某一个资源就这样。那行,下面咱们把这两个一起来看一下。我们把这两个一起来看一下。我们回到这个图。呃,我把这个保存,然后新建一个。我们重新来画图,这是我们的客户端。这是服务器端。我们服务器端有两个组件,我们服务器端有两个组件。这是第一个组件。组件一。不写也行吧。
02:00
然后再来,这是第二个组件。好,注意看啊,这是第二个组件。现在我的客户端给第一个组件发一个请求。给第一个组件发个请求。发了一个请求之后。发了一个请求过来之后,在第一个组件里面,他有一句话。我们把这句话把它写下来。这句话叫request.get request dispatch。好,比如说交给组件二,我们刚才是不是已经到代码零几了。0506是吧,现在。哦,零六还没有是吧,那行吧,咱们这边上面直接叫零六,下面叫零七行不行。我发给DEMO07。点forward。Request response。我就写了这么一句话。
03:02
放在这边没事啊。嗯。稍等啊。这反正不咋地,但是这个画图工具还行啊。把它删掉。然后把这件拿过来。好,剪切过来。这个叫青铜画图工具是吧?行,就这样吧。我把这叫放在这边啊,点for这个字截的一点小问题啊。这样应该差不多。先切。把它翻过去行,这样应该差不多啊。好,就这样吧。如果执行的是这句话,同学们如果执行的是这句话,那么这句话的作用是什么呢?来,我把它标在这啊,这个是代码零六。行吧,同学们,我的标在这啊,蓝颜色标在这,好,下面一个是W07。零七行不行。好,只要我这么去写的话,一个请求发过来,如果执行这句话,它的作用是什么呢?它的作用是在这个服务器的内部。
04:06
把这个请求听好了,我用红颜色的线表示,把这个请求一下子转给了零七。然后DEMO07里面的代码去执行,执行完之后由DEMO07响应给我们的客户端。那么对于客户端而言,他反正服务器内部的事情他是不知道的吧。对于客户端而言,他发了个请求给服务器,服务器又给了他他一个响应,那内部到底经过几次跳转他不知道。这个叫服务器内部转发。能听懂吗?叫服务器内部转发。好。那么我们把这个图缩小一点点。我们把它放在一边啊。缩小一点。自己练小的。
05:01
算了吧,就这样吧。保存一下吧。零四这个叫服务器内部转发。大家先不要看我代码怎么写,先把图先要理解,先把图理解了一会我们写代码的时候,大家在想的这个图。这叫服务器转发。好了,再来第二个图,第二个图叫客户端重定向,我们一起来看一下,这是客户端。这是服务器端,我们服务器端还是两个组件,第一个组件。然后第二个组件。好,我们在第一个组件里面有一句话。叫response.send redirect。零七。就这样的出现了这么一句话。那么我的客户端,我给这个服务器发请求,请求零六没错吧,那么它会响应,那么它内部出现这句话的效果是什么呢?
06:00
这句话的作用是?这一句话的作用是。服务器会立即给我们的客户端一个响应。立即给他一个响应。这个响应会带一个消息过去。会带上一个消息。Message,这个消息是请你现在立刻给DEMO07发请求。这的message。啊,这个message它就是这么写的。请你现在立即给零七发请求,那么我们的浏览器听到收到这个message,是不是它会立即发请求啊?好,所以这个客户端他会立即给我们的服务器发请求,请求零七。然后我们的这个组件会给他一个响应。啊,会的,会给到一个响应。所以。这个地方。我们称之为是第一次请求,或者叫请求一。
07:04
请求一。然后这个红色的线我们称之为叫响应一。是不是同学们这是一个响应一。好,再来。反正就放在这边吧,啊,大家知道就行,好不好响应一,然后下面这个。哎,这就是请求二。下面这根线叫相应二。好吧,同学们叫响婴儿,这种我们称之叫重定向。啊,这种叫重定向。好。所以呢,我们把这作业保存一下啊。好,这个叫客户端。重定向。OK,好了,我们回到第一张图,稍等一下啊,我把第一个图打开。第一个图,服务器内部转发。我给大家再举一个生活案例,这个图相当于什么呢?我们写在这儿。
08:04
啊,这个客户端。客户端就是小明。啊,服务极端,服务极端就是医院。啊,医院。好组件,服务器端的组件,服务器端组件就是医生。就是医生啊。这个案例告诉我们什么呢?小明。啊,跑到医院。跑到医院。叫什么呢?叫躺在手术台上啊,手术台上台上准备动手术。啊,准备动手术。他做的是什么呢?他做的比如说是是腿啊,腿叫腿叫腿疼是吧。腿疼啊,要开刀。行,就这样的,所以呢,小明就跑到医院。啊,腿疼,需要开刀。然后跑到医院,躺在手术台上准备动手术。
09:00
那么第一个医生张三啊,张三医生啊,过来拿着刀是吧。就拿着刀。拿着刀过来了。一看啊,我是脑科。脑科手术的医生。对吧,这病我这个这个手术做不了是吧,这个手术。发现你不是这个脑子有问题是吧,我是脑科医生,我做不来这手术,那怎么办呢?张三,这个医生怎么办呢?张三啊,立即。立即就说向,向谁呢?向李四医生求助。求助,让李四来完成。这台手术。行吧,同学们来完成这台手术,所以说第一个组件我们是张三,我们写在这。张三。好,这个是李四。第四,好,这个是小明。就这样的。啊,所以呢,小明躺在手术台打了麻药,啥也不知道啊,张三准备给他动手术,发现不行不对怎么办?赶紧求助于李李四,让李四来完成这个事情,其实李四把他这个病手术给做完了是吧,所以小明就醒了,醒了之后他也在感感谢张三的。
10:15
啊,其实是李四帮他做做了这个手术。所以说,对于小明而言,他不清楚是李四已经把这个请求悄悄的转给李四了,是吧?他是不知道的。啊,就是这么这么一回事。好了,所以说我们。就加一句话啊,加一句话就可以了。好,所以说张三啊,张三就是说对于张三而言。张三而言他啊,他的手术完成了。完成的,但是内部谁完成的啊,内部谁完成的,对于。对于。国家,对于张三而言啊,对于小明。对于小明而言啊。但是内部谁完成的?对于小明小明来说。他是不知道的。
11:01
他是不知道的啊,他只。知道求助于啊,他只他只知道张三给他做的手术。是吧,同学们,哎,就是这么一个过程。我们就写在这,把它保存一下,下面我们再来看一下零五这张图。这个图里面也写错了啊。打开做。右键编辑,编辑编辑。好,我们看这个图。这个图我们在写在这。啊,那我就长话短说了,小明是吧,需要做手术啊,小明。小明腿疼是吧?对的。需要开刀。好,然后跑到就躺在手术台是吧,躺在手术台。张三准备动刀是吧,准备动刀。啊发现啊发现不行是吧,发现了做不了。啊,发现他做不了。
12:01
做不了这个手术怎么办呢?这个叫一盆凉水是吧?一盆凉水这个叫把小明对吧,把小明这个叫叫醒了是吧,好。叫叫叫叫,叫醒了。浇水。那一泡尿,那叫滋醒了是吧?啊,一盆凉水把小明叫醒了是吧?叫醒之后说啊,说赶紧起来是吧?赶紧起来啊去找啊去找李四医生是吧,你你这病是吧,你你这病我看不了。啊,你这手术我做不了。是这意思吧?啊,就这样的。他把这个小明赶紧叫起来,说,你赶紧去求助于李四宝,你这玩意儿我做不了是吧?嗯,他赶紧从手术台爬起来。啊,所以,所以这个小明怎么办,是不是再次发请求,求助于李四这个医生啊,啊因此。小明再次发请求。啊,发请求,求助于。求助于李四医生。
13:01
啊,后面咱们就不写了,行吧,同学们就这样子,这个叫两次请求响应。保存一下。那这两个图我已经画好了,下面咱们通过代码一起来看一下。我们来看一下DEMO06和DEMO07,我们先来写第一个零六。OK。然后呢,我让他继承HTTP。好,然后重写一下service方法。好,Request。Response。那么这个里面我就打印一下吧,DEMO06,这样别人也能知道它,它执行了吗?行吧,同学们,然后我再写一句话,request.get request dispat demo07.request response行不行?那么这句话作用是服务器端内部转发。服务器端内部转发。
14:00
啊,他就做了这么一件事情,好,我再写一下代码零七。拷贝一个啊零七。代码零七做什么事情呢?就打一句话就完了吧。就打一句话,代码零七行吗?同学们啊,后面我就不做了啊,代码零七。好就这样的,那么我把这两个我们也来把它,呃,把它这个。注册一下啊,这个叫演示服务器端内部转发。以及客户端重定向。好,咱们先演示服务器端内部转发这件事情。回到这里面来,咱们来注册一下。好,跑到这边来。咱们拷贝一个。好,从这到这给C。到这边来CTRLV,那么这个应该是六。这也是六。行吗?同学们,再来一个七。
15:00
七。虽然我这个命名不大标准啊,1234567啊,但是我希望大家能够能能够这个不要把它搞混淆了,我每一个上面都有这个注释行吗?同学们啊,大家复习的时候注意一下啊。我现在已经把它全部注册好了啊,我们再回到六里面去,把其他的全部关掉。六里面我们做的是一个服务机端内部转发,头脑里面想象那个图啊,现在我们。刷新一下。啊,刷新一下,然后我们来补一下笔记啊。回到这里。服务器内部转发。他是。它是一次请求响应的过程。对于客户端而言,内部经过了多少次转发?啊,内部对于客户端而言,内部经过了多少次转发,客户端是不知道的。对吧,同学们他是不知道的。
16:00
这个是什么?这个是两次请求响应的过程。啊,是两次请求响应的过程啊,客户端。肯定知道。啊,肯定知道,请求U21有变化。因为是我发出的请求嘛啊。看一下啊。把这边全部清空掉,我们再回到页面上去。回到这儿。好了。把这个关掉,嗯,咱们需要来请求一下代码零六对不对。DA码零六在这我们设个断点啊,设个断点行吧,同学们,我们在代码零七里面也设个断点。好,再回到代码零六,我们回到页面上去。敲回车。我一敲回车,大家看一下丹麦零六的第13行是不是就进来了,往下走。打印代码零六,然后执行第十五行,我们直接点绿色这个啊,点绿色这个跳过去,好,你看一下跳到哪里面去了。是不是跳到单零七的这句话,表示刚才这句话确实有这个转发的作用吗?跑到单零七上面去了,然后咱们就执行单零七啊,绿色的跳过去。
17:07
行,他打印零七没错。最后一步,我需要大家观察一下地址栏。是不是还是W06。并不是零七,为什么?这个是人家内部的。小明躺在手术台,他醒了之后,反正他病好了,他腿腿好了,手术做完了,但是他不知道谁给他做的,他一直认准的是张三给他做的,是这意思吧。所以地址呢,就是这样的。这个是服务器转发,下面呢,我们把代码零六,我们把这行注释掉。我们再来看一下。客户端重定向。Response send redirect。零七,好了。就这样的。刷新一下。
18:10
地址栏没有变化啊,我们写一下,那这个我们也把它补一下吧,这个是地址栏有变化。所以说我写的这些内容,这是什么?这是结论,大家不能死记硬背结论,你得知道为什么会有这个结论是吧?同学们,所以说一定要理解啊,来,回到页面上,咱们再来看一下啊,丹零六。好,我敲回车啊,我们断点应该还在啊,断点在的,307也在的行。敲回车,一敲回车,丹麦零六响应了,往下走,好,打印一下丹麦零六,没错,然后跳过去。是不是执行代码零七了啊,执行代码零七,然后代码零七他也会打印。啊,他也会打印出来,但是我们看一下地址呢。是不是零七啊,哎,我们从另外一个角度也能够去,也能够去体会啊,我写代零六看好了啊,我在这边我右键检查。
19:05
那我就把这边的断点去掉了行不行,同学们。啊,这个伏击呢,我就不不给大家看了啊,咱们直接从客户端的角度来看network,好,我准备给代零六发请求,注意看啊。一敲回车,你会发现它有两个。看到了吗?1万我们一敲回车只有一个,诶只有一个说明一次请求响应是吧?同学们好,我们点第一个,点第一个你会发现他这次status code是302。302表示重定向能听懂吗?302表示重定向表示我本来要请求这个代码零六的啊,结果重定向了,就这意思。OK,我们看一下response啊。这是request。我们response黑的在这儿啊,Response黑的,你看location是不是代码零七啊,他要求我们准备要给这个代码零七啊,要求发好,所以我们这是我们代码零六。啊,这个后面就后面就不看了啊OK。
20:03
所以我们代码零六是第一次发请求。然后零六响应之后说,请你再次给我发请求,请你给我代给DEMO07发,所以下面又出现下面一个DEMO07。那么代零七发过去之后,哎,咱们组建代零七能给他响应,所以就是200盒,OK。没错吧,同学们啊,就是200盒,OK,来就是这样的,我们从request head里面稍等一下啊,我给大家看一下。我们request里面。Request head。这边还看不到啊,但是在我印象当中,我记得是可以看到一个影子,就是表明他这次是重定向过来的啊。没关系啊,看不到也没关系,OK,这个已经足足够能够说明了,因为已经出现两个了嘛,那就说明是两次请求相应。那这个小的知识点,我也把它说完了。OK。
我来说两句