cookie(储存在用户本地终端上的数据)
会话
会话 :用户打开一个浏览器,点开了许多超链接,访问多个web资源,当关闭浏览器时,这个过程称之为会话
有状态会话:一个同学曾经来过教室,下次来,我们知道这个人曾经来过,称之为有状态会话
保存会话的技术
一,cookie
① 客户端技术 (响应 ,请求)
二,session
② 服务器技术,利用这个技术,可以保存用户的会话信息?我们可以吧信息或者数据放入session中!
常见例子:我们登录B站,我们在第一次进入网站的时候,网站会记录你的的登录信息,下次访问该网站,服务器直接匹配你的信息即可直接登录
cookie的由来;
HTTP是一种无状态的协议,不会保存客户端和服务端之间的通信状态进行保存。最初cookie的由来是需要保存在web中的状态信息,方便服务器端的使用。目前所有主流浏览器(360,IE,谷歌等等)都支持cookie。
Cookie的主要构成如下:
name: 一个唯一确定的cookie名称。通常来讲cookie的名称是不区分大小写的。
value: 存储在cookie中的字符串值。最好为cookie的name和value进行url编码。
domain: cookie对于哪个域是有效的。所有向该域发送的请求中都会包含这个cookie信息。这个值可以包含子域,也可以不包含它。
path: 表示这个cookie影响到的路径,浏览器跟会根据这项配置,像指定域中匹配的路径发送cookie。
expires: 失效时间,表示cookie何时应该被删除的时间戳(也就是,何时应该停止向服务器发送这个cookie)。如果不设置这个时间戳,浏览器会在页面关闭时即将删除所有cookie;不过也可以自己设置删除时间。这个值是GMT时间格式,如果客户端和服务器端时间不一致,使用expires就会存在偏差。
max-age: 与expires作用相同,用来告诉浏览器此cookie多久过期(单位是秒),而不是一个固定的时间点。正常情况下,max-age的优先级高于expires。
HttpOnly: 告知浏览器不允许通过脚本document.cookie去更改这个值,同样这个值在document.cookie中也不可见。但在http请求张仍然会携带这个cookie。注意这个值虽然在脚本中不可获取,但仍然在浏览器安装目录中以文件形式存在。这项设置通常在服务器端设置。
secure: 安全标志,指定后,只有在使用SSL链接时候才能发送到服务器,如果是http链接则不会传递该信息。就算设置了secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息,所以不要把重要信息放cookie就对了服务器端设置
cookie的工作原理
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份(服务器端会先给客户端发个信件(cookie对象),每个客户端都有一个,无论谁访问网站都必须带上这个信件,这样才能确认你的信息,这就是cookie的工作原理)
1,从请求中拿到cookie
2,服务器响应给客户端cookie
设置cookie的有效期
Cookie的maxAge决定着Cookie的有效期,单位为秒(Second)。Cookie中通过getMaxAge()方法与setMaxAge(int m