当前位置: 首页 > 原理解释

php cookie原理图解-PHP 原理图解

把 Cookie 想象成一张被贴在浏览器里的便利贴,而不是啥高高在上的数据库记录。当你打开网页,浏览器实际上是每一次请求一个短暂但忠诚的访客。
这张便利贴贴在哪张网页上,拍板了那条“个人信息”能走多远,还有多久能被人看到。 想象你在网吧玩旧游戏,管理员把一张手写的纸条塞进你电脑屏幕右上角的角落。
这张纸条上写着你刚刚玩的游戏等级、刚刚点的奶茶名字,就连你刚刚偷偷改过的游戏设置。
要是你关掉网页再开回来,那张纸条还在右上角吗?自然,要不就有人专门帮你清除浏览历史。但要是有人故意把屏幕右上角给擦掉,那你刚刚玩的所有游戏记录、选的衣服、就连刚刚点的那个链接,瞬间就凭空消亡了。
这就是 Cookie 的核心——它是一张只归于你的“数字便利贴”,有得贴,也有被擦掉的风险。 这张便利贴的“贴法”实际上贼随意。你输入网址,浏览器会悄悄问后端服务器的管理员:“嘿,我刚刚在哪个页面点了这个‘保存’按钮,把啥信息给存进去了吗?”服务器会大声回答:“存进去了,就在你刚刚访问的那个文件里。”浏览器听话,抓取这些数据,然后拍着胸脯说:“那我这就把这张便利贴上墙。” 这时候,便利贴就贴在了浏览器里最显眼的位置——一般是右下角的浏览器图标附近。浏览器当作“墙”是电脑屏幕的壁纸,它想:嘿,只要壁纸没被换,我下次刷新页面,这便利贴肯定还在,数据肯定还在。便,浏览器启动了一场名为“自动填充”的狂欢。 你输入网址,浏览器疯狂向后端索要“数据清单”。后端乐坏了,立马把刚刚保存的昵称、头像、就连浏览器里 install 的插件名单都打包好,扔回给浏览器,说:“瞧这多顺眼!下次你再看我的网站,我这神仙服务自动挂上,你就不用打字了,直接看风景。”浏览器还是那个浏览器,它把数据拿回来,把这张便利贴上墙,然后得意洋洋地告诉你:“看,我的浏览器是不是如此智慧,连我的名字都记住了?” 这就有了数据泄露的风险。
只要有人能把你这张便利贴看出来,要么把这张便利贴拿走,你的隐私就全完了。
要是这张便利贴被人窃取,哪怕你换了电脑,换个浏览器,就连换个系统,只要这张便利贴还在,黑客就能把你刚刚访问过的所有网站、关掉过的标签页、就连你刚刚输入的密码都挖出来。 为了防范这种“偷看”,浏览器做出了一个看似无奈实则精妙的设计。它启动了一种叫做“保险限制”的自我保护机制。 比如你访问一个陌生人网站,浏览器心想:“这人是哪位?我不认识,万一他拿我这张便利贴,我就倒霉了!”便浏览器会问:“嘿,你确定要从我这拿走数据吗?我别看在这,但我只是个工具,不是我本人啊。并且我还记得我刚刚在哪个网站停留过,我还能报警。”此时机器人就会大吼大叫,把你的浏览器图标设为红叉,就连直接把你从屏幕上踢出去,让你去用另一个浏览器。 这就好比你在网吧玩游戏,有个黑客拿着你的电脑屏幕去外面看,要么黑客把黑客本偷偷塞进你的屏幕角落里,你挺难察觉。浏览器立马把你从游戏里拽出来,让你用另一个浏览器去玩游戏。
这看似是限制,实际上是一种保护,防止你在不知情的情况下把数据给了陌生人。 要是你实在忍不住想查看数据(比如为了调试),浏览器会给你一个小小的按钮,叫“查看隐藏界面”。但这玩意儿不是让你随意乱点,它有个限制。
比如你目前访问的是 Google,你点进去,浏览器会告诉你:“我能够给你看本地缓存的数据,但要是你点了那个自定义标签,要么把标签页拖走,我就没办法了,要不就你手动去浏览器设置里确认。”这就像是你把便利贴贴在墙上的某样东西上,你点了一下那个东西,墙上的便利贴就自动变色要么变小了,但你点别的,墙上的数据就不见了。 这就把数据泄露的风险降到了最低。出于浏览器每次打开新页面,都会重新“贴”一次便利贴。你访问了百度,它把你的信息贴在百度上;你关闭了百度,浏览器里的这张便利贴自动擦掉了,你再去访问淘宝,浏览器会重新贴一张新的便利贴,就连把刚刚那张淘宝上的名字都擦掉了。 这种机制实际上贼消耗性能。浏览器每打开一次新页面,就要跑几十次请求去问后端服务器,去确认刚刚在哪个页面放了啥数据。
要是后端管理慢,要么服务器挂了,浏览器可能会出于没数据而反复尝试,就连有点“抓狂”。 这就好比你在家里贴便利贴,贴了又贴,贴了又拿掉。
这动作别看不断,但最终结局是墙上贴的全是新的便利贴,上面的数据都是最新的。至于那会儿贴过但被拿掉的数据,就彻底不存有了。 大量人揪心浏览器会“抓狂”,实际上不然。浏览器只是不断刷新、不断确认,它的能量就像瀑布一样,源源不断地向服务器发送请求。但要是后端服务器处理本事不足,要么网络环境极差,浏览器可能会出于请求没响应而害得页面卡顿,要么就连出现“页面空白”的情况,出于浏览器等不到服务器的回答,就老老实实把刚刚贴上去的数据给擦掉了。 为了适应各种复杂的网络环境,浏览器还发明白一些“偷懒”的捷径。
比如你访问一个贼慢的网站,浏览器会问:“为啥不给我数据?”服务器说:“哎呀,我的网忒慢,哪位给我数据都得等半天,要不就不给你了吧?”浏览器立马执行了“跳过数据”的指令,直接把你刚刚的便利贴给擦掉。 这种“跳过数据”的操作实际上挺悬。出于它让你当作你的隐私保险了,结局一切良好。等到你再次访问时,浏览器发现刚刚那会儿并没有在后方服务器留下任何痕迹,便它又拼命地、毫无节制地向后端发起请求,试图把刚刚擦掉的数据求回来。
这就像你开车时把油门踩死,当作车停下了,结局车子启动原地打滑,还得不断踩油门去追那辆已经消亡的小车。 再比如,要是你访问了一个没有任何保护机制的网站,要么你手速忒快,浏览器还没来得及弹出“保险警告”的对话框,你就点开了“查看隐藏界面”要么手动拖动了标签页,结局浏览器还没来得及启动“保护模式”,你的数据就已经泄露了。 为了防止这种情况,浏览器还引入了一个叫做“工夫限制”的概念。假设用户访问了一个站点,浏览器默认这块便利贴能存有 30 分钟。
要是是 45 分钟,浏览器就会再次提醒:“嘿,你刚刚访问的这个页面已经 15 分钟了,数据快过期了,要不要我把这张便利贴擦掉?”要是是 60 分钟,浏览器就会直接执行擦除,并且这次擦除是彻底的,你再去访问其他网站,之前的数据就彻底看不见了。 这就像你贴了一张便利贴在墙上,你想想,这贴子能贴多久?要是贴忒久,墙上的灰尘就堆得高了,你下次来,看到的不是你的名字,而是你刚刚爬上去爬下来的痕迹。浏览器用“过期工夫”管理这张便利贴,确保你每次打开网页时,看到的都是干净利落、最新的数据。 最终,你会发现浏览器实际上是个挺“脏”的家伙。为了维护这张便利贴,它需求不断抓取数据,存数据,就连去问后端服务器。
要是后端服务器挂了,要么网络断了, 브라우저 就会陷入一种“断奶”状态,它目前连自己的名字都记不清了,就连可能把刚刚贴上去的所有数据都擦掉,出于它不知道哪去问。 为了适应各种情况,浏览器会尝试通过“缓存服务器”来辅助。它会在本地建立一个小的数据库,把刚刚从后端获取过的数据存进去,下次访问直接从中读取,不用再去问后端服务器了。
这就像你在家里贴便利贴,要是erver 坏了,你就把那张便利贴贴到家里的相册里,下次来直接看相册就行,不用再去问管理员了。但这也有风险,要是相册里放错了,要么被其他人看了,你的数据就彻底不保险了。 总体来说,Cookie 就像一张被贴在浏览器上的便利贴,它记录了你在网上做过的一切,但与此同时也记录了你对它失信的所有可能。浏览器为了让你走得安心,不断帮你擦掉过期的便利贴,也时刻提醒你:只要便利贴还在,你的数据就随时可能被人看到。
这中间那个“擦除”的过程,就是浏览器最古老、最无奈,却又最智慧的一项自我保护技术。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站