这个月初,其实广告界发生了一件大事,狗狗,这个世界上最大的互联网公司正式宣布,明年会在 qq 浏览器上禁用所有的第三方 gucci。 哎,等会禁用第三方 gucci, 为啥受影响的是广告阶呢?是到时候网站上不会再出现小广告了吗?嗯,理想很美好,很现实。 大家好,我是差评君,屏幕前的差友,有多少人是用的苹果设备看这个视频的?不知道你们有没有遇到过这种事情,就是当你打开某些网站时,突然 提示你要开启第三方 qq, 还能正常登录。有些人可能知道这个好像是和广告有些关系的,但具体是什么关系却不是非常清楚。那我们来好好捋一捋。 copy 在发明之初跟广告一点关系都没有,纯粹是为了帮助服务器记住网页上用户的状态信息,同时记录用户的浏览 活动。没有 q q 之前,人们只能浏览近台网页,因为网站根本记不住是谁跟网页做请求。有了 q k 后,你就能给网页做交互了,比如将商品添加购物车,要求网站在一定期限内面登录等等。有正在浏览的网站创建的 q p, 被称为第一方 q p 这个东西非常重要,如果你要是头铁把这种第一方酷比给禁止了,那我只能祝你上网顺利了,因为网站上所有的交互功能都在你这一个简单的操作中被摧毁了。不信你现在找找浏览器的设置,选择阻止所有的酷比,再刷新一下网页, 就懂我在说什么了。看到这,有些人是不是又想问,那这 gucci 跟广告推荐有什么关系啊?哎,这个问题问的好,要说明白这件事,我们得引入一个概念,第三方 gucci。 那什么是第三方 gucci 呢?我们就拿空物浏览器来举例子吧。我们先随便就用一个网站,然后点击网页旁边的这个小 就能看到这些信息,发现问题没有。在使用的酷 t 中,除了由我们本来就是访问的 cnbax 到 cmam 创建的之外,还有来自其他一名创建的,而这类由你返回的王者之外的一名创建的酷 t 就被称作为第三方酷 p。 是不是很奇怪,我们明明访问的是 cm 贝塔到 km 这个网址的, 为什么还会创建出三个百度盗控运营下的 gucci 呢?按照我之前说的 qp 创建方式,我访问你的服务器才会创建 gucci, 但我又没有进百度点 com, 你怎么就给我创建 gucci 呢?这个网站被黑了,难道还说差评?你讲错了? no, 都不是。这 网站期没有被黑,我也没有讲错。那么唯一的重点自然是你通过进入 cm 贝塔刀亢这个网站访问了百度刀亢的服务器了。咱们按一下 f 十二,进入浏览器的开发者模式中,仔细查看一下这个网站的代码。哎,答案找到了。
粉丝364.9万获赞4689.3万

