Javascript 什么是cookie和会话,它们之间的关系如何?
我正在努力专业地理解饼干和会话。 我知道,当浏览器连接到服务器时,服务器“要求”浏览器在客户端浏览器cookies文件夹中“粘贴”一个带有“phpsessid”的cookie 现在我们有了“phpsessid”,如果客户端进入服务器,浏览器会向服务器发送“phpsessid”,服务器会查看tmp文件夹,如果我们有匹配项,它会加载用户为此客户端拥有的所有数据,但我对这个过程有点困惑 如果有人能帮助我理解创建会话和cookie的过程,我将不胜感激。让我们来看一下: 和都是在浏览器发出的不同请求之间保留应用程序状态的方法。例如,感谢他们,您不必每次在上请求页面时都登录 曲奇饼 Cookie是少量数据(最大长度为4KB),以键=值对的形式保存数据:Javascript 什么是cookie和会话,它们之间的关系如何?,javascript,php,session,cookies,Javascript,Php,Session,Cookies,我正在努力专业地理解饼干和会话。 我知道,当浏览器连接到服务器时,服务器“要求”浏览器在客户端浏览器cookies文件夹中“粘贴”一个带有“phpsessid”的cookie 现在我们有了“phpsessid”,如果客户端进入服务器,浏览器会向服务器发送“phpsessid”,服务器会查看tmp文件夹,如果我们有匹配项,它会加载用户为此客户端拥有的所有数据,但我对这个过程有点困惑 如果有人能帮助我理解创建会话和cookie的过程,我将不胜感激。让我们来看一下: 和都是在浏览器发出的不同请求之间保
name=value; name2=value2
通过或通过服务器使用进行设置
Cookie设置了过期日期时间,例如使用HTTP头:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
这将导致浏览器设置一个名为name2
的cookie,其值为value2
,该cookie将在大约9年后过期
Cookie被认为是高度不安全的,因为用户可以轻松地操纵其内容。这就是为什么您应该始终验证cookie数据的原因。不要以为你从饼干中得到的必然是你所期望的
Cookie通常用于保留登录状态,即从浏览器发送用户名和特殊哈希,服务器根据数据库检查用户名和哈希以批准访问
Cookie也经常用于会话创建
会议
课程略有不同。每个用户获得一个会话ID,该ID通过cookie或GET variable发送回服务器进行验证
会话通常是短暂的,这使得它们非常适合在应用程序之间保存临时状态。一旦用户关闭浏览器,会话也会过期
会话被认为比cookie更安全,因为变量本身保存在服务器上。下面是它的工作原理:
$\u会话上可用的变量
这就是要点。您可以在PHP手册中了解有关这两个主题的更多信息。您似乎已经知道发生了什么。您希望了解哪一部分?HTTP/cookie部分,或PHP如何加载会话存储?浏览器使用phpsessid保存的cookie,这是用于标识用于创建会话和cookie的客户端的phpsessid吗?浏览器的cookie包含PHP会话id,它告诉服务器“嘿,我知道这个chap”,然后服务器获取会话数据(例如从/tmp/开始)并恢复用户$\u会话我知道,但我在问,这是“phpsessid”吗在创建会话和cookie之前,是否使用此phpsessid来标识客户端?此phpsessid是否包含在cookie数据和客户端计算机以及服务器tmp文件夹中的会话文件中?这是否意味着必须打开cookie才能使会话正常工作?@Edmund:大多数情况下,是的。但是,您可以将其设置为会话ID通过GET变量传输(这意味着会话id需要附加到每个页面(
hello.php?sid=cbe709ac7bed98f7ecb89713
)@SurajJain如果不是“记住我”,它会Cookie,持续时间更长。其他问题:当用户关闭浏览器时,服务器如何收到此事件的通知,以便服务器删除此会话ID?或者它是否会在一段时间后自动过期?在2021年看到这一点,我感到困惑,你为什么说它将继续活动9年