一天一道面试题:cookie,session 和浏览器本地存储

in Web 前端 with 0 comment

我们在前端开发中,常常存储各类登录凭证、浏览记录和一些用户数据。本文讨论几种当下常见的存储方式(cookie,sessionStorage,localStorage),以及如何根据不同场景选择不同的存储方式。

001 · cookie,session 和浏览器本地存储

问题(Question)

  1. 请你谈谈 cookie 的弊端
  2. 浏览器本地存储有哪些
  3. web storage 和 cookie 的区别

概念剖析

一、Web storage(客户端存储)

Web storage 是在 web 上存储数据的功能,这里的存储是针对客户端来说的。具体说分为两种:

sessionStorage

数据存储在 session 对象中。session,是指用户打开浏览器窗口浏览网站,从进入网站到关闭这个窗口所经过的这段时间。
seesion 对象可以用来保存这段时间所有的数据。

localStorage

近数据持久化在客户端本地,即使浏览器关闭了,该数据也会存在,下次打开浏览器访问,数据也会存在。

相同点:

  1. 两者均以键值对(key-value)的形式进行存储
  2. 有共同的方法,如 setItem,getItem,removeItem,clear 等

不同点:

  1. sessionStorage 在会话结束时(通常为浏览器窗口关闭)就会被清除,而 localStorage 除非用户主动清理,否则会一直存在,是真正意义上的持久化存储。

二、服务器存储与会话

session

Session 的术语为「会话控制」,session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 web 页之间跳转时,存储在 session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

cookie

Cookie 并不是它的原意「甜饼」的意思,而是一个保存在客户机中的简单的文本文件,这个文件与特定的 web 文档关联在一起,保存了该客户机访问这个 web 文档时的信息,当客户机再次访问这个 web 文档时这些信息可供该文档使用。

Session 和 cookie 的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie 是存储在本地浏览器,而 session 存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些 session 信息还是绰绰有余的。

回答(answer)

Ur Answer~


-EOF-

Responses