补充知识点三:Cookie和Session的使用

(一)Cookie和Session详解
  详情参见理解Cookie和Session机制
(二)Cookie使用实例
  这里我就以登录为例来进行讲解。
  使用场景:我们在登录网站时,都有一个功能“记住我/两周内自动登录”等,这里面所涉及到具体流程如下:
  1.第一次登录时
  (1)浏览器:输入用户名、密码,同时勾选“记住我”
  (2)服务器:接收到登录请求后,首先验证用户名、密码是否正确;
    若不正确,返回到登录页面。
    若正确,再判断“记住我”是否勾选(isRememberMe==true);
      若没勾选,继续跳转到目标页面
      若勾选,则构建Cookie:首先利用加密技术,对用户名和密码进行加密(md5(username, password, salt) + ":" + userId),将加密好的字符串写入Cookie,键为“token”,值为加密字符串;然后将用户名写入Cookie。
  (3)浏览器:浏览器在接收到服务器写Cookie的指令后,将服务器返回的信息写入到Cookie中,同时跳转到目标页面。
  2.第二次及以后登录时
  (1)浏览器:输入目标网址,会将Cookie放在请求头(Header)中发送到服务器
  (2)服务器
    读取Cookie:
    若无“”username”或“token”,则需要重新登录;
    若既有“”username”,又有“token”,则对字符串根据“:”进行切割(split(“:”)),array[0] = 用户名和密码经过md5盐值加密,array[1] = userId。根据“userId”去数据库中查询用户名、密码,然后进行md5盐值加密,若得到的值和“array[0]”相等,则登陆成功,跳转到目标页面;若不等,则跳转到登录页面。

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/80610745