cookie
2018-08-31 20:22:39 9 举报
AI智能生成
cookie 和 session的工作原理
作者其他创作
大纲/内容
解决问题:弥补http协议无状态的不足
交互过程:以后浏览器向服务端发请求时,都要带上cookie。2服务器端返回浏览器信息时,也有带上cookie,cookie都放到http request header里面。
原理:服务器但从网络连接上无法得知用户的身份,在第一次请求时,颁发凭证,以后的每次交互,都根据凭证确认用户的身份
安全漏洞
CSRF攻击
创始人:网景公司的前雇员Lou Montulli在1993年3月的发明
创建者:服务器发给客户端的特殊信息,以文本的方式存储在浏览器中
应用场景:请记住我的免登陆功能
永久登录
特性
1、不可跨域使用
二级子域想要通用,设置domain
2、能够保存中文、二进制等
3、能够设置cookie的属性
4、能够设置cookie的有效期
5、理论上不支持删除和修改
Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。注意是0而不是负数。负数代表其他的意义。读者可以通过上例的程序进行验证,设置不同的属性。
注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败
注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败
6、设置安全属性
session
cookie先发明出来的
作用
记录客户端的状态
创建者
服务器端程序在运行的过程中创建的
保存位置
服务端
一般是内存中
如果内容过多,内存溢出
设计精简
创建过程
第一次访问服务器,生成唯一的session id
往session里面增加内容
发往客户端的只有session id
客户端发送请求的时候带上session id
服务端根据session id获取到session 内容
原理
在服务器上建立了档案库,用户来访的时候,查询档案库即可
生命周期
由于放在内存中,为了防止内存溢出,服务器会把长时间不用的session移出内存,这个时间就是过期时间
也可以显示的设置和修改
环境支持
虽然放在服务器上,还是需要浏览器的支持
因为session需要使用cookie作为识别标志
HTTP是无状态的,session不能依据HTTP链接判断是否是同一个客户
因此,服务器向客户端发送一个sessionid的cookie
URL地址重写
客户端不支持cookie的解决方案
原理:将用户的session信息重写到URL中
session中禁用cookie
session的分布式一致性问题
session是放在某一台服务器上的
ip_hash
session Redis 分布式存储
session同步
区别
cookie数据存放在客户的浏览器上,session数据放在服务器上;
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE
单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
0 条评论
下一页