Cookie 与 session

1 篇文章 0 订阅

cookie

1. cookie 分为:
	1. 内存cookie
    	ps:浏览器已关闭,cookie则失效
    2. 硬盘cookie 
    	ps:存储在硬盘中
        
2. 如果浏览器禁用cookie了,怎么办
	1. 使用p3p协议
    	    简单来说,由于浏览器这边存储不到cookie,需要使用别的方式存储,比如:使用localstage存储
        每次请求的时候,url|header这边带上存储到的cookie
        
        
 3. 浏览器这边每个站点存储的cookie,尽量每个站点的cookie保持的20个以下
      cookie 的总数量没有限制,但是每个域名的COOKIE 数量和每个COOKIE 的大小是有
      限制的!
      IE 每个域名限制为50 个。
      Firefox 每个域名cookie 限制为50 个。
      Opera 每个域名cookie 限制为30 个。
      Safari/webkit 貌似没有cookie 限制。但是假如cookie 很多,则会使header 大小超过服
      务器的处理的限制,会导致错误发生。
      不同浏览器间每个cookie 文件大小也不同
      Firefox 和safari 是4097 个字节,包括名(name)、值(value)和等号。
      Opera 是4096 个字节,包括:名(name)、值(value)和等号。
      IE 是4095 个字节,包括:名(name)、值(value)和等号。

 4. 每个cookie的大小不能超过4KB(4096字节)
 
 5. 使用HttpOnly属性来防止Cookie被JavaScript读取,从而避免跨站脚本攻击(XSS攻击)。
 
 5. 待定....

Session

1. session存储在服务端中

2. session  作为文件形式存在在服务端中

3. 如果session过大的话,那么查询的性能就会变慢(印象在一本书中看到的)

4. session丢失的话,可以使用redis进行缓存

5. session 需要多个服务器同步(集群之类)的,也是使用redis存储

6. 关于PHPSESSID,这个值作为cookie存储在客户端中。

7. session默认时间为:30分钟

6.待定....

其它

Session 是存放在服务器端的,类似于Session结构来存放用户数据(这种结构的名称也叫session)。
当浏览器第一次发送请求时,服务器自动生成了一个Session和一个SessionID用来唯一标识这个Session,并将其通过响应发送到浏览器。
当浏览器第二次发送请求,会将前一次服务器响应中的SessionID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有SessionID进行对比,找到这个用户对应的Session。
一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使用数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值