Session与Cookie:Cookie可以让服务端跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,则无形的增加了客户端与服务端的数据传输量,
而Session则很好地解决了这个问题,同一个客户端每次和服务端交互时,将数据存储通过Session到服务端,不需要每次都传回所有的Cookie值,而是传回一个ID,每个客户端第一次访问服务器生成的唯一的ID,客户端只要传回这个ID就行了,这个ID通常为NAME为JSESSIONID的一个Cookie。这样服务端就可以通过这个ID,来将存储到服务端的KV值取出了。
Session和Cookie的超时问题,Cookie的安全问题
cookie存储在客户端,这句没错;
上面那段的意思你可以理解,用户的信息有很多,有的还很敏感,都存储在cookie中,会存在安全问题,也会增加网络传输负担; 所以才有了jsessionId,jsessionId是服务端生成的,写到cookie中的一个用户session的标识,这样用户每次请求都会在cookie中带上jsessionid,服务端获取到这个id就可以找到对应这个id的用户信息了;
Cookie 和 Session 都是为了保持用户访问的连续状态,之所以要保持这种状态,一方面是为了方便业务实现,另一方面就是简化服务端程序设计,提高访问性能,但是这也带来了另外一些挑战,如安全问题、应用的分布式部署带来的 Session 的同步问题及跨域名 Session 的同步等一系列问题。
因为一些数据安全问题有些数据需要存到session里面,服务器会自动为session生成一个SessionId,并把这个id写到cookie一个属性名为JSESSIONID
里面发送回客户端。
下次客户端访问时服务器就能读取cookie的JSESSIONID的值找到服务器的session了
至于你的问题只要服务器通过cookie找到了原本的session就不会再发送带有这个session的id的cookie了
希望能解决你的疑问
每个session对应一个sessionID,通常命名为jsessionID,然后每次浏览器端发送请求时,只需要带着存储在cookie中的jsessionID访问服务端,与服务端的session匹配即可。
原来是怎么样的?将所有的cookie都找回吗,cookie从服务器找回来吗,那服务器那么多cookie你怎么知道哪个cookie是你的,如果在没jession的情况下,