目录
php中,cookie和session的区别,使用的好处是什么?(求各位大牛解答,不要百度的,谢谢)?
回复内容:
先不说Php里的session和cookie,我们来看看在正常的web中,session和cookie分别是什么。Cookie其实是浏览器一端的技术。由于HTTP本身是无状态的,常规来说对于服务器端并不知道每次请求的分别是谁,于是一个web会话允许在HTTP头里通过set-cookie临时存储一些内容在客户端,客户端则需要在此会话中的每一个HTTP请求都附上当前cookie的内容(禁用cookie的话就不发了)。这里的会话一般是以域名来界定的。
但是cookie有两个很大的缺陷:1. cookie是存储在客户端的,所以cookie可以被读取、挪用和修改。这意味着,对于任何关键信息,例如登陆信息等,如果用cookie来保持,别人就能够随意读取删改。2. 其它伪装站点可能可以直接获取到你的cookie内容。
那么怎么样存取这些信息来使得用户端难以随意删改cookie伪装其它用户呢?通常来说有两大类方法:1. 对cookie进行加密;2.cookie里只存一个带自验证的特征码,然后把关键数据存储在服务器一端。这就是session了。
session是cookie的应用。加密存储在客户端的session是最容易实现的,不会给服务器带来额外的存储负担,很多的新型小微框架的session都是以此手段实现的(而并未存储在服务端)。其次就是存储在服务端,可选的存储的地方包括而不限于内存、文件、外部数据库等。
Php自带库里,cookie即往response里加入需要客户端存储等cookie,session则是在cookie里加一条session_id,然后默认以文件的形式将需要存储的东西存储在服务端。
顺带一提,现代浏览器里普遍都支持localStorage,一来它通过前端访问而后端不可取得,对用户而言安全性稍好,二来可以存储的量大多了,三来有一定的防低端爬虫的能力。如果不用考虑老旧浏览器兼容的话,用localStorage+前后端分离,以ajax形式通过js回报localStorage内容(session_id或者加密存储内容)以代替cookie更值得推荐。 cookie就是把数据存在客户端
session就是把数据存在服务器端,客户端只存一个id 一楼说的很好了。
其实最大的区别就是cookie存在客户端,session存在服务器端。而且一般情况下,session确实依赖cookie里面的session id,其实这个session id你也可以自己定,然后用session时指定这个session id。session id的作用就是指定session存放的文件,所以cookie禁用后,可以用这招。
再补充一点就是,在分布式架构中session要慎用,因为可能会出现session数据丢失的情况,当然你也可以重写session,让session存在缓存中或者数据库中。 你可以这么理解,cookie是别人家的箱子,session是自己家的箱子,箱子的好处是什么?存东西呗
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
