手记

【金秋打卡】第1天 Cookie与Session

课程名称:编程必备基础-大话HTTP协议

课程章节:HTTP状态管理:Cookie与Session

课程讲师:风落几番

课程内容:

1.Cookie

  1. 实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie

  2. 客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查Cookie,以此辨认用户状态。服务器还可以修改Cookie内容。

  3. 在服务端返回数据的时候,通过set-cookie这个header设置到浏览器里面,下次请求会自动带上。

  4. 键值对,可以设置多个

  5. 属性:max-age和expires设置过期时间,Secure只在HTTPS的时候发送,HTTPOnly无法通过document.cookie访问

  6. 不同域名Cookie不能共享,比如b.com不能访问a.com的Cookie。同级域名不能共享Cookie:a.test.com和b.test.com不能共享。通过domain设置可以让test.a.com访问a.com的Cookie

  7. 不能跨域设置Cookie5,比如a.test.com不能给test.com设置Cookie


2.Session

  1. Session是另一种记录客户状态的机制,保存在服务器上。客户端浏览器访问服务器时,服务器把客户端信息以某种形式记录在服务器上

  2. 客户端浏览器再次访问时只需要从Session中查找该客户的状态就可以了

  3. 如果说Cookie机制是检查用户身上的通行证,来确定客户身份的话,那么Session机制检查服务器上的客户明细表,来确认客户身份。

  4. 当用户访问一个服务器,如果服务器启用Session,那服务器就要为这个用户创建Session。在创建Session的时候,服务器首先检查发来的请求是否包含SessionID。如果包含了,说明用户此前登录过,创建过,把这个Session在服务器内存查找出来。如果查找不到,或者客户端请求不包含SessionID,那么就创建一个Session并且生成ID。这个ID一定是唯一的,不重复的,不容易找到规律的字符串。这个ID并且返回客户端进行保存,保存ID的是Cookie

3.保存Session方式

  1. Cookie

  2. URL重写

  3. 隐藏表单

4.Session有效期

  1. Session超时失效

  2. 程序调用HttpSession.invalidate()

  3. 服务器进程被停止

5.Cookie和Session比较

  1. 存放位置不同

  2. 安全性(隐私策略)不同:Cookie对客户端是可见的,客户端的一些程序可能会窥探,复制,甚至修改内容。Session对客户端是透明的,不存在敏感信息泄露风险。可以把Cookie信息加密

  3. 有效期,服务器会定时清理超时SessionID,只要关闭浏览器,Session就失效了

  4. 服务器压力不同


课程收获:



0人推荐
随时随地看视频
慕课网APP