扫码关注官方订阅号
是吗 cookie没用了吗
光阴似箭催人老,日月如移越少年。
session也是靠cookie实现的
cookie可以长期保存一些数据session则是短期维持会话数据两者不冲突大多数session都是用cookie实现的
两者各有用处,不能代替。
一般来说,session只存在于会话期,一旦结束会话就不存在了。就算不结束会话,一般也会在一定时间后被清除,所以只能用来缓存一些不需要持久化的数据。
cookie除了可以存在于会话期,还可以相对长时间的保存数据。比如你要保持登录,就要用cookie。session的session id也是用cookie保存的,不过这是php自己进行的不需要你干预。
cookie存在客户端。客户端可以读取cookie保存内容。 每次发起请求,客户端找出页面的cookie传给服务器。 cookie内容改变一般有两种:
每次请求时,服务器返回内容,设定cookie。
客户端的js脚本之类也可以改变cookie
基于cookie,用于保存session的id。 session存取都在服务器。客服端不知道session保存内容,但知道sessionID。 每次发起请求,sessionID随着cookie传给服务器。 session内容只能由服务器读取和改变。
保存期限都是有对应设置的,不存在什么这个保存时间长、那个短。(但是有个安全性问题参见下文)cookie由保存者(服务器或者客户端)指定,每个cookie内容有单独的有效期设定;session在服务器有设定,有效期是对于整个session来说的。
cookie是可以伪造的,而session保存在服务器无法篡改。session保存内容更安全。当然你看了上面可能会说:sessionID保存在cookie里,cookie可以伪造,所以可以伪造sessionID啊。一般来说,伪造一个有效的sessionID还是有难度的。引出的另一个问题伪造session与题干无关不再赘述。
只需要服务端用到、客户端不需要 的数据,推荐用session。不想让客户端知道的敏感数据尤其适用。
需要客户端临时使用,不需要服务器保存 的 数据,推荐用cookie。比如页面统计里跟踪用户行为的临时数据
有些情况下用session或者纯cookie都可以,此时就要结合特点去衡量采用什么。一般现在采用session比较多,现在网站也不缺那点空间资源
cookie:节省服务器资源,可以长期有效,不安全,适合存不重要的信息。session:占用服务器资源,一般用户操作期间才有效,安全,适合存重要信息。
session是server端保存会话数据的,一般会画结束就会销毁,所以生命周期很短暂,不可以长期保存数据。cookie是保存在client端的,可长期保存数据。
session 也需要 cookies 技术的支持
不建议直接在 cookies 中存东西,首选 session
session需要用到cookie的呢
cookie肯定会用,例如网站登录后,生成一个key,key除了放缓存外,还会把相关的值保存到cookie,当要验证用户是否登录的时候,直接拿对应cookie的值,再在缓存比较
“网站登录状态保存7天”,这个就要靠COOKIE解决,如果用session,由于seesion是保存在服务端,服务器会有被塞暴内容的风险
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
session也是靠cookie实现的
cookie可以长期保存一些数据
session则是短期维持会话数据
两者不冲突
大多数session都是用cookie实现的
两者各有用处,不能代替。
一般来说,session只存在于会话期,一旦结束会话就不存在了。就算不结束会话,一般也会在一定时间后被清除,所以只能用来缓存一些不需要持久化的数据。
cookie除了可以存在于会话期,还可以相对长时间的保存数据。比如你要保持登录,就要用cookie。session的session id也是用cookie保存的,不过这是php自己进行的不需要你干预。
cookie
cookie存在客户端。客户端可以读取cookie保存内容。
每次发起请求,客户端找出页面的cookie传给服务器。
cookie内容改变一般有两种:
每次请求时,服务器返回内容,设定cookie。
客户端的js脚本之类也可以改变cookie
session
基于cookie,用于保存session的id。
session存取都在服务器。客服端不知道session保存内容,但知道sessionID。
每次发起请求,sessionID随着cookie传给服务器。
session内容只能由服务器读取和改变。
保存期限都是有对应设置的,不存在什么这个保存时间长、那个短。(但是有个安全性问题参见下文)
cookie由保存者(服务器或者客户端)指定,每个cookie内容有单独的有效期设定;
session在服务器有设定,有效期是对于整个session来说的。
cookie是可以伪造的,而session保存在服务器无法篡改。session保存内容更安全。
当然你看了上面可能会说:sessionID保存在cookie里,cookie可以伪造,所以可以伪造sessionID啊。
一般来说,伪造一个有效的sessionID还是有难度的。引出的另一个问题伪造session与题干无关不再赘述。
只需要服务端用到、客户端不需要 的数据,推荐用session。不想让客户端知道的敏感数据尤其适用。
需要客户端临时使用,不需要服务器保存 的 数据,推荐用cookie。比如页面统计里跟踪用户行为的临时数据
有些情况下用session或者纯cookie都可以,此时就要结合特点去衡量采用什么。
一般现在采用session比较多,现在网站也不缺那点空间资源
cookie:节省服务器资源,可以长期有效,不安全,适合存不重要的信息。
session:占用服务器资源,一般用户操作期间才有效,安全,适合存重要信息。
session是server端保存会话数据的,一般会画结束就会销毁,所以生命周期很短暂,不可以长期保存数据。
cookie是保存在client端的,可长期保存数据。
session 也需要 cookies 技术的支持
不建议直接在 cookies 中存东西,首选 session
session需要用到cookie的呢
cookie肯定会用,例如网站登录后,生成一个key,key除了放缓存外,还会把相关的值保存到cookie,当要验证用户是否登录的时候,直接拿对应cookie的值,再在缓存比较
“网站登录状态保存7天”,这个就要靠COOKIE解决,如果用session,由于seesion是保存在服务端,服务器会有被塞暴内容的风险