上一篇写了cookie详解,这篇对比列举一下cookie和session的优缺点以及再学习一下session。
cookie的优缺点
优点 | 缺点 |
---|---|
存储在客户端,不占用服务器资源 | 只能是字符串格式,存储量有限,((1)不超过300个cookie,(2)每个cookie不超过4kb,即4096个字节,(3)每个域不超过20个cookie,(4)每个域不超过81920字节)数据容易被获取篡改,容易丢失 |
session
首先,和cookie相比较,session是存储在服务器端的。
优点 | 缺点 |
---|---|
可以是任何格式,存储量理论上是无限的,数据难以被获取、篡改、不易丢失 | 占用服务器资源 |
session的优点很多,但是它的缺点也是可以引起很大的问题的,可能极大地提高服务器成本。
所以在使用的时候session不存在哪个取代哪个,都有自己的优点。
session的原理
浏览器第一次请求的时候,服务器里面会进行存储,生成一个sessionID(唯一的,例如:uuid(universal unique identity)),然后通过cookie发送给浏览器。每次访问的浏览器不同的时候,服务器就会进行上面的操作,生成sessionID并且发送给浏览器。当同一个浏览器去访问服务器的时候,由于之前存储过sessionID,因此在登录的时候会把sessionID一起发送给服务器,登录成功之后,就会把身份信息存储到对应的sessionID下面。下次再登录,服务器发现这个sessionID有对应的身份信息,即登录过,就不需要再次登录了。