zoukankan      html  css  js  c++  java
  • 浅谈cookie与session的区别

    cookie用的是在客户端保持状态的方案(它是在用户端的会话状态的存贮机制),前端也可以来设置他 所有浏览器都识别,并且会缓存在浏览器中。

    cookie是以key=value这种键值对的形式保存,每个cookie之间一般用“;”分隔,大小一般不超过4KB

    session是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息

    下面来说下cookie与session的区别

    cookie与session最大的区别就是一个是将数据存放在客户端,一个是将数据存放在服务端

    1、存储方式不同

    Cookie能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码
    Session能够存取任何类型的数据。

    2、服务器压力不同

    Cookie保管在客户端,不占用服务器资源
    Session是保管在服务器端的,每个用户都会产生一个Session

    3、浏览器支持不同

    Cookie是需要客户端浏览器支持的。假如客户端禁用了Cookie,或者不支持Cookie,则会话跟踪会失效
    
    假如客户端浏览器不支持Cookie,需要运用Session以及URL地址重写。需要注意的是一切的用到Session程序的URL都要进行URL地址重写,否则Session会话跟踪还会失效。

    4、安全性不同

    Cookie存储在客户端中,对客户端是可见的,客户端的一些程序可能被修改Cookie中的内容。
    
    Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险

    5、跨域支持的不同

    Cookie支持跨域名访问
    Session则不会支持跨域名访问,仅在他所在的域名内有效

    6、存储的时间有效期不同

    有效时间以10分钟为例
    cookie的生命周期是累计的,从创建时,就开始计时,10分钟后,cookie生命周期结束
    session的生命周期是间隔的,从创建时,开始计时如在10分钟,没有访问session,那么session生命周期被销毁
  • 相关阅读:
    线程池参数设置技巧
    线程池的七个参数
    bug篇——Windows启动redis报错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
    总结篇——git本地仓库上传更新到github
    实例篇——springboot自定义拦截器
    总结篇——从零搭建maven多模块springboot+mybatis项目
    bug篇——MySQL的时区问题
    工具类篇——时间处理Calendar类
    安装篇——nginx安装ssl模块转发https请求
    总结篇——nginx代理服务器
  • 原文地址:https://www.cnblogs.com/theblogs/p/10120996.html
Copyright © 2011-2022 走看看