史上最详细的Cookie和Session 的区别详解

一、什么是Cookie?

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。

当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
工作原理如下:
在这里插入图片描述


 1. 如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.	   
   
 2. 如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.
 3. Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.
 4. 由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性

二、什么是Session?

Session是另一种记录客户状态的机制不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。 客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

每个用户访问服务器都会建立一个session,那服务器是怎么标识用户的唯一身份呢?事实上,用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。
在这里插入图片描述

Session和Cookie的区别?


 1. cookie数据存放在客户的浏览器上,session数据放在服务器上
 2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑*到安全应当使用session
 3. session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
 4. 单个cookie保存的数*据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
 5. 建议将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中
 6.  session保存在服务器,客户端不知道其中的信心;cookie保存在客户端,服务器能够知道其中的信息
 7.  session中保存的是对象,cookie中保存的是字符串
 8.  session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的

猜你喜欢

转载自blog.csdn.net/djklsajdklsajdlk/article/details/106987133