欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

前端面试题及答案-浏览器篇-前端菜鸟的进阶之路-SegmentFault思否

程序员文章站 2022-03-31 23:54:00
这篇文章并不是最全的前端面试题(没有最全,只有更全),只是针对自己面试过程中遇到的一些难题、容易忽略的题做一个简单的笔记,方便后面有面试需要的小伙伴们借鉴,后续内容会不定时更新,有...
这篇文章并不是最全的前端面试题(没有最全,只有更全),只是针对自己面试过程中遇到的一些难题、容易忽略的题做一个简单的笔记,方便后面有面试需要的小伙伴们借鉴,后续内容会不定时更新,有错误之处希望大家不吝指出。

1. 谈谈cookie的优劣

cookie不同之处:

ie6或更低版本最多20个cookie ie7和之后的版本最后可以有50个cookie。 firefox最多50个cookie chrome和safari没有做硬性限制

优点:极高的扩展性和可用性

通过良好的,控制保存在cookie中的session对象的大小。 通过和安全传输技术(ssl),减少cookie被的可能性。 只在cookie中存放不敏感数据,即使被盗也不会有重大损失。 控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。

缺点:

cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4kb,否则会被截掉。 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。 有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

例子
javascript 中,创建 cookie 如下所示:

document.cookie="username=john doe";

还可以为 cookie 添加一个过期时间(以 utc 或 gmt 时间)。默认情况下,cookie 在关闭时删除:

document.cookie="username=john doe; expires=thu, 18 dec 2043 12:00:00 gmt";

可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。

document.cookie="username=john doe; expires=thu, 18 dec 2043 12:00:00 gmt; path=/";

2、浏览器本地存储 - cookie、localstorage、sessionstorage区别

相同:在本地(浏览器端)存储数据
不同:

localstorage只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localstorage数据。sessionstorage比localstorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。 localstorage是永久存储,除非手动删除。 sessionstorage当会话结束(当前页面关闭的时候,自动销毁) cookie的数据会在每一次发送http请求的时候,同时发送给服务器而localstorage、sessionstorage不会。

了解更多

前端面试题及答案 - html篇 前端面试题及答案 - css篇 前端面试题及答案 - js篇