博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie 小知识
阅读量:6843 次
发布时间:2019-06-26

本文共 1978 字,大约阅读时间需要 6 分钟。

Cookie 的含义

Cookie(复数形态Cookies),中文名称为“小型文字档案”或“小甜饼”

指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。是网景公司的前雇员卢·蒙特利在1993年3月的发明[2]。

Cookie 的分类

  • 内存Cookie:

    内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。

  • 硬盘Cookie:

    硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。

  • 所以,按存在时间,可分为非持久Cookie和持久Cookie。

Cookie 的用途

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。

那么,怎么理解它的 **无状态 **呢?

举个例子:

当用户登录某个网站的时候,它会提示 “是否保存账号密码?”,如果选择是,那么下一次选择同一个网站的时候就不用再次输入账号密码了。

这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

这时候理解 无状态,就好多了,因为每次打开浏览器访问同一个网站的时候,它都认为是第一次访问,然后要输入账号密码设置相关信息啥的,他不知道你是【熟人】而无法免去一些繁杂的程序,而 Cookie 的出现就是帮助它 【记住你】,下一次访问相同的网站的时候就可以走 “快速通道” 啦~

Cookie 的智能识别

如果在一台计算机中安装多个浏览器,每个浏览器都会以独立的空间存放Cookie。因为Cookie中不但可以确认用户信息,还能包含计算机和浏览器的信息。

所以一个用户使用不同的浏览器登录或者用不同的计算机登录,都会得到不同的Cookie信息,另一方面,对于在同一台计算机上使用同一浏览器的多用户群,Cookie不会区分他们的身份,除非他们使用不同的用户名登录。

Cookie 的不足

  1. 传输臃肿:Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
  2. 安全性:由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非用HTTPS。
  3. 大小限制:Cookie的大小限制在4KB左右,对于复杂的存储需求来说是不够用的。

Cookie 在浏览器的位置

Cookie 的风险

虽然Cookies没有中电脑病毒那么危险,但它仍包含了一些敏感讯息:用户名、电脑名、使用的浏览器和曾经访问的网站。用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候。

这并非危言耸听,跨网站指令码(Cross site scripting)可以达到此目的。在受到跨网站指令码攻击时,Cookie盗贼和Cookie毒药将窃取内容。一旦Cookie落入攻击者手中,它将会重现其价值。

  • Cookie盗贼:搜集用户Cookie并发给攻击者的黑客,攻击者将利用Cookie讯息通过合法手段进入用户帐户。
  • Cookie投毒:一般认为,Cookie在储存和传回服务器期间没有被修改过,而攻击者会在Cookie送回服务器之前对其进行修改,达到自己的目的。例如,在一个购物网站的Cookie中包含了顾客应付的款项,攻击者将该值改小,达到少付款的目的。

Cookie 的结构

类似于 [ key: value ] 的结构。如图:

或者在控制台输入 console.log(document.cookie) 也可以看到 Cookie 信息。

Cookie 的特点

  1. 服务器通过 Set-Cookie 响应头设置 Cookie
  2. 浏览器得到 Cookie 之后,每次请求都要带上 Cookie
  3. 服务器读取 Cookie 就知道登录用户的信息(email)

小结

用自己的话来理解 Cookie,可以举个例子说明:

同学A去公园,一开始他去的时候,进去和出来都没有人认识他,和普通人一样,互不干扰,没有联系,这就是最初的 【无状态】

那么,为了更好的识别游客的身份,公园开始改革,需要游客凭门票入园,游客的身份信息明文写在门票上,然后入园的时候给门卫检查许可后入园,而这个 【门票】 的比喻,就是我们所说的Cookie 。

Cookie 的优点好比这张门票,上面记录了用户的身份信息,同时门票的使用期限和地点耶限定在一定的范围内。

Cookie 最大的缺点也可以通过门票的比喻可以看到,因为是明文,用户可以自己修改核心信息,以达到非法的目的。泄露了用户隐私的同时也损坏了公园的利益。

参考资料 :

  • 推荐阅读
  • 推荐阅读

转载地址:http://vpdul.baihongyu.com/

你可能感兴趣的文章
《拥抱变化——社交网络时代的企业转型之道》一找准组织目标和企业文化
查看>>
《Arduino奇妙之旅:智能车趣味制作天龙八步》一3.2 构建小发明
查看>>
《Cisco安全防火墙服务模块(FWSM)解决方案》——第2章防火墙服务模块概述
查看>>
Go语言项目(kingshard)性能优化实例剖析
查看>>
安全预警:ImageMagick 图象处理软件存在远程代码执行(CVE-2016-3714)
查看>>
《ANSYS Workbench 14有限元分析自学手册》——2.5 体操作
查看>>
《交互式程序设计 第2版》一第1章 交互设计导论
查看>>
ARM拟将ARM核心置入未来的Fusion APU中
查看>>
3分钟参与阿里云《金融行业云上信任报告》调查问卷,98%的几率拿到代金券
查看>>
《C语言编程魔法书:基于C11标准》——2.9 本章小结
查看>>
《移动数据挖掘》—— 1.4 本书简介
查看>>
菲尔兹奖得主维拉尼:七个点子帮你找到科研灵感
查看>>
《C语言程序设计与实践(第2版)》——导读
查看>>
《计算机科学概论(第12版)》—第1章1.4节用位模式表示信息
查看>>
C2B前还有S2b,阿里携手产学研探索新零售时代的供应链未来
查看>>
Linux集群和自动化维2.4.2 sed的用法示例
查看>>
《OpenGL ES 3.x游戏开发(上卷)》一1.2 搭建Android开发环境
查看>>
《HTML5实战》——2.6 小结
查看>>
使用 Python 和 Asyncio 编写在线多人游戏(三)
查看>>
yanf4j 1.0-stable的一个压测报告
查看>>