00:00
啊,那么接下来我们就来给大家去讲这个cookie啊,Cookie是个什么东西啊。翻译一下什么东西啊,饼干是吧?啊是饼干是吧?啊但是呢,这个地方你不能叫成饼干是吧,这就是什么一个什么呀,就是我们的状态管理啊,所以说呢啊来我们来给大家说一下,我们现在使用的这个HTTP呢,它是一个无状态的协议。什么叫做无状态?大家知道吗?知不知道什么叫做无状态啊啊,知道什么叫做无状态吗?不知道是吧,给你解释一下哈,呃,怎么去理解这个东西呢?我告诉你哈,呃,比如说像这个先举个例子吧,就是区别一下这个有状态与这个无状态哈,就是呃,像这种发短信啊,现在可能已经没有人发短信了,是吧?那就发微信吧,我微信里面给你发一条消息,我发出去以后我管管不管你收收收到收不到啊,我发出去以后我就不管了吧,对吧,或者说你这样这样来看啊,就是我比如说A要给B发送一条消息,那么就是A先与B连上,连上以后呢,把消息发给B,那么立马这个就断开了。
01:24
他就不需要再去保持这个连接了,然后呢,比如说你还想再发送了,那我A呢,再跟B连上,我再把这个消息给你发过去,那么立马这个状态就又断开了,这叫做无状态的理解了吧,什么叫做有状态的呢?那就是语音啊,视频啊,就是A跟B连上以后,A跟B说了一句话,你在干嘛呢?啪,断开了。能行吗?不行吧,啊,如果你要这么做的话呢,啊,B在跟A连上啊,我在吃饭呢,又断开了啊A又B跟B连上,你在吃什么呢?有状态了,你觉得这样好吗?不好吧?所以说我们就必须得让他们保持这个状态,就是A跟B,比如说是有状态的,那么连上以后呢,它就一直在保持着这个连接,那么A可以跟B说话,B也可以跟A说话,这个状态一直是保持着的,这叫做有状态的。
02:22
明白了吧,那么我们HTTP它是无状态的,比如说这是我的浏览器,这是我的服务端,浏览器向服务端发送一次请求,请求响应结束以后,好,他们两者之间的这个状态就断开了,为什么要断开呢?大家听我讲啊。如果说这是一个有状态的连接,那么问题就会很多,比如说最大的一个问题就是连接的这个限制的这个问题,假如说我的用户量特别特别特别多的情况下。如果说来一个人,我就连上个连接,把这个状态保持住,再来一个人,我又获取个连接,把这个状态保持住,而且这个状态我一直在保持着,没有断开,那么总共我可以给你开100个连接,那么就意味着我同时只能支撑到100个人。
03:13
因为我再给你开不了连接了呀,能明白吧,但如果你们是一个无状态的是什么有什么好处呢?你跟我连上好,我们把这个请求处理完成以后,我就给你断开了,断开以后我这个链接立马就释放了,我就又可以给另外一个用户去用了。明白这个意思吗?对吧,大家去想一下,你们那个,比如说嗯,你们这个都应该都参与过双11是吧,对不对啊,一个剁手的节日啊,是不是啊,有同学参与过吗?参与过是吧?啊,每到双11的时候,我告诉你啊,啊,就是心在滴血的时候啊,对不对啊,我倒是不剁手,但是啊有人会剁我的手是吧?啊啊所以说大家注意啊,就是你大家都想到到这个双11的时候,为什么我举这个双11呢?因为那个实时的一个用户量是超级大的。
04:08
对吧,这个以后你们就知道,你们肯定要去分析相关的这个业务的,因为你们是搞大数据的哈,但是我可以简单跟你说一下,呃,我们就拿这个今年,这个今年我记得应该是每分钟吧,应该是啊,已经达到了十几万的一个成交量吧,好像是哈,大家可以下去我自己看一看,那么每分钟十几万的成交量,也就意味着我在一分钟之内必须要去处理十几万的请求,是这个意思吧,因为你成交量,你成交一单,你最起码得有一次请求,其实不止一次请求,你知道吗?首先这个用户得先查到这个商品,这是一次请求,查到以后呢,我要加入到购物车,又是一次请求,我要进行结算,又是一次请求,最起码成交一单得有个四五次请求,但是十几万单,也就是四五十万次请求也在一分钟之内,我要给你处理完,你想一下,我能一下给你开出四五十万个链接来吗?等不行。
05:06
所以说呢,我们就必须要守护状态的,你跟我连上,跟我说完话以后,我们要断开,断开以后呢,这个连接我要给别人用,如果你还想跟我连,你再跟我连一次,你再获取个连接,连上用完以后断开,把这个释放掉,我要给别人去用,这叫做无状态的,能理解了吗?知道这个概念了吧?OK,那么这个无状态的话,它就是什么呀?就是对于服务器来讲,它就不能去进入浏览器的一个访问状态了,也就是说服务器不能区分两次请求中是否由同一个客户端发出,你想想是不是这个样子的,因为我跟你连一次,说了一句话,我们就断开了,断开以后呢,我也不知道,我知道你是谁,但是你不知道我是谁。能明白这个意思吗?你就想一下,你在访问淘宝的时候,你没有登录的情况下,他知道你是谁吗?不知道,只有你登录了以后,他才能知道你是谁,但是呢,他需要通过别的技术去实现这个东西的啊,一会儿我会跟你说到啊,所以说大家注意啊,因为他不确定你这两次请求是不是由同一个客户端发出,那么这样的话会严重阻碍我们这个外B程序的一个设计,比如说我进行网购的时候,我第一次我买了一条裤子,第二次我买了个手机,第三次呢,我又买了个电脑,因为你这个协疑是无状态的,所以说呢,他就什么呀?哎,他就不能知道用户到底买了什么东西,这个东西他没有给你保持下来,能明白这个意思吧?诶不能给你保证,比如说你在想哈,我把一件商品加到购物车了,然后把这个状态断开了,明白吗?那你说他知道是谁家的购物车吗?
06:45
你再把一个东西加到购物车了,发现,诶,以前加的东西怎么没了呀,因为他不知道上一次是你啊,所以说我们就必须要想办法去维护客户端与这个服务器端之间的这个状态,怎么去维护呢?我们就需要用到我们这个cookie了,理解吧,那么这个cookie它是什么东西呢?实质上就是服务器保存到浏览器上的一段信息。
07:09
浏览器有了酷之后呢,诶,它就可以与我们这个服务器做一个状态的保持了,来我给你解释它的这个机制啊,是什么意思呢?听我说这是我的浏览器啊,我来这里面给大家去说啊,找到我的画图。好,我来跟你说啊,这是我的浏览器,那么这是我的服务器,假如说诶,我跟他连一次,然后我们就连上,响应完成以后,这就断开了,下一次我再连的时候,他知道你是谁吗?不知道那人的用户太多了,是不是啊,但是我可以这么做,怎么做呢?大家来听我听我说。我先跟他连一次,然后呢,服务器知道这个请求来了以后呢,要给他做响应,但是响应的时候呢,他会把一部分数据呢,给你发送到这个浏览器端,比如说我发送了个A吧,就随便啊讲了个讲,举个例子,下一次浏览器再去访问服务器的时候呢,他要把这个A呢带过去,那么对于服务器端来讲,你给人家发送的A,他再把这个A给到你的时候,服务器是不是就知道你是谁了呀,就相当于我们之间有了一条什么呀,这个这个暗语了,是吧?啊我跟你说天王盖地股是吧?啊就是知道是什么意思了,对不对啊,就是通过这种状态呢来去,呃,通过这种机制呢,来给你维护这个状态的,那么呃,服务器再给你返回的时候呢,他还需要把这个数据给你返回回来,你浏览器再次返问的时候呢,你还要把这个数据带过去,那么对于服务器来讲,他就知道你是谁了。
08:49
嗯。明白这个意思了吧,这就是我们的cookie这个机制啊,来吧,那我们把这个介绍了以后呢,我们来说一下,使用cookie的话呢,我们最常用的一个用途呢,就是比如说购物车,就是我们这个网上商城里面的这个像京东淘宝这种购物车,我们可以通过cookie来做,但是大家注意,现在大部分的网站已经不用使用cookie来去做了,听懂了吧?哎,大部分的网站已经不用使用cookie来做,以前的话可能会用cookie,但现在已经不怎么会用它了,因为它有一些这个限制,有一些不好的地方,明白吧?哎,大部分的网站已经不用他去做了啊,现在基本上的这个购物车的一个状态呢,还是直接就存数据库了啊,大部分是直接存数据库了,因为这样的话呢,我们这个状态持久的,就是状态更持久一点啊,然后呢啊,用户登录状态的保持,这个也是我们需要去说的啊,他就能给你做一个用户登录状态的一个保持。
09:44
啊,比如说我登录到一个网站上面呢,然后呢,啊,我切换到另外一个页面的时候,那我要发送别的请求,但是呢,我来到这个网站的时候呢,你能不能把我这个登录状态给我从这个地方保持到这个地方啊对吧,因为这是不同的请求,所以说呢,我们也需要通过这个cookie来去做一个登录状态的一个保持。
10:04
啊啊,那么这是我们这个cookie的一个基本的用途啊,那么说完这个以后呢,再来给大家去说一下这个cookie的一个限制,就是为什么cookie我们不推荐大家去使用的啊,不是说不推荐使用啊,就是我不推荐你使用这个cookie呢,去完成一些具体的功能理解吧,因为它有些限制,比如说它是作为请求和响应报文来发送的,那么增加了我们的数据传输量,也就增加了你的网络流量,也就影响了你的传输效率。另外一个它是铭文传输的安全性极差,就是你你们之间说了什么悄悄话我都能看得到啊。再一个浏览器对cookie有限制,使用上有局限,就是对于cookie的这个大小来讲,浏览器都是有限制的,你不能无限制的去使用。啊,我记得大概是在4KB左右,如果超过了4KB就不行了,所以说它是有一定的这个限制的啊,我们这个也要提前的知道一下啊,那么把这些给大家说完以后呢,接下来我们就具体的来给大家去演示一下这个cookie的一个简单使用,明白了吗?啊,我们就来看一看这个cookie啊。
我来说两句