什么是session?什么是cookie?

什么是cookie?

Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。Cookie实际上是一小段的文本信息。是客户端保存用户信息的一种机制,用来记录用户的一些信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。它的过期时间可以任意设置,如果你不主动清除它,在很长一段时间里面都可以保留着,即便这之间你把电脑关机了。

什么是Session

Session是在无状态的HTTP协议下,服务端记录用户状态时用于标识具体用户的机制。是一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。它在服务端保存的用来跟踪用户的状态的数据结构,可以保存在文件、数据库或者集群中。在浏览器关闭后这次的Session就消失了,下次打开就不再拥有这个Session。其实并不是Session消失了,而是Session ID变了,服务器端可能还是存着你上次的Session ID及其Session 信息,只是他们是无主状态,一段时间后会被删除。Session存在服务器的 /tmp 目录下。实际上Cookie与Session都是会话的一种方式。

总结

1、cookie 在客户端(浏览器),session 在服务器端

2、cookie的安全性一般,他人可通过分析存放在本地的cookie并进行cookie欺骗。在安全性第一的前提下,选择session更优。重要交互信息比如权限等就要放在session中,一般的信息记录放cookie就好了

3、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

4、session可以放在文件、数据库或内存中,比如:在使用Node时将session保存在redis中。由于一定时间内它是保存在服务器上的,当访问增多时,会较大地占用服务器的性能。考虑到减轻服务器性能方面,应当适时使用cookie

5、session的运行依赖session ID,而session ID是存在cookie中的,也就是说,如果浏览器禁用了cookie,session也会失效(但可以通过其它方式实现,比如在url中传递session ID)

6、用户验证这种场合一般会用session。因此,维持一个会话的核心就是客户端的唯一标识,即session ID

7、理论上只要改变了连接时的session ID就可以篡改session cookie

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值