一、存放位置
Seesion存在在服务器中。
Cookie存在在浏览器中。
二、存储容量不同
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。、
三、存储方式不同
cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
四、隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
五、.。。。。。。等等等等等
六、工作原理
1) 小明访问某一网站example.com的登录页面,此时通过浏览器发了一个http request请求,此时http header头域的cookie值可以是空的
2) xx.com服务器收到这个请求,并接受了小明提交过来的登录数据,判断用户名和密码都正确,这个时候服务器会“种下一个cookie”一般是将小明的用户名发送给客户端,通常是“Set-Cookie: session-id=12345;”这个字符串通过http response返回给客户端(浏览器)
3) 浏览器收到http response返回来的信息发现cookie了,然后将信息写入到浏览器的某个存储文件中去
4) 小明再访问xx.com的其他页面的时候,请求的http header中会带着这个cookie,
5) 服务器端程序会找cookie,并根据cookie取出客户端想要的信息并返回给客户端
七、session的调用机制
1)用户请求服务端程序login.php填写数据后提交
2)服务器收到提交的数据取得用户信息,将用户信息存入session,并将session_id通过cookie的形式发给客户端
3)客户端将session_id存入浏览器cookie文件
4)用户再次访问其他页面时,将有session_id的cookie通过header头发给服务端
5)服务端拿到session_id从session中取到用户信息并返回
八、大白话
这个作用就像您去超市购物时,第一次给您办张购物卡,这个购物卡里存放了一些您的个人信息,下次您再来这个连锁超市时,超市会识别您的购物卡,下次直接购物就好了。
有问题请加博主微信进行沟通!
全部评论