1.如果客户端禁用了cookie,session还能用吗?
2.如果我把数据存储到 localStorage,和Cookie有什么区别?
3.什么数据应该存在到cookie,什么数据存放到 Localstorage
4.JWT 令牌和传统方式有什么区别?
5.JWT 令牌都有哪些字段?
6.JWT 令牌为什么能解决集群部署,什么是集群部署?( 答上来了)
7.jwt的缺点是什么?
8.JWT 令牌如果泄露了,怎么解决,JWT是怎么做的?
9.前端是如何存储JWT的?
10.为什么有HTTP协议了?还要用RPC?
1.如果客户端禁用了cookie,session还能用吗?
默认情况下禁用 Cookie 后,Session 是无法正常使用的,因为大多数 Web 服务器都是依赖于 Cookie 来传递 Session 的会话 ID 的。服务器将生成的 Session ID 通过响应的方式发送给客户端,使用 SetCookie 命令,将用户的 Session ID 保存在 Cookie 中,通常是一个名为 JSESSIONID 的 Cookie。
URL 中携带 SessionID: 可以通过 URL 重写的方式将 Session ID 添加到所有的 URL 中。服务器生成 Session ID 后,将其作为 URL 的一部分传递给客户端,客户端在后续的请求中将 Session ID 带在 URL 中。服务器端需要相应地解析 URL 来获取 Session ID,并维护用户的会话状态。
隐藏表单字段传递 SessionID: 将 Session ID 添加到 HTML 表单的隐藏字段中。在每个表单中添加一个隐藏的字段,保存 Session ID,客户端提交表单时会将 Session ID 随表单数据一起发送到服务器,服务器通过解析表单数据中的 Session ID 来获取用户的会话状态。
2.如果我把数据存储到 localStorage,和Cookie有什么区别?

5. 安全性:Cookie 的安全性较低,因为 Cookie 在每次 HTTP 请求中都会自动发送到服务器,存在被窃取或篡改的风险。而 LocalStorage 的数据仅在浏览器端存储,不会自动发送到服务器,相对而言更安全一些。
3.什么数据应该存在到cookie,什么数据存放到 Localstorage?
如果数据需要长期存储且不与服务器交互,localStorage 更合适;如果数据需要在客户端与服务器之间共享,Cookie 更合适。
4.JWT 令牌和传统方式有什么区别?

5.JWT 令牌都有哪些字段?
头部载荷签名。JSON格式,BASE64编码序列化,然后签名是对头部和在和加密。

6.JWT 令牌为什么能解决集群部署,什么是集群部署?
由于JWT令牌是自包含的(包含所有必要的身份验证和会话信息),服务器可以独立地对令牌进行验证,而不需要依赖其他服务器或共享存储。这使得集群中的每个服务器都可以独立处理请求,提高了系统的可伸缩性和容错性。
集群部署是指将多个计算机或服务器通过网络连接起来,形成一个统一的系统,用于提高应用的可用性、扩展性和容错能力。通过集群部署,多个节点共同工作,处理请求和任务。这样,即使某个节点发生故障,其他节点仍然可以继续工作,保证系统的稳定运行。集群部署通常用于负载均衡和高可用性场景,比如 Web 服务、数据库等。它通过将请求分发到不同的节点,实现负载的均衡,避免单点故障,从而提升整体性能和可靠性。
7.jwt的缺点是什么?
JWT 一旦派发出去,在失效之前都是有效的,没办法即使撤销JWT。

8.JWT 令牌如果泄露了,怎么解决,JWT是怎么做的?
短期有效期:设置较短的有效期(例如 15 分钟),这样即使令牌泄露,攻击者的有效操作时间也很短。
刷新令牌:使用短期有效的访问令牌和长期有效的刷新令牌。访问令牌过期后,客户端可以通过刷新令牌获取新的访问令牌,刷新令牌的泄露风险相对较小。
使用黑名单:服务器可以维护一个令牌的黑名单,将泄露的令牌添加到黑名单中。在接收到令牌时,先检查令牌是否在黑名单中,如果在则拒绝操作。这种方法需要服务器维护黑名单的状态,对性能有一定的影响,但可以有效地保护泄露的令牌不被滥用。
使用 HTTPS:确保令牌在传输过程中通过 HTTPS 加密,防止中间人攻击或被窃取。
9.前端是如何存储JWT的?
客户端收到服务器返回的 JWT,可以储存在 Local Storage 里面,也可以储存在Cookie里面,还可以存储在Session Storage里面。下面将说明存在上述各个地方的优劣势:基本就是在存储容量和安全方面抉择。


10.为什么有HTTP协议了?还要用RPC?
项目没涉及,应该不会问到。

8万+

被折叠的 条评论
为什么被折叠?



