zoukankan      html  css  js  c++  java
  • cookie session sessionStorage localStorage

    什么是会话?

      会话指的是浏览器与服务器之间的数据交互。所白了就是 浏览器和服务器进行的请求和响应。

      http协议是无状态的,多次请求之间没有关联性

      

    cookie和session的作用?干啥的?

      利用cookie和session可以进行会话保持, 会话保持就是指: 保持用户的登录状态,服务器记录了用户的登录信息,下一次访问服务器就认识该用户了

    关于cookie

        cookie是浏览器中储存数据的容器,大小为 4k

        cookie中的数据会在请求时,进行携带

        cookie默认是会话级别的,一旦关闭浏览器cookie就会被销毁

        cookie里面可以存储sessionid

        多页面共享(在同一个浏览器中)

        

    常见的一些面试问题

     1 cookie是浏览器中存储数据的容器,为什么服务器中可以获取cookie中的数据?

        因为cookie在向服务器请求时,会将cookie中的数据携带在请求头中;服务器可以读取请求头中的内容,从而间接的获取cookie中的数据。(cookie中的数据被放在请求头中,发送到服务器)

        2   cookie是浏览器中存储数据的容器,为什么服务器可以设置cookie中的数据? 

        服务器是无法直接修改cookie的,但是可以通过响应头来设置;setcookie设置的是响应头;set-cookie:'值' ,将来通知浏览器进行设置cookie.

    关于session

        session是服务器端储存数据的容器,每个用户都有自己的session空间

    session机制

        01 如果用户是第一次访问服务器,会自动生成一个sessionid,这个sessionid是一个随机字符串;

        02 根据sessionid,服务器就会为该用户开启一块session存储空间(会真的创建一个session文件,这个文件的名字就是sessionid,可以用来存储数据)

        03 通过响应头,将sessionid传递回浏览器,设置在cookie中

        04 第二次访问,cookie里面存储的数据会在请求时携带在请求头中,把sessionid携带着

        05 服务器根据sessionid就可以找到对应的session的文件,就认识这个用户了。

    sessionStorage

        浏览器中存储数据的容器, 5M

        会话级别的,一关闭浏览器就销毁

        多窗口之间不能共享

        不携带

    localStorage

        浏览器中存储数据的容器,5M       IE只有1M左右

        永久存储,只要用户不手动删除,一直存在

        多窗口可以共享

        不携带

      <script>
            1.  localStorage的api
    (1) 设置:localStorage.setItem(key , value)
    (2) 获取:localStorage.getItem( key )
    (3) 删除:localStorage.removeItem( key )
    (4) 清空所有:localStorage.clear()  慎用,会将所有清除
    注意:
        01 localStorage只能存储 字符串类型 的数据,读出来的数据 都是字符串
        02 localStorage储存复杂数据类型 
            (1)储存, obj=> jsonStr  将对象转换成有格式的json字符串
               JSON.stringify( obj/arry)  将复杂数据类型转成json格式的字符串    
               localStorage.setItem(key , value)存储
               
            (2)获取, jsonStr=> obj  
              localStorage.getItem( key )
              获取到的是json字符串,需要转换成js中的数组或对象
               JSON.parse( jsonStr )
      </script>

        

     

        

  • 相关阅读:
    sql-select for update
    java-JDK动态代理
    idea-热部署jreble的使用
    vue-【el-table】转成【pl-table】
    mybatis-字段值为null或为''无法存储到数据库
    vue-本地开发热部署编译缓慢
    chrome-截长图
    el-cascader 级联选择器中选中任意一级去掉圆形按钮
    idea-绿色注释颜色16进制
    markdown 语法
  • 原文地址:https://www.cnblogs.com/javascript9527/p/11329110.html
Copyright © 2011-2022 走看看