状态保持: cookier及session简介

状态保持

  由于 http 是一种无状态协议,浏览器请求服务器是无状态的。

  无状态:指一次用户请求时,浏览器、服务器没法知道以前这个用户作过什么,每次请求都是一次新的请求。

  无状态缘由:浏览器与服务器是使用 socket 套接字进行通讯的,服务器将请求结果返回给浏览器以后,会关闭当前的 socket 链接,并且服务器也会在处理页面完毕以后销毁页面对象。

  有时须要保持下来用户浏览的状态,好比用户是否登陆过,浏览过哪些商品等

  实现状态保持主要有两种方式:

    在客户端存储信息使用  Cookie

    在服务器端存储信息使用 Session

 

Cookie

 

  • Cookie:指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(一般通过加密)。
    • Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
    • Cookie的key/value能够由服务器端本身定义。
  • 应用:
    • 最典型的应用是断定注册用户是否已经登陆网站,用户可能会获得提示,是否在下一次进入此网站时保留用户信息以便简化登陆手续,这些都是Cookie的功用。
    • 网站的广告推送,常常遇到访问某个网站时,会弹出小窗口,展现咱们曾经在购物网站上看过的商品信息。
    • 购物车,用户可能会在一段时间内在同一家网站的不一样页面中选择不一样的商品,这些信息都会写入Cookie,以便在最后付款时提取信息。
  • 提示:浏览器

    • Cookie是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,由于电脑上的浏览器可能被其它人使用
    • Cookie基于域名安全,不一样域名的Cookie是不能互相访问的
      • 如访问sina.com.cn时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,没法访问到sina.com.cn写的Cookie信息
      • 浏览器的同源策略
      • 当浏览器请求某网站时,会将本网站下全部Cookie信息提交给服务器,因此在request中能够读取Cookie信息
    • cookie的生成机制简介

 

Session

  • 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息
  • 在服务器端进行状态保持的方案就是Session
  • Session依赖于Cookie
  • 举个简单的例子: session相似去快餐店点餐, 前台只会给你说你是多好号, 你具体点餐的内容已经保存在后台厨房了, 你只须要记住你的号码到时候过来取餐便可
相关文章
相关标签/搜索