一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情。
1、session和cookie的区别
第一 数据存放位置不同:session存放在服务器上,cookie存放在客户端上。
第二 数据存放大小不同:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session是存放在服务端,浏览器对其没有限制,cookie相对较小,session相对较大,Session 可以放在 文件、数据库或内存中,比如在使用Node时将Session保存在redis中。由于一定时间内它是保存在服务器上的,当访问增多时,会较大地占用服务器的性能。考虑到减轻服务器性能方面,应当适时使用Cookie
第三 安全程度不同:相比较而言,cookies不是很安全,别人可以分析存放在本地的cookie进行cookie修改,考虑到安全,应当使用session。
第四 性能使用程度不同:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
第五 有效时间不同:cookies可以设置为永久有效,cookies关闭连接后不会失效,session会失效,就算设置成永久不会失效,那么只要关闭了连接,session立刻失效。
第六 对浏览器的支持不同:浏览器可以不使用cookies,但是session在cookies被关闭后,还可以通过其他策略使用,比如:通过url的请求参数使用。
2、Python中的局部变量和全局变量是什么?
局部变量:在函数内声明的任何变量都称为局部变量,此变量存在于局部空间中,而不是全局空间中。
全局变量:在函数外或者全局空间中声明的变量称为全局变量。这些变量可以又程序中的任何访问的。
3、引用传递和值值传递的说明
引用传递:传递了一个对象的地址,大家修改的是同一个对象。
值传递:传递的是一个值,修改了以后互不影响
4、简述乐观锁和悲观锁
乐观锁:总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改
悲观锁:总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁(读锁、写锁、行锁等),当其他线程想要访问数据时,都需要阻塞挂起。可以依靠数据库实现,如行锁、读锁和写锁等,都是在操作之前加锁