[面试] 面试过程中遇到的Cookie和Session的问题

https://tuchong.com/1159583/14369308/

主要问题

1.说明Cookie和Session这两个概念的联系与区别,解释Session是如何工作的?

2.为什么要引入Cookie?Cookie通常存在哪里?

关于Cookie存储在哪里,首先要知道Cookie失效分为两种:
1.设置过期时间失效(只要设置了过期时间Cookie就会存储在硬盘里面)。
2.在会话结束时失效,即关闭浏览器窗口(因为没有设置Expires,Cookie就会存储在内存中)。
下面给出一个demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div>
<button name="btn1" onclick="setCookieBtn1()">btn1</button>
<button name="btn2" onclick="setCookieBtn2()">btn2</button>
</div>
<script type="text/javascript" src="/resources/js/jquery-3.1.1.min.js" ></script>
<script type="text/javascript" src="/resources/js/jquery.cookie.js" ></script>
<script type="application/javascript">
function setCookieBtn1(){
$.cookie('Memory','Memory');
}
function setCookieBtn2(){
$.cookie('HardDisk','HardDisk',{expires:1});
}
</script>

依次点击btn1、btn2之后,通过F12调出Chrome的Developer Tools查看Cookie情况

通过Chrome 的 设置-隐私设置 -内容设置-Cookie-所有Cookie和网站数据可以查看结果如下:

重启浏览器之后再次查看结果:

此时名为HardDisk的Cookie存储在 C:\Users\username\AppData\Local\Google\Chrome\User Data\Default中的Cookies文件中。

3.Session对象何时被创建?何时被销毁?

1.调用HttpServletRequest.getSession(true)
2.Session的销毁

  • 关闭浏览器
  • 设置Session过期
  • 服务器端调用了HttpSession的invalidate()方法。

4.Session通常存在哪里?是否可以持久化?

5.Session共享是什么意思?

参考&引用

更新时间

发布时间 : 2016-10-23

看你的了!