库可以是我们前段编程中经常使用到的一个概念,我们可以使用库,可以利用浏览器来帮助我们存放用户的相关的状态信息,保存用户已经做了些什么样的事情。 那么 q k 的工作原理到底是什么? q k 的限制又是什么?而筛性是我们在服务器端所维护的绘画状态,那么筛性又怎样与酷 k 关联起来呢?这节课我们将介绍 q k 与筛性的相关的使用。 好,我们先来看看 coke 是什么? coke 是在 fc 六二六五规范中有定义,那么它其实是一个 spp 的状态管理机制, 那么我们就他的使用的流程上来讲啊,是这样的,那么库可以是保存在客户端的,他是由浏览器维护的,但是他的生存是 是由服务器来生成的,那么它的目的是来表示我们应用的状态,就是用户已经做了些什么样的事情。那么库克也是一个 suv 的头部啊,它可以存放在内存或者磁盘中。 那么服务器端生成了 cook 以后呢,是通过响应来反馈的,比如在右图中,那么 client 第一次访问是没有 cook 的,那么 serve 呢,就会在一个响应头部叫 set cook 中去传递一个 k value 给 我们的客户端,而我们客户端呢,就收到了这样的 ky 了,以后他会保存在浏览器中。当然我们可以传递多个赛的库 k 之段,每个赛的库 k 后面会有一个 k y, 而客户端得到了这个 q k 以后呢,后续的请求,我们无论只要在访问这个域名下的所有的请求,都会自动的把我们收到的 q k 中的 k y 六携带进来,以 q k 这个 high 的头部把它传递发送给死亡,那么这就是库 k, 那么我们具体来看一看库 k 与赛的库 k 这两个头部的定义是怎样的。比如我们先来看下面的这个服务器端向客户端发送的赛的库 k, 他一次只能传递一个内幕外流这样的一个名职,对,就是一个 ky 六,那么一个响应中可以含多个头部,但是一个塞的库 k 在 a d n f 中呢?到底是怎样定义的呢?我们来看一下。首先是塞的库 k 冒号加一个 s p 空格, 那么后面是我们的塞得库克斯俊,这是一所有的 igb 头部都是一样的,那么重点在于塞得库克斯俊啊。 我们来看一下塞的酷威奇骏,它包含第一部分叫 cookie pear, cookie pear 是什么呢?就是后面我们写的 cookie name 加 cookie value 就是一个民族队,那民族队后面呢?它会有一个叫 cookie iv, 就是 h built, 就是我们的属性,属性呢,可以有零个或者多个,那多个属性之间呢?以分号进行分隔, 他是用来描述我们前面的 cookie pair 的,我们在后面再详细来讲 cookie pair 的这些属性。我们先来看一下,如果 cookie 拿到了这样的一个 cookie pair, 那么浏览器中已经保存下了 cookie pair 了,那么在发起请求的时候呢,就 可以通过 cookie 来发送出去了。但是 cookie 与塞的库可以不一样,塞的库可以,我们可能有很多塞的库可以头部,但是库可以只需要有一个头部就可以了,因为这个库可以头部中我可以存放多个 name value 的这样的一个 cookie pill, 为什么呢?因为我们的 cookie head 中,在 abm 中的 d e 非常明确的说了, cookie 后面是一个 ow s, 一个可选的一个空格,后面加上 cookie stream, 哎, cookie stream 到底是怎样的呢?就是 cookie pie, 至少一个库克佩尔,以及后面有零过多个库克佩尔,就是我们可以有多个库克佩尔,多个扑克佩尔之间是以分号进行分隔的,那每个库克佩尔也是以内部外六的形式,那么下面我们来看一个简单的例子。 好,接下来我们做个演示,这个演示是以我的个人网站,它是一个 water press 搭建的个人站点,我们登 目他开始,那么登录他的时候呢?首先我按 ctrl 秀的 i 把我们 nitwook 面板打开, notwook 面板打开以后,我们注意要把 preserve log 这个选项勾选住,这样的话呢,因为我们登录成功以后会返回一个三零二重定音响,以防止这个包我们看不到,所以我们加入 preserved log, 那么这个时候我去输入我的登录密码, 输入完登录密码以后呢,我们点击登录,那么这个时候我们看到了后面的请求,首先我们来看第一个登录请求,那么第一个登录请求返回的是三零二,那么这个时候呢,我们可以注意看到他的 response hat 中有很多塞的 cookie, 那么这些每一个塞的库 k 头部呢?对应的是一个库 k 片,就是一个 k y 的名字,对,比如说这个名 名字叫 the water plus test cookie, 那么我们还有很多的这样赛的 cookie, 这个赛的 cookie 呢?我们在瑞士胖死呃,人家的 work 在瑞士胖子里面也可以看到, 那我们可以看到这里返回的库 k, 那么一共有这么六个库 k, 那么我们后面的请求呢,都会携带这些库 k, 比如我们 w c l 的命,这个 u i l 访问的时候,我们可以看到他的这个 request 的 最快死了。我们的请求中的库克中呢,带入了很多个民族队,其中我们新增的沃尔普莱斯,泰式的库克,以及后面我们加入的这几个库克都已经添加到请求中了。 好,我们回到 ppt 中,我们再来看一看赛的 cookie 中只有一个 cook pill, 然后呢,可以有很多个描述我们 qq 片的 cookie, lv 就是我们的属性,那么这个可选属性有哪些呢?我们来看一看。那么 cookie lv 在 abn f 中的定义中有主要有以下六种,我们先看第一种 expire, expire 呢,就是告诉这个 cookie 可以使用多久, 那我们会明确的指指定一个日期,超过这个日期时间点以后,这个枯魁就应该要作废,这个要求我们浏览器必须把这个枯魁 清除掉。那么第二个呢?这是 max age, 我是以一个定时器的方式告诉浏览器经过多少秒以后,那这里这个秒错不能是零,所以我们这里写的很清楚,是一个 nine zero digit, 是一个使劲字的方式啊。 那么如果 max a 级和 expire 呢?同时存在的情况下呢,我们将以 max a 级为主,因为它的优先级会更高。我们再来看第三个独魅 av, 独魅 av 呢,只是告诉我们这个酷给可以用于哪些域名,因为我可能有很多子域名 默认呢,是告诉我只能访问我的当前域名,但是我可以说这个库克也可以访问我其他的一些子域名或者其他的域名,也可以使用我们这个当前的库克。 那么 pass 呢?则是告诉哪些路径下才能使用这个 cookie, 因为后面我们可能会定义只有访问比如说 wpl 的命这个页面,或者访问某一些 css 或者加法式 cup 的时候, 你才能使用我这个 gucci, 那么我们只 pass 来定义我们后续的 uri 中的路径。那么 seiku av 呢?就是来定义我是否只能使用 t 二 s s 拍照,就是我们来 gps 的时候才能使用 pk, 如果我们加入了 seco 这个属性,那就是说要求必须使用 htbs 的时候 才能使用我们的 cookie。 如果我们加了一个 hp only 呢?他倒不是表示只能使用 suvp, 那跟这个是没有关系的,他表示的是不能使用加瓦斯库伯的,像 document cucky 或者 xmo h v 筷子,就是我们阿加克斯请求,或者我们的瑞克斯埃比亚访问我们的 cookie, 不能使用这些方式访问 cookie。 好,我们现在回到我们第一个请求 w 跟应我们登录的时候呢,返回了我们很多的赛乐库 k, 那么比如说我们看第一个赛乐库 k, 那么它它的 name 叫沃特 plus test 库 k, 那么这里它的属性 pass 就描述的很清楚,这里大家都可以用啊,我,我的 pass tese cook, 因为他 pass。 是啊,跟路径 好,那我们来看第二个枯萎,第二个枯萎中呢?呃,就用 pace 等于 wp 款探的普拉格 ins, 也就是说只有这个 ul 其实的才能去访问我们这个 ky 六,那么 hp only 就是说这个 cookie 呢?使用佳乐斯 kill 或者价格词是不能去读取到我们的这个 cookie 的,但到后面我们还有这两个 cookie 其实是完全一致的, 那么只是把路径做了些变换,那比如说这个塞的库 k, 我们这里定义了 xpaya 和麦克赛意见,那么他的过期时间。 好,然后我们再来看一下啊, cook 使用用什么限制呢?我们先来看一下 f c 规范中对浏览器使用 cook 的要求,因为在瑞士的架构中呢,我们有很多个不同场上的 浏览器,而且这些浏览器呢,会以很多种不同的版本同时出现。所以我们先看 rc 规范他的要求,他要求呢,每条 q k 的长度,浏览器至少要支持他达到四 k b 以上。 那么每条 cookie 是什么意思呢?就是我们的 cookie pierre nemo value 以及描述他的属性的总长度。 比如说他只能使用 igbs 访问,或者说啊,不能用加瓦斯 cable 直接读取到,或者他的这个过期时间等等。这是一条哭 k 的长度, 我们请求中的那个库可以嗨的中是可以含有多个库,可以的,这个不是他的限制范围。第二个是呢, fc 规范要求每个浏览器在每个域名下制裁 要支持五十个库克,那么 fc 规范呢,要求一个浏览器至少要支持三千个库克啊,这是 fc 冠对浏览器使用库克的一个要求。而我们实际上在代理服务器中传输库克的时候呢,也会有限制,因为库克是放在我们家 hb 头部的, 我们的很多代理服务器可能会限制 igb 的头部的长度为四 k 八 k, 那么像 mx 默认是三十二 k, 所以呢,生成 q k 的 orange seven 就是我们的原服务器,应当尽量减少每个 q k 的大小, 所以库可以在协议设计上的问题呢,也是一样的,因为库可以会被附加在后续的每一个 icb 请求中,所以呢,无形中是增加了我们的传输流量的,我们的网络效率是在下降的。第二呢,是由于我们的库可以在 h 请求 是名人传递的,所以他安全性是有问题的。当然,如果我们使用 t 二 s, s, s l 以后呢,那么这些所有的应用层消息都是加密过的,就没有这个问题了。第三个呢,是我们的库汇的大小不硬超过四 k b, 因为我们的 fc 规范中呢,只是对各个浏览器要求他们要能支持四 kb, 但是如果大于四 kb 以后呢,可能有些浏览器处理就要出现问题,或者我们的库可以在代理服务器的传输中可能会出现问题, 所以如果我们使用库可以来存储非常复杂的结构化的数据,就有可能来说不够用了。

