前言
借助 session 或 cookie,就能解决HTTP协议无状态的问题,那么它是如何解决的?
cookie 如何解决无状态问题
无状态的问题是“服务器记不住客户端是谁”,解决的方法也很简单:“给客户端颁发身份证”。
第一次请求
浏览器:我是张三
服务器:知道了,并给浏览器颁发一个身份证
第 N 次请求
浏览器:这是我的身份证
服务器:身份识别成功,你是张三
身份证里都包含什么?
身份证号码,相关信息数据(其实可以是任何数据)
浏览器如何保存身份证?
生成“cookie”文件,保存在客户端电脑。
浏览器如何携带自己的身份证?
每次请求之前都会检查“是否有身份证”,如果有就自动携带(都是浏览器的活,我们不用操心)
所有的网站都能识别身份证吗?
并非如此,身份证有“域”的概念,baidu.com 颁发的身份证,只在百度的网址中有效。
身份证会过期吗?
会,服务端颁发的时候可设置过期时间。
身份证保存在客户端安全吗?
不安全,可能被读取、被删除,尽量不保存敏感数据,如果必须那就加密(安全永远是相对的)
cookie和session有什么关系?
他们都用于解决同样的问题,开发的时候二选一即可。
最明显的区别
cookie 将所有数据都保存在客户端。
session 是在cookie的基础上做了升级,在cookie中保存“身份证号”,其他内容保存在服务器上。
后记
注意,本系列文章只是帮助你理解知识点,并不涉及具体语法。
如果你已经看晕了,那就是你的http协议基础太弱了,有时间去看看我的另一个课程吧…
领取专属 10元无门槛券
私享最新 技术干货