00:00
行,我们接着看下面一个话题,下面一个叫绘画。我们在第四个话题的时候呢,我写了一句话,但是我没给他解释。这句话叫HTB,它是无状态的。首先我得给大家解释一下这句话,Can you c,拷贝过来啊。我得给大家解释一下这句话。HTTP是无状态的啊,我需要给大家解释一下这句话来。我们回到我们画的图,这是我们刚刚所画的图。我们发了个请求。发了个请求过来,请求里面包含请求行,请求头,请求体,那么响应回来的时候包含请响应行,响应头和响应体是吧,同学们。行,我现在把这个先删掉啊。我们接着来看。这是一个请求,我们称之为叫请求一。REQUEST1。然后呢,我们呢,又有个请求过来了。我们称之为叫request。根据C、根据。这是request。
01:00
REQUEST2。好了,我想说的是什么?什么叫HTTP,叫无状态?他无状态指的是这两次请求。这两次请求服务器无法区分。无法判断。这啊,服务器无法判断这两次请求。是同一个客户端发过来的。还是不同的客户端发过来的。服务器是无法区分的。这个称之为叫HTTP无状态。我这个请求服务器接收到了。第二个请求,服务器又接收到一个请求,那么这两个请求到底是来自于同一个浏览器,还是来自于不同的浏浏览器,服务器无法区分。能听懂吗?这就叫HTTP无状态。
02:02
那么,这种状态不好的地方在于什么呢?我状态带来的现实问题。现实问题是什么呢?好,我把写得了。无状态带来的现实问题是什么呢?比如说。第一次请求。请求是添加商品到购物车。第二次请求是结账。如果是啊,如果这两次请求服务器无法区分是同一个用户。啊,是同一个用户的。那么就会导致,就会导致混乱。你想想是不是这样的?我添加购物车,第二次我结账,可能我结的不是自己的购物车。
03:02
我接的是别人的单子。我添加购物车,可能加到别人的购物车里面去了。因为这两次。本来我是应该有逻辑关系的嘛,我这两次本来应该要绑定在一起的嘛,假设没有办法区分,第一次我添加购物车成功了,第二次我结账,结的不是自己的,结的是别人的是吧,同学们。但是大家会觉得很荒唐,我们现实情况下并没有出现,是不是啊?那当然不会出现,出现不就麻烦大了吗?是吧,那我们是怎么解决这个无状态的问题的呢?我们怎么去解决这问题的?通过绘画。绘画。跟踪技术来解决无状态的问题。啊,通过绘画跟踪技术来解决无状态的问题,他怎么解决的,我们来看一下啊,再回到这个图。好,我们就不在这边写了啊。好,我们就把这个。这个文字描述,咱们把它放到放到这边吧,啊放到这。
04:06
好,放到这里啊,把它变成蓝颜色的字。我们是怎么解决这个问题的,大家看好了啊。我写在这儿。通过汇报跟踪。跟踪技术来解决无状态的问题。好,怎么解决呢?稍等一下啊,把它写在这。这个叫叫绘画。跟踪技术。看好了啊,看好了,我把这个先暂时先暂时先删掉啊。剪切掉。好,这个客户端听好了,我们实际情况是这样的,这个客户端第一次发请求过来了,给我们的服务器了。如果我们需要做会话跟踪,我们的服务器会做这么一件事情。服务器。我们叫S吧,S叫行吗?同学们负就会说请。
05:00
告诉我你的绘画ID。请告诉你的绘画ID client中啊client。没有。他回答一个没有好思维,就说,哦,那我知道了。那我知道了。你是第一次给我发请求?你是第一次给我讲,发请求,我给你分配。分配一个ID。我们称呼叫三峡ad,我给你分配个三峡ad。啊,比如说这个三下题,比如说叫123意思一下啊,随便意思一下行,这是一次绘画。好,这是发了个请求过来了,行,再来一次请求。再来一次请求。那么这次请求的时候,他们之间又进行对话了。福吉说,请告诉我你的绘画ID。那么客户端说。客户端说123。
06:01
那么伏羲就知道,哦,我知道了。我知道了啊你。你是谁谁谁是吧,上次什么时间。直接访问我的。是不是同学们,那这样的话,服务器是不是就能把第一次请求和第二次请求是不是就能绑定上了,他知道这次请求和这次请求是同一个会话。是吧?同学们再来假设,又一个请求过来了。这个请求又过来了。这个请求过来啊,假设他们的对话我们再写在这。比如说我们说夫妻说,请告诉我。请告诉我你的绘画ID啊,客户端说。客户都说345。啊,那福晋就说,哦,我知道了。我知道了,你是谁谁谁啊,上次什么时间访问我的,那大家想想,虽然说这个我这边写的这个话啊,上次什么时间访问我的这个话好像和这个是一样的,但是他是不是能区分出345和123不是同一个人。
07:07
嗯,能听懂吗?同学们好。这是我简单写了一个大白话。下面咱们就通过代码来看一看,我们一起来通过代码来看一看。回到代码里面去。OK。我这边写了两个代码零幺,代码零幺,下面我来写个代码零三,我新建一个。W03。演示三星。好,继承。HTTP。好,我们这边写个service方法没问题啊,Service或者你要do get都行吗?同学们随便你啊,你用do get也行,或者我直接用service也可以。来。我们这边有个request对象。
08:02
我这边给response对象。第一步。第一步,我获取。获取session。怎么获取?Request。点get。啊,这叫获取在线。我们获取筛选有两个方法,一会儿再说,我们先说第一个无参的啊。获取。赛前。好。如果获取不到,则创建一个新的。行吧,同学们,如果获取不到,就创建一个新的好,它获取到的是HTTP在线。把它写在这,然后我们可以把它的三项ID把它打印出来。再下ad。三线点get ID能看到吗?它有个叫ID,那行啊,咱们可以把它打印出来试验一下啊。我们回到这边,我们把它把它配一下。好,拷贝一个。W03。W03。
09:00
漏洞就不要了行吗,同学们?303。W03行不行。来没问题吧,配合了啊,行,再回到这边,那下面我们就要来反问了呗。是吧,刷一下啊。刷新一下。我们一起来看一看啊,我可以把这边。改成代码零三啊,或者不改也行吧,就不改吧啊。看一下啊。那行一起来看一下啊,把把这个关掉好,我们是不是要准备访问代码零三,这个打印机不管了,这是之前打印的是吧,全部清空掉啊,回到页面上的,我们访问代码零三。请问我现在访问是不是我这个浏览器第一次访问?是不是,那么我第一次访问的时候,他有没有规划的ID?应该是没有的。所以所以我这边get筛选,他是不是会给我创建一个新的。
10:03
然后把这个3D打印打印出来。右键。我们检查,我把network打开啊,回到这来好。一起来看啊,一起来看。单零三,我准备敲回车了啊,我敲回车,一敲回车,他给单零三发请求。行,在这呢发请求。啊,发了请求之后,我们来看一下啊。嗯,这个因为我的分辨率有点小了啊,一起来看一下发请求哦U2有是他给LOCALHO8080PRO08DA03发请求,对不对?好发的是盖的请求,没错,响应的状态码是200 OK,没问题。然后,然后。发过去了,发过去之后我们的服务器就会执行这句话。创建出一个新的在线,然后把这个在线的ID打印出来了吧,哎,这是我们在控制台打印的,听好了,回到图啊,回到图。
11:02
这边说了哦,那我知道了,你是第一次给我发请求,是不是这意思啊,那我给你分配一个3ID。我给你分配一个。我给你分配一个,我怎么给你分配一个呢?听好了啊。把这个ID记住叫5AE3,没错吧,5AE3我们看一下浏览器下面。这个叫瑞bos,黑的瑞bos是啥?是不是响应啊,响应头,响应头里面你看这set cookie能看到吗。在响应图里面塞的cookie cookie是啥?大家先别管。你看后面一个单词是不是叫借三线ID啊,三项ID你就能知道,你看5AE3看到没有,那就意味着我在这图里面哦,你没有没有没有关系,我给你分配一个三星ID,请你下一次访问我,访问我的时候,请你把我给你分配的这个3ID带过来。是不是同学们好,我们再回到图,我们现在来看一下request,这是我第一次发请求,Request head里面,你看一下这里面有没有什么5AE3啊,应该是没有的。
12:09
别找了,肯定没有的啊,行,请问我现在是不是第一次发请求了?发请求发给服务器,服务器问你有没有三星ID,客户端说没有,没有,没关系,我给你创建一个新的三线,然后把三星ID扔给你,所以在我们response里面经能看到5AE3,没错吧?停。注意看啊,我敲回车,请问我一敲回车是不是发出第二次请求?好,我一笑,会车来,我在我的服务近呢,是个断点啊,我在这里是个断点,行吧,同学们,我是个断点来。敲回车,一敲回车是不是表示我给你发请求了?那我发起你是不是服务阶段能接收到。是不是同学们请现在服务器接收到,请问现在request.get筛选会不会创建一个新的?应该是不会的,因为我同一个浏览器第二次给你发请求嘛,那应该是不会的,往下走啊往下走。
13:06
准备执行第十五行,执行好,我们看一下这个三选。我们看一下是不是还是刚刚这个5AE3打开。稍等啊。哎,跑哪去了?没有人了。点他啊跑到这边来把它打开。筛选,请你看后面的数字。看到了吗?现在我们request get3,它还是AE3。而且它有一个属性,我们看它是否是新的。看这。IS6能看到吗?是否是新的?我们发现它不是新的。啊,我们发现它不是新的,所以它打印出来。打印出来你看一下还是5A13是吧,同学们,咱们再看一下客户浏览器端的那个第二次请求,这次请求。这次请求我们看一下他的request,黑的。往下走。
14:01
Request he,请大家看这里。是不是有个叫G3线ID,是不是叫5AE3啊。那说明这一次他第二次给服务器发请求的时候,他是不是把5AE3带给了服务器了。所以人家服务器就能获取到筛选发现,哦,你上一次是我给你分配的5A13,这次又是5A13,这个客户端给我发请求,那我就能知道上一次那个请求和这一次这个请求是同一个人。能听懂吗?哎,就是这样的。所以。所以请问我再刷新,请问他会不会再发cookie,是不是也会啊,也会把这个发过来撬回车。然后我们的服务器是不是就接收到,请问这次会创建新的吗?不会的,他不会创建新的,所以我们再往下走三线,你把这个三线打开,你看一下是不是还是5A13啊,还是这玩意儿。啊,还是这玩意儿,所以你打印出来没问题,还是打。
15:01
所以我们到浏览器上再看一下啊,这次发的请求你看一下request,它里面还是有对吧,5AE3当然response你看一下response黑里面就没有了,因为人家仅仅是第一次创建一个新的,我才会塞给你。是不是啊,就是这样的。好。再来,这是我们第一个说的,我们把它稍微小结一下啊,慢慢来。好,回到这边来。我们回到这边来。这个叫绘画跟踪技术。绘画跟踪技术。第一个。客户端第一次。第一次发请求给。服务器啊,给服务器。服务器。获取获取他获取客户端啊,获取筛选。啊,获取不到。是吧,则创建新的。是不是啊,然后。响应。
16:01
给客户端。是不是,那么下次。下次客户端给服务器发请求时。会。把三线ID发过来啊,带过来。是吧,带给服务器是不是同学们,那么服务器就能获取到了。是吧,那么服务器就判断。啊,就判断。就判断这一次请求和上次某次请求是同一个客户端。从而啊,从而能够区分开。区分开啊,区分开客户端。是吧?同学们尽量区分开,这就是所谓的叫绘画跟踪技术。没问题吧,同学们,这就是所谓的绘画跟踪。那么剩下的这个主要的概念,大家搞清楚之后,剩下的就就比较轻松了。
17:02
啊,我们绘画里面有些常用的API。我们来把它看一下。常用的API。第一个request.get筛选。这是第一个啊,它指的是。获取。当前啊,获取当前的绘画。没有则创建。一个新的辉煌。行吧,同学们好,还有一个方法,request.get session。True。效果和不带参数。啊,参数相同。行吧,同学们参数相同,request.get筛选。False。他指的是什么?他指的是获取当前规划。没有,则返回now。不会创建新的。行不行,同学们他不会创建新的啊,就是这样的,再来拍一些内容。
18:05
等于request.get s啊,这就要不不写吧,直接写吧,三线点get大于D。这个D我忘记是不是大写了啊,忘记了该大ad,我来看一下啊。回到这边来。回到这儿啊。咱们来看一眼,是不是地址小写啊行。加。这个是获取三项ID。是吧,获取三峡跌,这个三峡跌是一大长串字符串,这个字符串是全球唯一码,是不会重复的。如果在全球范围有重复,那就完蛋了,你一点击淘宝的结账,结果,你把人家比尔盖茨那个账单给结了。是吧,那就麻烦大了是吧,这叫获取三项ID。第二个筛选点IS6,咱们刚才看到的。判断当前筛选是否是新的,你第一次给我发请求,我创建的筛选是新的,第二次你再给我访问,它就反过来就是false了,行吗?同学们?啊,还有其他的一些方法,咱们也顺便来看一下。
19:02
我们筛选的,我们筛选的有效时间,筛选会话的有效时间是半个小时。三线点is叫叫点不叫is啊叫。我看一下啊。Get。Maxactive interval这个方法。叫最大的非激活的一个间隔时间。好,把它写在这。这个是什么?这个是session的非。激活间隔时长。默认1800秒。就是半小时。啊,这句话听起来怎么这么别扭啊,非激活间隔时长解释一下,我给大家解释一下,请大家想回忆一下,平时有些时候你上一些比如说银行的网站啊,你登录进去做一些网上银行的一些操作,操作完之后你就不操作了,过了几分钟之后,你再回来,再想操作的时候,他就说会话已失效,请重新登录。
20:05
有见过的吧,啊,就话已失效,你必须要重新登录,就这意思,那说明什么,说明银行的那些网站啊,它的会话的时间,默认它不是半小时,他已经把你改的非常的短,一分钟或者三分钟。什么意思呢?你如果你有超过三分钟,你都不进行操作。我就把你的绘画给失效了。啊,你必须要重新登录。那么默认是半个小时,假设大家想想,我每隔29分钟我就操作一下,每隔29分钟我就和服务集团互动一下,是不是这个三线就一直存在啊。能能听懂我意思吗?啊,就会一直存在,所以这个叫maxactive interval应该能听懂吗。啊叫非激活什么间隔时长,就是你不操作吗?不操作的情况下,如果超过半个小时它就不行了吧。能听懂吗?同学们啊,应该能听懂好,所以说你一直操作,一直操作是不是有可能24小时,48小时,是不是他都都行啊。
21:04
啊,都没问题,好,所以对应的还有一个叫set方法。啊,对应的还有一个set方法,顺手写一下吧。千万不能死记硬背啊,我一直强调API千万不要死记硬背啊,但是你一定要理解好set,就这样的。我们里面还有一些API。还有一些API。点。比如说我们有一个叫active。这个是强制性的,让绘画失效。啊。让绘画立即失效。就比如说我们有个功能叫退出。退出功能,我们就要让绘画立即失效。还有比如说。三先叠。Get great time?
22:02
是不是获取这个绘画的创建时间啊。Last accessed time。上一次最近的一次访问时间呗。哎,是不是同学们最近的一次访问事件?哎,就是这样的,好了,还有其他一些有用的方法,比如说get,咱们这个先不介绍,另外还有两个方法,一个叫set attribute,一个叫get attribute,当然还有一个叫remove,啊,这个也是比较重要的,咱们下一个视频再讲。好,先简单了解一下啊,OK。好了。那么这几个方法我就不再做笔记了,行不行,同学们,反正你点出来就能看到啊,笔记做太多大家也有负担啊,我这边我就不再接着往下写了啊等等等。再来。这是我们绘画跟踪技术里面,我们提到的,筛选咱们所接触到的一些API。
我来说两句