-
什么是Cookie?
http是一个无状态协议,它不对之前发生过的请求和响应的状态进行管理。这样就可能导致,我们登陆一个网站后,每次跳转新页面,之前的登陆状态都不能被记住,要重新登陆等问题。
因此,Cookie技术被引入了。
Cookie是存储在浏览器端的文本数据,单个大小不超过4kb。它通过在请求和响应数据中写入Cookie信息,对客户端的状态进行记录。
【Cookie机制的基本原理】
Cookie会根据从服务器端发送的响应报文内的一个叫Set-Cookie的首部字段信息,通知客户端保存Cookie。当客户端第二次访问该服务器时会自动的将该Cookie回传给服务器,来实现用户状态的跟踪。
-
Cookie的作用和特性?
利用cookie记录状态我们可以实现自动登录、显示近期访问、跟踪上次访问时间、身份验证等功能。
不过,这种状态记录不是永久的。我们有时候可能会发现,自己一直登陆状态开着网页,一段时间回来再想访问新页面,又回跳出登陆窗口。这是因为Cookie是有有效期的。
Cookie的有效期可分为会话性和持久性:
【会话性】Cookie仅会保存在客户端的内存中,关闭客户端时,cookie失效
【持久性】cookie会保存在用户的硬盘中,生存期结束或用户主动销毁时失效(我们可以认为设置cookie的有效时间)
-
Cookie和Session
Session机制也是用来解决http无状态的问题,可以识别用户。区别是:
Cookie数据存储在客户端浏览器上,而Session数据存储在服务器上,且通常需要Cookie机制来辅助实现。
类比一下:
你在理发店办了张卡。你的卡有个编号01,那理发店后台也会有一个对应的编号,对应你这个客户。这样下次你刷卡时,理发店一刷后台就能查到你是谁,卡里余额等信息啦~
这个场景里的“卡”就像Cookie,而理发店后台的编号可以理解为Session id,你卡的信息存在了理发店后台,这个机制就像Session。
Session数据存在服务器的优点在于,就是换了客户端,服务器记录的信息还是会存在的。比如我们加进购物车的商品,在不同客户端都能看到。
标签:状态,知识,Session,Cookie,关于,cookie,理发店,客户端 From: https://www.cnblogs.com/xdedm-Lisa/p/17251253.html