1.session是什么时候产生的?
sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。
session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间+jvmid;
存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到file,数据库,memcache,redis等。客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session
2.关于http的cookie和https的cookie
https下的cookie在传输过是安全的,但在客户端上是不安全的,使用客户端的有用户还有黑客
假设在某网站A下,我登录了自己的账号,打开浏览器cookie时发现有一条是这样 user = batsing ,然后我会想我把 user 这个cookie的值改成了别人的用户名是不是直接就可以登录了别人的账号呢?如果服务端程序是直接根据这个cookie值就认为是这个用户的话,那么这样的做法是很可行的。无论有没有使用SSL,Cookie值都一定要经过高强度难破解的加密算法进行处理。