面试的时候啊,差不多有一半的人说不清楚 cocy 是什么。 cocy 是一小段存储在浏览器端的文本,数据大小不超过四 kb, 有一个名称和一个值, 还有其他几个可选的属性组成,包括有效期、安全性、使用范围等。某些网站采用三审机制识别用户的身份,通常也会将三审 id 存储在 gucci 中。发送网络请求的时候, gucci 会在请求投币一起发送给服务器官。 常见的错误有,第一个错误呢,就是说关闭了浏览器,哭皮就失效了,这是错误的。第二呢,就是不知道哭皮是存储在浏览器端的。 第三呢,就是不知道 gucci 的容量限制是多少。第四,不清楚 gucci 和筛审之间的关系。第五,不知道 gucci 和域名协议端口之间的关系。

好,我们接着来。在计算机世界里,假设你用浏览器登录一个网站,登录完后服务器就会开一个 session, 然后随机一个 session id 发回去给浏览器。浏览器下次访问该网站的任何一个网页的时候,就会把这个 session id 放在 cookie 里发给服务器。 这个 session id 你可以理解为上节视频所说的会员号, cookie 理解为会员卡, 服务器收到后就会看看内存里有没有这么一个 session, 如果有就让他浏览,如果没有就需要重新登录了。 好注意啊,由于大型网站都有很多服务器,假设浏览器每次访问的是不同的服务器,那么这个 section 就没法查了。当然,你可以做一个统一的专门 存储筛选的服务器,来给所有服务器提供筛选产生服务,但这样会存在筛选服务器打点失效的问题。 但如果把 session 服务器做成一个集群呢?那成本和效率都是一个麻烦事。好, 偷啃,很好,解决了这些问题,我们再来假设浏览器登录了服务器后,我们提供一个偷啃给浏览器,下次浏览器访问一任何一个服务器的时候,只需要提供这个偷啃就可以了。 这个 token 就是上节视频中所说的签过名的会员卡,这个 token 是经过服务器签名的,任何一个服务器都能认出这个签名,这有点像古代打仗里面的令牌,这就是为什么 token 被翻译成令牌的原因。这一 服务器怎么利用数字签名制作这个 token, 收到后又怎么识别这个 token? 等以后我们有机会再讲讲网络安全的知识吧!

