一、几个面试题
01. cookie相关面试题
试题1: Cookie 和 Session 的区别
试题2: Cookie 和 LocalStorage 的区别
试题3: LocalStorage 和 SessionStorage 的区别
试题4: Cookie 的有效期,如何设置过期时间?
试题5: Cookie会被用户篡改吗?
试题6: 在chrome上登陆的cookie,safari会带上cookie吗?
解决上面6个问题,首先要依此了解cookie、session、localStorage和sessionStorage的各个用法:
二、cookie
01. cookie简介
1. Cookie是服务器发送到用户浏览器并保存在本地的一小块数据。
2. 客户端给服务端发送http请求时,服务端会在响应头里面添加一个 Set-Cookie
选项,浏览器收到响应后通常会保存下 Cookie。
3. 通常在做登陆注册功能时,通过Cookie信息,服务器能判断用户是否登陆注册过。
02. cookie实效
cookie在默认关掉页面失效,但是后台代码可以设置过期时间。
03. cookie缺点
能被用户篡改。
三、session
01. session简介
1. 服务器通过cookie给用户一个sessionID,sessionID对应服务器中的一小块内存。
2. 每次用户访问服务器的时候,服务器通过sessionID 读取对应的session,然后获取用户的隐私信息。
02. session缺点
session最大的问题是占用内存,因为一个sessinID对应一小块内存。
四、localStorage
01. localStorage简介
localStorage和cookie、session有很大的区别,它是html5提供的一个API而已,而cookie和session是http层面的问题。
localStorage有一些方法,如下:
// 设置缓存:localStorage.setItem('key', 'value');// 获取缓存:localStorage.getItem('key');// 清除缓存:localStorage.removeItem('key')// 删除所有保存的数据localStorage.clear();
02. localStorage实效
localStorage永久有效,除非用户主动清除缓存
五、sessionStorage
01. sessionStorage简介
参考localStorage
02. sessionStorage方法
// 保存数据sessionStorage.setItem('key', 'value');//获取数据sessionStorage.getItem('key');// 删除保存的数据sessionStorage.removeItem('key');// 删除所有保存的数据sessionStorage.clear();
03. sessionStorage有效期
sessionStorage用户关闭页面就失效
六、解答面试题
综上:我们可以依此简答上面的6个问题?
试题1: Cookie 和 Session 的区别
1. Cookie则是服务器通过set-cookie头给客户端发送的一段字符串,客户端每次访问同个域名都会带上这串字符串
2. Session是基于Cookie实现的,通过Cookie向客户端发送SessionID,Cookie进行存储。
3. cookie是浏览器上的hash表,session是服务器上的hash表。
4. cookie能被篡改,session更安全。
试题2: Cookie 和 LocalStorage 的区别
1. cookie是http的一个相应头,浏览器默认页面关闭后消失。LocalStorage是html5的一个新的API。
2. 两个都可以处理解决缓存问题。
3. Cookie,大小大约为4kb,LocalStorage每个域名最大存储空间大约为5M。
4. LocalStorage存储在客户端中只要你不删,永久存储。cookie默认关掉页面失效,但是后台代码可以设置过期时间。
试题3: LocalStorage 和 SessionStorage 的区别
1. SessionStorage在页面关闭后会消失。
2. LocalStorage永久有效。
试题4: Cookie 的有效期?
cookie在默认关掉页面失效,但是服务端那边可以设置过期时间。
试题5: Cookie会被用户篡改吗?
会
试题6: 在chrome上登陆的cookie,safari会带上cookie吗
肯定不会,必须相同域名,否则隐私都泄露了。
以上都是简单的简介,更多理解还是要从实际工作经验中总结。
References
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookieshttps://www.jianshu.com/p/b5efddc433f5https://developer.mozilla.org/zh-CN/docs/Web/API/Window/sessionStorage
Readings
“被他人注意、被他人关怀,得到他人的同情、赞美和支持,这就是我们想要从一切行为中得到的价值。
富有的人忘情于财富,是因为财富能够自然而然地为他吸引世界的目光。穷人则完全相反,他们以贫穷为耻。他们感觉到自己生活在世界的目光之外。一旦感到自己被世界所忽略,人类天性中最强烈的欲望将必然难以得到满足。
穷人进出家门都不为人所注意,即使在闹市,他也会像独处在家一样默默无闻。
而名流显贵们则不然,他们一直为世界所瞩目。
所有的人都渴望能够一睹尊颜。他们的行为成为公众关心的对象。他们的片言只语、举手投足都不会被人忽略。”
书名:身份的焦虑作者:(英)阿兰·德波顿
END
https://github.com/fqs1024/blog/blob/master/README.md
点个赞哦~