Java基础知识及面试题11

1、说说session和cookie的区别

Session和Cookie是用于在Web应用程序中存储用户状态信息的两种常用机制,它们的主要区别如下:

(1)存储位置:Cookie是存储在客户端的浏览器中,而Session是存储在服务器端的内存或者硬盘中。

(2)数据安全性:Cookie中存储的信息是明文传输的,因此可能会被黑客截获并进行篡改或者伪造,从而导致安全风险。而Session中存储的信息是存储在服务器端的,因此相对更加安全。

(3)存储容量:Cookie的存储容量通常比较小,最大只能存储4KB的数据。而Session的存储容量通常比较大,可以存储更多的数据。

(4)生命周期:Cookie可以设置一个过期时间,也可以设置一个持久化时间,可以在指定时间之前一直保留在客户端浏览器中。而Session通常会在一定时间内保持有效,如果用户长时间没有活动,Session可能会被服务器端自动删除。

(5)应用场景:Cookie通常用于存储一些不敏感的信息,如用户的偏好设置、广告等信息。而Session通常用于存储一些敏感的信息,如用户的登录状态、购物车信息等。

综上所述,Session和Cookie各有优缺点,应根据具体应用场景选择使用哪种机制来存储用户状态信息。

2、说一说cookie的工作原理

Cookie是一种存储在客户端浏览器中的小型文本文件,它可以用于存储一些与用户状态相关的信息,例如用户的登录状态、偏好设置、购物车信息等。

Cookie的工作原理可以简单地概括为以下几个步骤:
(1)服务器端向客户端浏览器发送一个HTTP响应,并在响应头中添加一个Set-Cookie头部。这个头部中包含了需要存储在Cookie中的信息,例如Cookie的名称、值、过期时间、域名、路径等。

(2)客户端浏览器接收到服务器端的响应后,将Cookie存储在本地计算机的文件系统中。之后,每次向同一服务器发起请求时,客户端浏览器都会自动将Cookie发送给服务器端。

(3)服务器端在接收到客户端浏览器发送的请求后,可以通过读取请求头中的Cookie字段,获取之前存储在Cookie中的信息。服务器端可以根据这些信息来判断用户的状态,并根据需要返回相应的响应内容。
需要注意的是,由于Cookie是存储在客户端浏览器中的,因此可能存在一些安全风险。例如,黑客可能会通过Cookie劫持攻击等方式,获取到用户的敏感信息。因此,开发者需要采取一些措施,如加密Cookie信息、设置HttpOnly标记等,来提高Cookie的安全性。

3、说说session工作原理

Session是一种在服务器端保存用户状态信息的机制,它可以用于存储用户的登录状态、购物车信息、浏览历史等。Session的工作原理可以简单地概括为以下几个步骤:
(1)当用户第一次访问网站时,服务器会为该用户创建一个唯一的Session ID,并将这个Session ID存储在服务器端的内存或者硬盘中。

(2)服务器会将Session ID发送给客户端浏览器,并将Session ID存储在Cookie中(也可以通过URL重写将Session ID添加到每个请求中)。

(3)当用户进行后续请求时,客户端浏览器会自动将Cookie中的Session ID发送给服务器端。

(4)服务器端会根据Session ID在存储器中查找对应的Session数据。如果找到了Session数据,就可以获取其中存储的用户状态信息;如果没有找到Session数据,就会认为用户是一个新用户,并重新创建一个Session数据。
需要注意的是,Session ID的安全性非常重要。如果Session ID被黑客获取到了,就可能导致用户的敏感信息泄露。因此,开发者需要采取一些措施,如设置Session ID的有效期、加密Session ID等,来提高Session的安全性。此外,如果多个服务器共享Session数据,还需要使用分布式Session方案来确保数据的一致性。

4、什么是token?

Token是一种用于身份认证和授权的令牌,它是一个字符串,通常由服务器颁发给客户端,并在客户端的每个请求中带上,用于验证客户端的身份和权限。Token通常被用于Web应用程序中,用于替代传统的基于Cookie的身份验证机制,使得Web应用程序可以更好地支持跨域访问和移动端访问等场景。
Token的工作流程通常如下:
(1)客户端向服务器发送登录请求,携带用户名和密码等信息。

(2)服务器验证用户的身份和权限,如果登录成功,就为该用户生成一个唯一的Token,并将Token返回给客户端。

(3)客户端收到Token后,可以将Token存储在本地,例如LocalStorage或SessionStorage中。

(4)在后续的请求中,客户端需要将Token加入到请求的头部中,例如在Authorization头部中添加Bearer Token。

(5)服务器在接收到请求后,会从请求头中获取Token,并进行验证,以确保该请求是一个合法的请求。如果验证通过,服务器会响应请求,并返回所需的数据。

Token的优点在于它可以在客户端和服务器之间传递,并且可以通过加密和签名等方式来保证其安全性。此外,Token可以避免服务器在每个请求中都需要进行身份验证的开销,从而提高Web应用程序的性能和可扩展性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值