一、几个面试题

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

点个赞哦~