码迷,mamicode.com
首页 > 其他好文 > 详细

cookie和session的区别

时间:2020-10-07 21:01:05      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:删除   关系   数据   步骤   容量   字符串   路径   十分   并且   

Cookie保存在请求头中,Cookie的主要内容包括:名字,值,过期时间,路径和域。通俗讲,Cookie是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。
Session是存在服务器的一种用来存放用户数据的类HashTable结构。当浏览器 第一次发送请求时,服务器自动生成了一个HashTable和一个Session ID用来唯一标识这个HashTable,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。
Session的实现方式和Cookie有一定关系。我们可以把session id存在Cookie中,然后每次访问的时候将Session id带过去就可以识别了。
1、存储位置:
session保存在服务器,客户端不知道其中的信息;
cookie保存在客户端,服务器能够知道其中的信息。
2、存储容量:
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式:
session中保存的是对象,
cookie中保存的是字符串。
4、隐私策略:
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期:
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力:
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
8、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。

cookie和session的区别

标签:删除   关系   数据   步骤   容量   字符串   路径   十分   并且   

原文地址:https://blog.51cto.com/14289397/2540085

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!