课程名称:编程必备基础-大话HTTP协议
课程章节:HTTP状态管理:Cookie与Session
课程讲师:风落几番
课程内容:
1.Cookie
实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie
客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查Cookie,以此辨认用户状态。服务器还可以修改Cookie内容。
在服务端返回数据的时候,通过set-cookie这个header设置到浏览器里面,下次请求会自动带上。
键值对,可以设置多个
属性:max-age和expires设置过期时间,Secure只在HTTPS的时候发送,HTTPOnly无法通过document.cookie访问
不同域名Cookie不能共享,比如b.com不能访问a.com的Cookie。同级域名不能共享Cookie:a.test.com和b.test.com不能共享。通过domain设置可以让test.a.com访问a.com的Cookie
不能跨域设置Cookie5,比如a.test.com不能给test.com设置Cookie
2.Session
Session是另一种记录客户状态的机制,保存在服务器上。客户端浏览器访问服务器时,服务器把客户端信息以某种形式记录在服务器上
客户端浏览器再次访问时只需要从Session中查找该客户的状态就可以了
如果说Cookie机制是检查用户身上的通行证,来确定客户身份的话,那么Session机制检查服务器上的客户明细表,来确认客户身份。
当用户访问一个服务器,如果服务器启用Session,那服务器就要为这个用户创建Session。在创建Session的时候,服务器首先检查发来的请求是否包含SessionID。如果包含了,说明用户此前登录过,创建过,把这个Session在服务器内存查找出来。如果查找不到,或者客户端请求不包含SessionID,那么就创建一个Session并且生成ID。这个ID一定是唯一的,不重复的,不容易找到规律的字符串。这个ID并且返回客户端进行保存,保存ID的是Cookie
3.保存Session方式
Cookie
URL重写
隐藏表单
4.Session有效期
Session超时失效
程序调用HttpSession.invalidate()
服务器进程被停止
5.Cookie和Session比较
存放位置不同
安全性(隐私策略)不同:Cookie对客户端是可见的,客户端的一些程序可能会窥探,复制,甚至修改内容。Session对客户端是透明的,不存在敏感信息泄露风险。可以把Cookie信息加密
有效期,服务器会定时清理超时SessionID,只要关闭浏览器,Session就失效了
服务器压力不同
课程收获:
共同学习,写下你的评论
评论加载中...
作者其他优质文章