这里写目录标题
- 前端缓存方法有哪些:
- cookie有哪些属性?
前端缓存方法有哪些:
-
Browser Cache(浏览器缓存):
- 当浏览器请求一个资源(例如图片、CSS、JS 文件)时,它会首先检查自己的缓存中是否已经有这个资源。如果有,就直接使用缓存的版本。
-
HTTP Cache Headers:
- 使用如
Cache-Control
、ETag
和Last-Modified
等 HTTP 头来控制资源的缓存行为。
- 使用如
-
Service Workers:
- Service Workers 运行在浏览器背景中,允许你拦截和缓存网络请求,使得你可以创建离线优先的网络体验。
-
LocalStorage & SessionStorage:
- localStorage: 用于永久存储数据,直到它被手动删除。
- sessionStorage: 仅在当前浏览器会话期间存在的数据。
-
Cookies:
- 虽然 Cookies 主要用于存储会话信息,但也可以用作缓存的一部分。
-
IndexedDB:
- 一个事务性的数据库系统,允许存储大量数据,包括文件/二进制数据。
-
Web Storage (localStorage & sessionStorage):
- 提供了简单的键值对存储机制。与 Cookie 相比,它有更大的存储空间并且更加高效。
-
Application Cache (已被废弃):
- 是一个 HTML5 规范,允许开发者指定应该被缓存的文件,以便在没有网络连接的情况下进行访问。
-
Memory Cache:
- 浏览器会将部分或全部文档的 DOM 保存在内存中,以便快速切换。
-
CDN (Content Delivery Network):
- 虽然这不是前端缓存方法,但通过使用 CDN,可以缓存网站的静态资源,从而更快地将其传输给用户。
选择何种缓存方法取决于应用的具体需求,例如数据的大小、持续时间、是否需要离线访问等。很多时候,最佳实践是组合使用多种缓存方法以达到最佳效果。
cookie有哪些属性?
Cookies 是由浏览器存储的小型数据片段,并与特定的网站关联。它们在 HTTP 头部中设置,并用于维护会话、跟踪用户。以下是 cookie 的常见属性:
-
Name:Cookie 的名称。每个 Cookie 都有一个唯一的名称,以区分同一域名下的其他 Cookie。
-
Value:与 Cookie 名称关联的值。
-
Domain:指定哪个域名下的页面可以访问该 Cookie。如果未设置,则默认为创建 Cookie 时的域名。
-
Path:指定哪些路径可以访问该 Cookie。如果未设置,默认为’/',即该域名下的所有路径都可以访问。
-
Expires/Max-Age:
- Expires:设置 Cookie 的过期日期和时间。在此日期和时间之后,Cookie 会被删除。
- Max-Age:设置从当前时间开始,Cookie 存活的最长秒数。当达到这个时间后,Cookie 会被自动删除。
-
Secure:当设置此标志时,Cookie 只会在使用 HTTPS 协议的请求中发送。
-
HttpOnly:当设置此标志时,Cookie 不会被 JavaScript 访问,只能由服务器访问。这有助于减少跨站脚本攻击。
-
SameSite:这是一个相对较新的属性,用于声明 Cookie 是否在跨站点请求中发送:
- Strict:Cookie 只有在同一个站点的请求中发送。
- Lax:在顶级导航和 GET 方法的跨站请求中,Cookie 会被发送。
- None:Cookie 会在所有的请求中发送,无论是否跨站点。
cookie相关的面试题,来不及准备了,先记录:
与 Cookie 相关的面试题可以涵盖其基础知识、应用和安全性等方面。以下是一些常见的面试题:
-
基础知识:
- 什么是 Cookie?
- Cookie 和 sessionStorage、localStorage 有什么区别?
- 为什么会使用 Cookie?
- 如何设置、读取和删除 Cookie?
-
使用场景与限制:
- 什么情况下应该使用 Cookie,而什么情况下应该避免?
- 描述一个使用 Cookie 进行身份验证的场景。
- Cookie 的大小和数量有什么限制?
-
安全性:
- 什么是第三方 Cookie,为什么它们是有争议的?
- 如何防止 Cookie 被劫持?
- 什么是跨站请求伪造(CSRF)?如何使用 Cookie 防止它?
HttpOnly
和Secure
标志是什么?它们为什么重要?- 什么是
SameSite
属性,它如何提高安全性?
-
与服务器的交互:
- 当浏览器发起请求时,Cookie 是如何发送到服务器的?
- 如何在服务器端设置一个 Cookie 并发送到客户端?
-
其他技术与 Cookie 的关系:
- 如何使用 JavaScript 操作 Cookie?
- 描述一个使用 Cookie 和 sessionStorage 同时实现的功能。
- Cookie 和 JSON Web Tokens (JWT) 之间有什么关系?
-
最佳实践:
- 在设计一个需要长时间登录的应用程序时,你会如何使用 Cookie?
- 当存储敏感信息时,你会如何确保 Cookie 的安全?
以上只是一些常见的与 Cookie 相关的面试题。当然,面试时的问题可能会根据公司、职位和面试官的经验而有所不同。