欢迎大家来到丽丝说英语,今天我们来看这样一道问题,有同学问说 cookie 啊, c o o k i e 这个单词是什么意思?那今天呢,我们一起来看一下吧。 首先呢, cooky 这个单词呢,有曲奇的意思啊,是一种饼干,曲奇饼干,当然了,这个单词呢,还有像我们的精明强干的人啊,这个人很精明啊,很能干,能力很强啊,这是我们的 cooky 的第二意思, 库克呢,还有一个意思呢,是我们在计算机行业这种领域当中,有一个网络英语,它叫做网络饼干,什么意思呢?也就是跟计算机有关的啊,在网络上某个人或者是某一个,那有可能是在网络上某一个人给我们发给给网这个, 那中央处理器这里边发了什么什么信息啊?是一种互联网电脑当中的一种专业的这种用语,用语,我们叫 cookie 啊, cookie, 所以呢,如果表示娶妻 饼干的话,那么我们经常见到这种 cookies, 对吧? cookies, 曲奇饼干啊,我说啊,只有五块饼干了啊, there are only five cookies left 那仅仅剩下了五块饼干。 以上呢,就是我们 cooky 这个单词的用法以及他的汉语意思,你学会了吧?好,感谢大家观看,如果你也喜欢类似视频的话,请多多点赞留言关注分享本视频,拜拜!

