Cookie与Session

来源:互联网 发布:百度云资源淘宝暗语 编辑:程序博客网 时间:2024/06/11 01:59

由于Web及HTTP的短连接性,Cookie和Session是使用户会话持久化的两种技术。

Cookie是由浏览器维持的,存储在客户端的一小段文本信息
Cookie是有时间限制的,根据生命期不同分成两种:会话Cookie和持久Cookie;
如果不设置过期时间,则表示这个Cookie生命周期为从创建到浏览器关闭止,这种Cookie一般保存在内存中。
如果设置了过期时间,浏览器就会把Cookie保存到硬盘上,关闭后再次打开浏览器,这些Cookie依然有效直到超过设定的过期时间。存储在硬盘上的Cookie可以在不同的浏览器进程间共享,而内存里的Cookie就不一定了。

golang中Cookie的标准定义

// See http://tools.ietf.org/html/rfc6265 for details.type Cookie struct { Name string Value string Path string // optional Domain string // optional Expires time.Time // optional RawExpires string // for reading cookies only // MaxAge=0 means no 'Max-Age' attribute specified. // MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0' // MaxAge>0 means Max-Age attribute present and given in seconds MaxAge int Secure bool HttpOnly bool Raw string Unparsed []string // Raw text of unparsed attribute-value pairs}​

通过插件抓取网页的具体cookie:
这里写图片描述
介绍下hostOnly这个flag,就是指Cookie只能在完全匹配域名的时候才能获取到,Domain属性为example.com的Cookie只有在example.com才有可能获取到。host-only-flag为false时,Domain属性为example.com的Cookie,在example.com、www.example.com、sub.example.com等等都可能获取到。但是host-only-flag没有直接设置的值。
至于HttpOnly,就是指这个cookie只能被用来进行http请求,不能被浏览器的API使用,比如被script获取,这也是为了安全性。

Session

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用。如果客户请求不包含session id,则为此客户创建一个session并且同时生成一个与此session相关联的session id,这个session id将在本次响应中返回给客户端保存。
而使用session的方法有两种,cookie和URL重写
Cookie就是通过Set-cookie头,将session的标识符传送给客户端,之后客户端每次请求都会自动带上这个标识符,一般这类cookie的失效时间为0
URL重写,就是给用户返回的页面里的所有URL后面追加一个session标识符,这样用户不管桌面GET、POST都会自动带上session,虽然很麻烦,但是可以避免cookie被禁用的尴尬。
为了防止sessionID被劫持,可以有两种解决方案:
1. 只允许cookie设置,不用URL重写,并且将cookie设置为httponly,防止客户端脚本访问这个cookie,避免xss获得这个cookie。
2. 在每个请求里添加一个token,每次验证这个token
还有就是可以间隔时间生成新的sessionID。

总结

session和cookie的目的相同,都是为了克服http协议无状态的缺陷,但完成的方法不同。session通过cookie,在客户端保存session id,而将用户的其他会话消息保存在服务端的session对象中,与此相对的,cookie需要将所有信息都保存在客户端。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 驾驶证被扣12分怎么办 被贴条了条丢了怎么办 车停路边连续几天被贴条怎么办 车停在路边限号怎么办 违停的罚单丢了怎么办 借道左转红灯了 怎么办 道路上有锯齿线标志怎么办 被领导臭骂了一顿怎么办 酒驾撞了人逃跑怎么办处理 荣耀9home键掉了怎么办 今天开车把老太婆撞了怎么办 交通责任认定书不合理怎么办 交通事故救济金用了 没钱还怎么办 车脏了洗不干净怎么办 衣服上贴花掉了怎么办 衣服上的画掉了怎么办 衣服上沾了胶怎么办 补鞋胶弄衣服上怎么办 摩托车大灯里面掉漆怎么办 行驶中轮胎爆胎怎么办 左拐车道直行了怎么办 踏板摩托车淋雨打不着火怎么办 购房小蓝本丢了怎么办 3d下载模型没颜色怎么办 车辆被扣30分怎么办 驾驶证被扣15分怎么办 驾驶本被扣分了怎么办 违章扣分扣错了怎么办 出国自驾游怎么办手续 新加坡开车工作遇到坏人怎么办 身份证户口本都丢了怎么办 户口本和身份证都丢了怎么办 网上预约挂完号没收到短信怎么办 驾驶证过了换证期限怎么办 身体弱末梢神经循环不好怎么办 自来水钙镁离子超标怎么办 呼吸感觉有煤烟味是怎么办 酒精弄到衣服上怎么办 孕妇吃了糟卤怎么办 气泡机打不了气怎么办 膝盖好冷好凉怎么办吃什么好