Session和Cookie的区别

一、概述

HTTP协议是一个无状态的协议,即web应用程序无法区分收到的两个HTTP请求是否是同一个浏览器发出的。为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID,并以Cookie的形式发送到浏览器,浏览器在后续访问时总是附带此Cookie,这样,服务器就可以识别用户身份。

二、Session

我们把这种基于唯一ID识别用户身份的机制称为Session。每个用户第一次访问服务器后,会自动的获得一个Session ID。如果用户在一段时间内没有访问服务器,Session就会失效。

服务器识别Session的关键就是依靠一个名为JSessionID的Cookie,在Servlet中第一次调用getSession的方法时,Servlet会自动创建一个Session ID,然后通过一个名为JSessionID的Cookie发送给浏览器。

使用Session时,由于服务器把所有的用户的Session都存储在内存中,如果遇到内存不足的情况,就需要把部分不活动的Session序列到磁盘上,这会大大的降低服务器的运行效率,因此,放入Session的数据不能太大。

存活时间是根据会话来决定;

三、Cookie

实际上,除了Servlet提供的HttpServlet本质上就是一个通过名为Cookie来跟踪用户会话,其他名称的Cookie可以随意使用。

通过创建Cookie可以达到在客户端浏览器中存储数据的目的,例如保存用户名和密码。

Cookie一般时预先设置的,如果没有设置则会一直保存。

你可能感兴趣的:(服务器,前端,http)