gucci 是浏览器访问服务器,之后呢,服务器返回给浏览器的一段数据,浏览器需要保存这段数据,之后每次访问服务器的时候呢,都需要带上他。 gucci 的主要作用呢有两个,第一个呢是用户认证,第二个呢是进入用户的历史保证金。

对于服务器来说,本质上是没有办法区分浏览器谁是谁。嗯,因为在他看来,访问同一个 url 的 浏览器, 需要返回给他们的报文,就应该是一模一样的。这就是 http 协议无状态的特性,每一个访问者想要看到或者操作独属于自己的数据,就需要给每一个客户端分发特殊标识。 cason, 顾名思义,绘画就是让浏览器与服务器之间的连接能够拥有绘画状态的管理。 在我看来, cason 不是 指某一种技术,而是一种架构设计,一种范式标准设计,或者说是一种流程设计。 cason 通过浏览器与服务器的协助,让无状态的 http 请求间接的变得有状态,这其中的核心流程就是依赖于 cookie 技术实现的。如果你对 cookie 有 兴趣,可以去我的主页找到之前我讲 cookie 的 视频。 session 的 数据通常是存储在服务器上的,如果是分布式系统环境中,则需要一个类似统一认证中心的模块,仅由他一人来负责 session id 的 分发和管理,在存储方式上并没有任何限制。由于 session 的 业务特性,要求非常高效的简单读写, 但又对可信要求很低,几乎并不担心数据的丢失。基于以上特点,通常是放在缓存当中,例如内存、本地硬盘、瑞迪斯等。 比如 php 自带的 csi 模块,默认把 csi 数据放在本地硬盘的临时文件中。一方面是本地硬盘延迟极低,如果是固态硬盘,加持效能还会更高。 当浏览器第一次访问 web 服务器时,没有携带任何 cookie 信息,服务器会创建一个局,唯一的 session id 保存在内存数据库或者是 readis 等缓存当中,并为该 session id 设置一个有效期, 比如可能是十个小时过期,服务器把刚才创建的 session id 通过响应豹纹的首部 set cookie 发送给浏览器,根据具体业务需求,也可以设置这个 cookie 在 浏览器上的过期时间。接收到 set cookie 之后,浏览器就会把该 session id 保存在本地。 后续的每次请求,浏览器都会通过豹纹首部的 cookie 把 session id 一 同发送给服务器。比如这是用户 a 发起登录操作,提交了账号密码和 session id, 服务器对账号密码进行验证,如果验证通过了,就把用户 a 和浏览器的 session id 做一个绘画的关联操作。设置用户 a 是 已登录状态,之后用户 a 以该 session id 访问服务器时,由于刚才的绘画关联,服务器就知道是用户 a 的 操作, 比如发表评论,并且在响应报文中能够返回独属于用户 a 的 数据。例如用户 a 设置个人爱好科幻电影,那么就推荐赢亿杀手给他, 用户必设置个人爱好是战争题材,那么就会推荐黑鹰坠落给他,他们俩彼此看到的内容都独属于他们自己。前面我们提到,服务器会给设置一个有效期,假设某设置 id 过期了,或者是用户主动发起退出, 其实退出本质上也可以理解为主动过期,服务器会清除该 session id 与用户 a 的 所有绘画关联数据,那么后续用户 a 发起的任何请求,服务器都可能返回失败, 因为之前的 session id 已经失效了。服务器分发了新的 session id 给浏览器,但是用户 a 没有重新登录去建立新的绘画关联,所以用户 a 仍然是未登录状态。 这是一张 section 和 gucci 的 区别对比图,大家可以看一下。以上便是今天的分享, 如果你喜欢胖张我的视频,请点赞和关注我,我会经常分享一些关于开发者的内容,欢迎大家在评论区指出我的错误,也可以私信告诉我你的想法。