COOKIE
COOKIE定义
cookie是web服务器保存在用户硬盘上的一段文本。
cookie允许一个web站点在用户的电脑上保存信息并随后再取回他。信息段以‘名/值’对(name-valuepairs的形式储存)
COOKIE工作机制
COOKIE的产生及保存
产生:服务器生成
保存:保存在浏览器
(不同浏览器访问同一个网站cookie值不同)
COOKIE参数
- name:cookie的名字,创建之后,名字不可更改
- value:cookie的值,为Unicode需要为字符串编码,为二进制数据则需base64编码
- Max-Age:cookie失效时间,单位为秒。默认为-1,该参数为正数时,cookie在Max-Age后失效,为负数则为临时cookie,关闭浏览器即失效,浏览器不会保存该cookie,为0则删除该cookie。
- path:本cookie的使用路径,当设置为"/sessionweb/“时,只有ContextPath为”/sessionweb/"的程序才可以访问该cookie;当设置为“/”,本域名下ContextPath都可以访问该cookie。
- secure:告诉浏览器只能在https中访问,HTTP或其他无效。
- httponly:此cookie只能在HTTP中使用,其它无效。
- Domin:指定cookie所属域名。
注意
- cookie只能保存少量数据,大概是4k大小,数量也有限制,不同浏览器的限制不同。
- cookie可以被用户禁止
- 不同浏览器访问同一个网站,产生的cookie不同。
SESSION
SESSION工作机制
SESSION的产生和保存
产生:服务端生成session和对应的sessionid
保存:客户端(浏览器)保存sessionid,服务端保存session
(会话中的重要信息也保存在session中)
SESSION的注意事项
过期
客户端sessionid:同cookie客户端过期机制一样,没设置就是默认关浏览器就过期了。
服务端session:默认30分钟,过期session存储的数据结构不可用。
管理
session的管理是在容器中被管理的,容器即Tomcat、jetty等
缺点
-
依赖cookie
寄生在cookie中,cookie被禁止,session也被禁止(可以通过URL重写摆脱cookie)
-
影响服务器
访问量大—>服务器压力大,影响负载效果
session内容复杂—>服务器内存溢出
用户信息丢失/用户访问的不是同台服务器—>数据库丢失
(session将用户信息存储在服务器中)
cookie和session的区别
session是存在服务器,cookie是存在客户端的
session无需cookie来支持和不会受浏览器端的配置影响,可记录每个访问者的信息,单独在服务器,比cookie安全
session存在内存,浏览器关了就死了;cookie以文档方式存在,能够修改其存活时间
TOKEN
待补充。。。