session
Session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次Session。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用Request.getSession(true)强制生成Session
服务器使用Session把用户的信息临时保存在了服务器上,用户离开网站后Session会被销毁。这种用户信息存储方式相对Cookie来说更安全,可是Session有一个缺陷:如果Web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候Session会丢失。
cookie
Cookie是保存在本地终端的数据。Cookie由服务器生成,发送给浏览器,浏览器把Cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该Cookie发送给服务器。由于Cookie是存在客户端上的,所以浏览器加入了一些限制确保Cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的Cookie数量是有限的。
Cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,一般设置为全局:"\")、失效时间、安全标志(指定后,Cookie只有在使用SSL连接时才发送到服务器(https))。