什么是cookie?什么是session?session和cookie有什么区别?

什么是cookie?什么是session?session和cookie有什么区别?

部分来源:https://www.nowcoder.com/questionTerminal/5a2d287965824d3ca93921bf89f8654c

cookie和session都是回话跟踪技术。

cookie(存客户端、不安全、存放数据量有限)

cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。
(cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户的状态,就使用response向客户端浏览器颁发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再次请求该网站时,浏览器就会把请求地址和cookie一同给服务器。服务器检查该cookie,从而判断用户的状态。服务器还可以根据需要修改cookie的内容。)

cookie有两种

  • 一种是基于窗口的,浏览器窗口关闭后,cookie就没有了;
  • 另一种是将信息存储在一个临时文件中,并设置存在的时间。

在使用cookie时要注意几点:首先不要在cookie中存放敏感信息;(不安全)
其次cookie存储的数据量有限(4k),不能将过多的内容存储cookie中;
再者浏览器通常只允许一个站点最多存放20个cookie。

session(存服务器、占内存、)

session是另一种记录客户状态的机制。不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。

(当用户通过浏览器和服务器建立一次会话后,sessionID就会随响应信息返回存储在基于窗口的cookie中,那就意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个sessionID又会提交给服务器让服务器识别用户身份。)

session话中可以为用户保存信息。当然,和用户会话相关的其他信息(除了会话ID)也可以存在cookie方便进行会话跟踪。

不同点

session对象是在服务器内存中的,而基于窗口的cookie是在客户端内存中的。
cookie不是很安全,别人可以分析存放在本地的cookie,进行cookie欺骗;session会在一定时间内保存在服务器上,当访问增多,会占用服务器性能
cookie保存数据不能超过4k,很多浏览器都限制一个站点最多存放20个cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值