天天看点

1.4 Cookie和Session的区别Cookie和Session

Cookie和Session

  1. HTTP协议是无状态的,无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的之后的请求都无直接关系。
  2. 工作原理:为了维持web应用程序状态的问题,每次HTTP请求都会将本域下所有cookie作为HTTP请求头的一部分发送给服务器,服务器端可以根据请求中的cookie所存放的Session id 去Session对象中找到会话的信息。

Cookie

作用:为了解决HTTP协议无状态的缺陷。
  1. Cookie 是在浏览器访问web服务器的某个资源时,由web服务器在HTTP相应消息中附带传递给客户端浏览器的一片数据,浏览器可以决定是否保存这篇数据,一旦web浏览器保存了这片数据,以后每次访问web浏览器时,都会在HTTP请求头中将这片数据回传给web服务器。
  2. Cookie最先由Web服务器发出的,是否发送cookie和发送的cookie的具体内容完全是由web服务器决定的。
Cookie的内容包括:名字、值、过期时间、路径和域

 1. 路径和域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。
 2. 这种生命周期为浏览器会话期的cookie被称为会话cookie。
 3. 会话cookie一般不存储在硬盘中而是保存在内存中,这种行为并不是规范规定的。
 4. 若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

           

Session

Session在网络应用中被称为会话,是有服务器维持的一个在服务器中的存储空间,用户在连接服务器时,会由服务器生成一个唯一的session id,用该 Session id 为标识来存取服务器端的session 存储空间。
1. 基于HTTP 协议的无状态特征,服务器根本就不知道访问者是“谁”。
 2. 可以给每个客户端的cookie分配一个唯一的 id ,这样用户在访问时,通过cookie,服务器就知道是‘谁’。
 3. 然后根据不同的cookie的id,对应的session中保存私密资料,如“账号密码”

           

Cookie和Session的区别

  • Cookie本身最大支持4096字节,cookie本身保存在客户端,可能被拦截或窃取;
  • Session 可以支持更多字节,被保存到服务器,有较高安全性
1.用户请求使用session页面时,web服务器产生session和一个session id 并返回临时cookie(key=session id);

 2. 用户第二次请求session页面会自动带上cookie信息,web服务器接受请求并通过session id读取session,把信息返回用户。
 3. Session ID 是保存在客户端的,用cookie保存,用户提交页面时,会将这一session id 提交到服务器,来存取session数据。这一过程是不用开发人员干预的。
 4. 一旦客户端禁用cookie,那么session也会失效。

           
1.4 Cookie和Session的区别Cookie和Session

继续阅读