cookie、session
cookie的大致知识点
1.cookie的内容包括:名字、值、过期时间、路径和域。其中,路径和域一起构成了cookie作用范围。如果不设置过期时间,则表示这个cookie的生命周期为浏览器会话时间,一旦关闭浏览器窗口,cookie就会消失。这种生命周期为浏览器会话时间的cookie称为会话cookie。
2.会话cookie一般不存储在硬盘而是保存在内存里面。如果设置了过期时间,浏览器就会把cookie保存到硬盘上面,关闭之后再打开浏览器的操作不会影响到cookie的存活时间,只有超过了设定好的过期时间,cookie才会失效。
3.对于保存在内存里面的cookie,不同的浏览器有不同的处理方式session机制。
当为客户端的请求创建一个session时,服务器首先检查这个客户端的请求里面是否包含一个session id,如果已经包含则说明以前已经为此客户端创建过session,服务器就会按照session id把这个session检索出来并且使用;检索不到的话就会新建一个。如果客户端请求里面不包含session id,则为客户端创建一个session并且生成一个与此session相关联session id。其中,session id的值应该是一个既不会重复又不容易被找到规律的字符串,防止被仿造。这个session id将在本次响应中返回给客户端保存。保存session id的方式采用cookie,这样在交互过程中浏览器可以自动地按照规则把session id发送给服务器。
cookie和session的区别
1.cookie数据是存放在客户的浏览器的,session数据是存放在服务器的。
2.单个cookie保存的数据不能超过4k,很多浏览器都会限制一个站点最多保存20个cookie
3.建议将登陆等重要信息存放在session,其他没那么重要的信息存放在cookie
4.session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息
5.session中保存的是对象,cookie保存的是字符串
6.session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的