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>

 

    

 

    

 

posted @ 2019-08-09 19:03  javascript9527  阅读(154)  评论(0编辑  收藏  举报