关于cookie和session的理解

cookie和session

是什么

通俗概念

cookie和session是常用的两种会话跟踪技术。

http请求是无状态的,意味着第一次和服务器建立连接并且成功身份认证后,第二次服务器如果没有可以识别客户端的信息,就不确定客户端是哪个用户。

这个问题,就出现了两种解决思路

1、在客户端保存服务器可以识别的身份信息,以后的每次请求都带上这种身份信息,服务器就能确定客户端到底是谁----- cookie

2、在服务器端保存用户会话的信息,然后分配给客户端一个会话信息集合的查询id,以后的请求信息只需要带上id就行 ------session

他们的区别很明显:cookie是存在本地浏览器,session是存在服务器中。

概念

cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session(会话)跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

Session

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

区别

存储容量

cookie:单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。

session:对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。

存储方式

cookie:cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。

session:session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。

隐私策略

cookie:cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。

session:session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。

有效期

cookie:开发可以通过设置cookie的属性,达到使cookie长期有效的效果。

session:session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。

服务器压力

cookie:cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。

session:session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。

跨域访问

cookie:支持跨域访问

session:不支持。

这个我区别我目前还不了解具体的原因,我看到网上有说cooke也有跨域的问题,session也有。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值